Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les déploiements d’applications autonomes .NET Core incluent les bibliothèques .NET Core et le runtime .NET Core. À compter du SDK .NET Core 2.1 (version 2.1.300), un déploiement d’application autonome publie le runtime de correctif le plus élevé sur votre ordinateur. Par défaut, pour un déploiement autonome, dotnet publish
sélectionne la dernière version installée dans le cadre du Kit de développement logiciel (SDK) sur l’ordinateur de publication. Cela permet à votre application déployée de s’exécuter avec des correctifs de sécurité (et d’autres correctifs) disponibles pendant publish
. L’application doit être republiée pour obtenir un nouveau correctif. Les applications autonomes sont créées en spécifiant -r <RID>
sur la dotnet publish
commande ou en spécifiant l’identificateur d’exécution (RID) dans le fichier projet (csproj/vbproj) ou sur la ligne de commande.
Vue d’ensemble de l'évolution des versions des correctifs
restore
, build
et publish
sont dotnet
des commandes qui peuvent s’exécuter séparément. Le choix du runtime fait partie de l’opération restore
, pas publish
ou build
. Si vous appelez publish
, la dernière version du correctif sera choisie. Si vous appelez publish
avec l’argument --no-restore
, vous n’obtenez peut-être pas la version de correctif souhaitée, car une version antérieure restore
n’a peut-être pas été exécutée avec la nouvelle stratégie de publication d’application autonome. Dans ce cas, une erreur de compilation se produit avec du texte similaire à ce qui suit :
« Le projet a été restauré à l’aide de Microsoft.NETCore.App version 2.0.0, mais avec les paramètres actuels, la version 2.0.6 serait utilisée à la place. Pour résoudre ce problème, vérifiez que les mêmes paramètres sont utilisés pour la restauration et pour les opérations suivantes telles que la génération ou la publication. En règle générale, ce problème peut se produire si la propriété RuntimeIdentifier est définie pendant la génération ou la publication, mais pas lors de la restauration. »
Remarque
restore
et build
peut être exécuté implicitement dans le cadre d’une autre commande, comme publish
. Lorsqu’elles sont exécutées implicitement dans le cadre d’une autre commande, elles sont fournies avec un contexte supplémentaire afin que les artefacts appropriés soient produits. Quand vous exécutez une commande publish
avec un runtime (par exemple, dotnet publish -r linux-x64
), la commande restore
implicite restaure les packages du runtime linux-x64. Si vous appelez restore
explicitement, il ne restaure pas les packages d’exécution par défaut, car il n’a pas ce contexte.
Comment éviter la restauration pendant la publication
L’exécution restore
dans le cadre de l’opération publish
peut être indésirable pour votre scénario. Pour éviter restore
pendant publish
, tout en créant des applications autonomes, procédez comme suit :
- Définissez la
RuntimeIdentifiers
propriété sur une liste séparée par des points-virgules de tous les RID à publier. - Attribuez à la propriété
TargetLatestRuntimePatch
la valeurtrue
.
Argument No-restore avec des options dotnet publish
Si vous souhaitez créer à la fois des applications autonomes et des applications dépendantes de l’infrastructure avec le même fichier projet, et que vous souhaitez utiliser l’argument --no-restore
avec dotnet publish
, choisissez l’une des options suivantes :
Préférez le comportement dépendant du cadre. Si l’application dépend de l’infrastructure, il s’agit du comportement par défaut. Si l’application est autonome et peut utiliser un runtime local 2.1.0 non corrigé, définissez
TargetLatestRuntimePatch
àfalse
dans le fichier de projet.Préférez le comportement autonome. Si l’application est autonome, il s’agit du comportement par défaut. Si l’application dépend de l’infrastructure et nécessite l’installation du dernier correctif, défini
TargetLatestRuntimePatch
true
sur le fichier projet.Prenez le contrôle explicite de la version du runtime framework en définissant
RuntimeFrameworkVersion
sur la version de correctif spécifique dans le fichier projet.