Ajouts au format csproj pour .NET CoreAdditions to the csproj format for .NET Core

Ce document décrit les modifications qui ont été ajoutées aux fichiers projet dans le cadre du passage de project.json à csproj et MSBuild.This document outlines the changes that were added to the project files as part of the move from project.json to csproj and MSBuild. Pour plus d’informations de référence ou syntaxiques générales sur les fichiers projet, consultez la documentation sur les fichiers projet MSBuild.For more information about general project file syntax and reference, see the MSBuild project file documentation.

Références de package implicitesImplicit package references

Les métapackages sont référencés implicitement en fonction du ou des frameworks cibles spécifiés dans la propriété <TargetFramework> ou <TargetFrameworks> de votre fichier projet.Metapackages are implicitly referenced based on the target framework(s) specified in the <TargetFramework> or <TargetFrameworks> property of your project file. <TargetFrameworks> est ignoré si <TargetFramework> est spécifié, indépendamment de l’ordre.<TargetFrameworks> is ignored if <TargetFramework> is specified, independent of order.

 <PropertyGroup>
   <TargetFramework>netcoreapp2.1</TargetFramework>
 </PropertyGroup>
<PropertyGroup>
  <TargetFrameworks>netcoreapp2.1;net462</TargetFrameworks>
</PropertyGroup>

RecommandationsRecommendations

Comme les métapackages Microsoft.NETCore.App ou NetStandard.Library sont implicitement référencés, voici les bonnes pratiques que nous recommandons :Since Microsoft.NETCore.App or NetStandard.Library metapackages are implicitly referenced, the following are our recommended best practices:

  • Quand vous ciblez .NET Core ou .NET Standard, n’incluez jamais de référence explicite aux métapackages Microsoft.NETCore.App ou NetStandard.Library via un élément <PackageReference> dans votre fichier projet.When targeting .NET Core or .NET Standard, never have an explicit reference to the Microsoft.NETCore.App or NetStandard.Library metapackages via a <PackageReference> item in your project file.
  • Si vous avez besoin d’une version spécifique du runtime quand vous ciblez .NET Core, vous devez utiliser la propriété <RuntimeFrameworkVersion> dans votre projet (par exemple, 1.0.4) au lieu de référencer le métapackage.If you need a specific version of the runtime when targeting .NET Core, you should use the <RuntimeFrameworkVersion> property in your project (for example, 1.0.4) instead of referencing the metapackage.
    • Cela peut se produire si vous utilisez des déploiements autonomes et que vous devez utiliser une version de correctif spécifique du runtime 1.0.0 LTS, par exemple.This might happen if you are using self-contained deployments and you need a specific patch version of 1.0.0 LTS runtime, for example.
  • Si vous avez besoin d’une version spécifique du métapackage NetStandard.Library quand vous ciblez .NET Standard, vous pouvez utiliser la propriété <NetStandardImplicitPackageVersion> et définir la version dont vous avez besoin.If you need a specific version of the NetStandard.Library metapackage when targeting .NET Standard, you can use the <NetStandardImplicitPackageVersion> property and set the version you need.
  • Vous ne devez pas ajouter ni mettre à jour explicitement les références au métapackage Microsoft.NETCore.App ou NetStandard.Library dans les projets .NET Framework.Don't explicitly add or update references to either the Microsoft.NETCore.App or NetStandard.Library metapackage in .NET Framework projects. Si une version de NetStandard.Library est nécessaire lors de l’utilisation d’un package NuGet basé sur .NET Standard, NuGet installe automatiquement cette version.If any version of NetStandard.Library is needed when using a .NET Standard-based NuGet package, NuGet automatically installs that version.

Inclusions de compilation par défaut dans les projets .NET CoreDefault compilation includes in .NET Core projects

Dans le cadre du passage au format csproj dans les dernières versions du SDK, nous avons déplacé les inclusions et exclusions par défaut pour les éléments de compilation et les ressources incorporées dans les fichiers de propriétés du SDK.With the move to the csproj format in the latest SDK versions, we've moved the default includes and excludes for compile items and embedded resources to the SDK properties files. Cela signifie que vous n’avez plus besoin de spécifier ces éléments dans votre fichier projet.This means that you no longer need to specify these items in your project file.

La principale raison de cette modification est de réduire l’encombrement de votre fichier projet.The main reason for doing this is to reduce the clutter in your project file. Les valeurs par défaut qui sont présentes dans le SDK doivent couvrir la plupart des cas d’utilisation courants, il est donc inutile de les répéter dans chaque projet que vous créez.The defaults that are present in the SDK should cover most common use cases, so there is no need to repeat them in every project that you create. Il en résulte des fichiers projet moins volumineux qui sont beaucoup plus faciles à comprendre et à modifier à la main, si nécessaire.This leads to smaller project files that are much easier to understand as well as edit by hand, if needed.

Le tableau suivant montre les éléments et les modèles Glob inclus et exclus dans le SDK :The following table shows which element and which globs are both included and excluded in the SDK:

ÉlémentElement Inclure GlobInclude glob Exclure GlobExclude glob Supprimer GlobRemove glob
CompileCompile **/*.cs (ou autres extensions de langage)**/*.cs (or other language extensions) **/*.user ; **/*.*proj ; **/*.sln ; **/*.vssscc**/*.user; **/*.*proj; **/*.sln; **/*.vssscc N/AN/A
EmbeddedResourceEmbeddedResource **/*.resx**/*.resx **/*.user ; **/*.*proj ; **/*.sln ; **/*.vssscc**/*.user; **/*.*proj; **/*.sln; **/*.vssscc N/AN/A
Aucun.None **/* **/*.user ; **/*.*proj ; **/*.sln ; **/*.vssscc**/*.user; **/*.*proj; **/*.sln; **/*.vssscc - **/*.cs ; **/*.resx- **/*.cs; **/*.resx

Si vous avez des modèles Glob dans votre projet et que vous essayez de le générer à l’aide du dernier SDK, vous obtenez l’erreur suivante :If you have globs in your project and you try to build it using the newest SDK, you'll get the following error:

Des éléments de compilation en double ont été inclus.Duplicate Compile items were included. Le SDK .NET inclut des éléments de compilation de votre répertoire de projet par défaut.The .NET SDK includes Compile items from your project directory by default. Vous pouvez supprimer ces éléments de votre fichier projet ou définir la propriété 'EnableDefaultCompileItems' sur 'false' si vous voulez explicitement les inclure dans votre fichier projet.You can either remove these items from your project file, or set the 'EnableDefaultCompileItems' property to 'false' if you want to explicitly include them in your project file.

Pour contourner cette erreur, vous pouvez supprimer les éléments Compile explicites qui correspondent à ceux répertoriés dans le tableau précédent ou vous pouvez définir la propriété <EnableDefaultCompileItems> sur false, comme ceci :In order to get around this error, you can either remove the explicit Compile items that match the ones listed on the previous table, or you can set the <EnableDefaultCompileItems> property to false, like this:

<PropertyGroup>
    <EnableDefaultCompileItems>false</EnableDefaultCompileItems>
</PropertyGroup>

La définition de cette propriété sur false remplace l’inclusion implicite et le comportement est rétabli à celui des SDK précédents dans lesquels vous deviez spécifier les modèles Glob par défaut dans votre projet.Setting this property to false will override implicit inclusion and the behavior will revert back to the previous SDKs where you had to specify the default globs in your project.

Ce changement ne modifie pas le mécanisme principal des autres inclusions.This change does not modify the main mechanics of other includes. Toutefois, si vous voulez, par exemple, spécifier certains fichiers à publier avec votre application, vous pouvez toujours utiliser les mécanismes connus dans csproj correspondants (par exemple, l’élément <Content>).However, if you wish to specify, for example, some files to get published with your app, you can still use the known mechanisms in csproj for that (for example, the <Content> element).

<EnableDefaultCompileItems> désactive uniquement les modèles Glob Compile, mais n’affecte pas les autres modèles Glob, comme le modèle Glob implicite None, qui s’applique également aux éléments *.cs.<EnableDefaultCompileItems> only disables Compile globs but doesn't affect other globs, like the implicit None glob, which also applies to *.cs items. Par conséquent, l’Explorateur de solutions continue d’afficher des éléments *.cs dans le cadre du projet, inclus en tant qu’éléments None.Because of that, Solution Explorer will continue show *.cs items as part of the project, included as None items. De la même façon, vous pouvez utiliser <EnableDefaultNoneItems> pour désactiver le modèle Glob implicite None.In a similar way, you can use <EnableDefaultNoneItems> to disable the implicit None glob.

Pour désactiver tous les modèles Glob implicites, vous pouvez affecter à la propriété <EnableDefaultItems> la valeur false comme dans l’exemple suivant :To disable all implicit globs, you can set the <EnableDefaultItems> property to false as in the following example:

<PropertyGroup>
    <EnableDefaultItems>false</EnableDefaultItems>
</PropertyGroup>

RecommandationRecommendation

Avec csproj, nous vous recommandons de supprimer les modèles Glob par défaut de votre projet et d’ajouter uniquement des chemins de fichier avec des modèles Glob pour les artefacts dont votre application/bibliothèque a besoin dans différents scénarios (par exemple, runtime et mise en package NuGet).With csproj, we recommend that you remove the default globs from your project and only add file paths with globs for those artifacts that your app/library needs for various scenarios (for example, runtime and NuGet packaging).

Comment afficher la totalité du projet tel qu’il est perçu par MSBuild ?How to see the whole project as MSBuild sees it

Même si ces modifications csproj simplifient considérablement les fichiers projet, vous pouvez souhaiter voir le projet entièrement développé tel qu’il est perçu par MSBuild une fois le kit SDK et ses cibles inclus.While those csproj changes greatly simplify project files, you might want to see the fully expanded project as MSBuild sees it once the SDK and its targets are included. Prétraitez le projet avec le commutateur /pp de la commande dotnet msbuild, qui affiche les fichiers qui sont importés, leurs sources et leurs contributions à la build sans réellement générer le projet :Preprocess the project with the /pp switch of the dotnet msbuild command, which shows which files are imported, their sources, and their contributions to the build without actually building the project:

dotnet msbuild -pp:fullproject.xml

Si le projet comporte plusieurs frameworks cibles, les résultats de la commande ne doivent se concentrer que sur un seul d'entre eux en le spécifiant en tant que propriété MSBuild :If the project has multiple target frameworks, the results of the command should be focused on only one of them by specifying it as an MSBuild property:

dotnet msbuild -p:TargetFramework=netcoreapp2.0 -pp:fullproject.xml

AjoutsAdditions

Attribut SdkSdk attribute

L’élément <Project> du fichier .csproj a un nouvel attribut nommé Sdk.The <Project> element of the .csproj file has a new attribute called Sdk. Sdk spécifie le SDK à utiliser par le projet.Sdk specifies which SDK will be used by the project. Le SDK, comme le décrit le document de superposition, est un ensemble de tâches et de cibles MSBuild pouvant générer du code .NET Core.The SDK, as the layering document describes, is a set of MSBuild tasks and targets that can build .NET Core code. Nous fournissons trois Kits SDK principaux dans les outils .NET Core :We ship three main SDKs with the .NET Core tools:

  1. Le SDK .NET Core avec l’ID Microsoft.NET.SdkThe .NET Core SDK with the ID of Microsoft.NET.Sdk
  2. Le SDK .NET Core avec l’ID Microsoft.NET.Sdk.WebThe .NET Core web SDK with the ID of Microsoft.NET.Sdk.Web
  3. Le Kit SDK de la bibliothèque de classes .NET Core Razor avec l’ID Microsoft.NET.Sdk.RazorThe .NET Core Razor Class Library SDK with the ID of Microsoft.NET.Sdk.Razor

Vous devez définir l’attribut Sdk sur un de ces ID pour l’élément <Project> afin d’utiliser les outils .NET Core et générer votre code.You need to have the Sdk attribute set to one of those IDs on the <Project> element in order to use the .NET Core tools and build your code.

PackageReferencePackageReference

Élément qui spécifie une dépendance NuGet dans le projet.Item that specifies a NuGet dependency in the project. L’attribut Include spécifie l’ID du package.The Include attribute specifies the package ID.

<PackageReference Include="<package-id>" Version="" PrivateAssets="" IncludeAssets="" ExcludeAssets="" />

VersionVersion

Version spécifie la version du package à restaurer.Version specifies the version of the package to restore. L’attribut respecte les règles du schéma de contrôle de version de NuGet.The attribute respects the rules of the NuGet versioning scheme. Le comportement par défaut est une correspondance exacte entre les versions.The default behavior is an exact version match. Par exemple, la spécification Version="1.2.3" est équivalente à la notation [1.2.3] de NuGet pour la version du package 1.2.3 précisément.For example, specifying Version="1.2.3" is equivalent to NuGet notation [1.2.3] for the exact 1.2.3 version of the package.

IncludeAssets, ExcludeAssets et PrivateAssetsIncludeAssets, ExcludeAssets and PrivateAssets

L’attribut IncludeAssets spécifie quelles ressources appartenant au package spécifié par <PackageReference> doivent être utilisées.IncludeAssets attribute specifies which assets belonging to the package specified by <PackageReference> should be consumed.

L’attribut ExcludeAssets spécifie quelles ressources appartenant au package spécifié par <PackageReference> ne doivent pas être utilisées.ExcludeAssets attribute specifies which assets belonging to the package specified by <PackageReference> should not be consumed.

L’attribut PrivateAssets spécifie quelles ressources appartenant au package spécifié par <PackageReference> doivent être utilisées, mais sans être reprises dans le projet suivant.PrivateAssets attribute specifies which assets belonging to the package specified by <PackageReference> should be consumed but not flow to the next project.

Note

PrivateAssets est équivalent à l’élément project.json/xproj SuppressParent.PrivateAssets is equivalent to the project.json/xproj SuppressParent element.

Ces attributs peuvent contenir un ou plusieurs des éléments suivants :These attributes can contain one or more of the following items:

  • Compile : Le contenu du dossier lib est disponible pour la compilation.Compile – the contents of the lib folder are available to compile against.
  • Runtime : Le contenu du dossier runtime est distribué.Runtime – the contents of the runtime folder are distributed.
  • ContentFiles : Le contenu du dossier contentfiles est utilisé.ContentFiles – the contents of the contentfiles folder are used.
  • Build : Les propriétés/cibles du dossier de génération sont utilisées.Build – the props/targets in the build folder are used.
  • Native : Le contenu des ressources natives est copié dans le dossier de sortie de l’exécution.Native – the contents from native assets are copied to the output folder for runtime.
  • Analyzers : Les analyseurs sont utilisés.Analyzers – the analyzers are used.

Sinon, l’attribut peut contenir :Alternatively, the attribute can contain:

  • None : Aucune ressource n’est utilisée.None – none of the assets are used.
  • All : Toutes les ressources sont utilisées.All – all assets are used.

DotNetCliToolReferenceDotNetCliToolReference

L’élément <DotNetCliToolReference> spécifie l’outil CLI que l’utilisateur veut restaurer dans le contexte du projet.<DotNetCliToolReference> item element specifies the CLI tool that the user wants to restore in the context of the project. Il constitue une alternative au nœud tools dans project.json.It's a replacement for the tools node in project.json.

<DotNetCliToolReference Include="<package-id>" Version="" />

VersionVersion

Version spécifie la version du package à restaurer.Version specifies the version of the package to restore. L’attribut respecte les règles du schéma de contrôle de version de NuGet.The attribute respects the rules of the NuGet versioning scheme. Le comportement par défaut est une correspondance exacte entre les versions.The default behavior is an exact version match. Par exemple, la spécification Version="1.2.3" est équivalente à la notation [1.2.3] de NuGet pour la version du package 1.2.3 précisément.For example, specifying Version="1.2.3" is equivalent to NuGet notation [1.2.3] for the exact 1.2.3 version of the package.

RuntimeIdentifiersRuntimeIdentifiers

L’élément <RuntimeIdentifiers> permet de spécifier une liste délimitée par des points-virgules d’identificateurs de runtime (RID) pour le projet.The <RuntimeIdentifiers> element lets you specify a semicolon-delimited list of Runtime Identifiers (RIDs) for the project. Les RID permettent de publier des déploiements autonomes.RIDs enable publishing a self-contained deployments.

<RuntimeIdentifiers>win10-x64;osx.10.11-x64;ubuntu.16.04-x64</RuntimeIdentifiers>

RuntimeIdentifierRuntimeIdentifier

L’élément <RuntimeIdentifier> vous permet de spécifier un seul identificateur de runtime (RID) pour le projet.The <RuntimeIdentifier> element allows you to specify only one Runtime Identifier (RID) for the project. Les RID permettent de publier un déploiement autonome.RIDs enable publishing a self-contained deployment.

<RuntimeIdentifier>ubuntu.16.04-x64</RuntimeIdentifier>

PackageTargetFallbackPackageTargetFallback

L’élément <PackageTargetFallback> vous permet de spécifier un jeu de cibles compatibles à utiliser lors de la restauration des packages.The <PackageTargetFallback> element allows you to specify a set of compatible targets to be used when restoring packages. Il est conçu pour permettre aux packages qui utilisent le moniker du framework cible dotnet de fonctionner avec les packages qui ne déclarent pas de moniker du framework cible dotnet.It's designed to allow packages that use the dotnet TxM (Target x Moniker) to operate with packages that don't declare a dotnet TxM. Si votre projet utilise le moniker du framework cible dotnet, tous les packages dont il dépend doivent également avoir un moniker du framework cible dotnet, sauf si vous ajoutez <PackageTargetFallback> à votre projet pour permettre aux plateformes autres que dotnet d’être compatibles avec dotnet.If your project uses the dotnet TxM, then all the packages it depends on must also have a dotnet TxM, unless you add the <PackageTargetFallback> to your project in order to allow non-dotnet platforms to be compatible with dotnet.

L’exemple suivant fournit les solutions de secours pour toutes les cibles dans votre projet :The following example provides the fallbacks for all targets in your project:

<PackageTargetFallback>
    $(PackageTargetFallback);portable-net45+win8+wpa81+wp8
</PackageTargetFallback >

L’exemple suivant spécifie les solutions de secours uniquement pour la cible netcoreapp2.1 :The following example specifies the fallbacks only for the netcoreapp2.1 target:

<PackageTargetFallback Condition="'$(TargetFramework)'=='netcoreapp2.1'">
    $(PackageTargetFallback);portable-net45+win8+wpa81+wp8
</PackageTargetFallback >

Propriétés de métadonnées NuGetNuGet metadata properties

Avec le passage à MSbuild, nous avons transféré les métadonnées d’entrée utilisées lors de la compression d’un package NuGet des fichiers project.json vers les fichiers csproj.With the move to MSbuild, we have moved the input metadata that is used when packing a NuGet package from project.json to .csproj files. Les entrées sont des propriétés MSBuild qui doivent donc être placées dans un groupe <PropertyGroup>.The inputs are MSBuild properties so they have to go within a <PropertyGroup> group. Voici la liste des propriétés qui sont utilisées comme entrées dans le processus de compression lors de l’utilisation de la commande dotnet pack ou de la cible MSBuild Pack qui fait partie du SDK.The following is the list of properties that are used as inputs to the packing process when using the dotnet pack command or the Pack MSBuild target that is part of the SDK.

IsPackableIsPackable

Valeur booléenne qui spécifie si le projet peut être compressé.A Boolean value that specifies whether the project can be packed. La valeur par défaut est true.The default value is true.

PackageVersionPackageVersion

Spécifie la version du package obtenu.Specifies the version that the resulting package will have. Accepte toutes les formes de la chaîne de version NuGet.Accepts all forms of NuGet version string. La valeur par défaut est la valeur de $(Version), autrement dit, de la propriété Version dans le projet.Default is the value of $(Version), that is, of the property Version in the project.

PackageIdPackageId

Spécifie le nom du package obtenu.Specifies the name for the resulting package. Si non spécifié, l’opération pack utilise par défaut le AssemblyName ou le nom du répertoire comme nom du package.If not specified, the pack operation will default to using the AssemblyName or directory name as the name of the package.

TitreTitle

Titre convivial du package, généralement utilisé dans les affichages de l’interface utilisateur comme sur nuget.org et dans le gestionnaire de package de Visual Studio.A human-friendly title of the package, typically used in UI displays as on nuget.org and the Package Manager in Visual Studio. Si non spécifié, l’ID de package est utilisé à la place.If not specified, the package ID is used instead.

AuteursAuthors

Liste séparée par des points-virgules des auteurs de packages, qui correspondent aux noms de profil sur nuget.org. Ceux-ci sont affichés dans la galerie NuGet sur nuget.org et servent à croiser les références des packages de mêmes auteurs.A semicolon-separated list of packages authors, matching the profile names on nuget.org. These are displayed in the NuGet Gallery on nuget.org and are used to cross-reference packages by the same authors.

DescriptionDescription

Description longue du package pour l’affichage de l’interface utilisateur.A long description of the package for UI display.

Détails de copyright pour le package.Copyright details for the package.

PackageRequireLicenseAcceptancePackageRequireLicenseAcceptance

Valeur booléenne qui spécifie si le client doit inviter l’utilisateur à accepter la licence du package avant d’installer le package.A Boolean value that specifies whether the client must prompt the consumer to accept the package license before installing the package. La valeur par défaut est false.The default is false.

PackageLicenseUrlPackageLicenseUrl

URL vers la licence applicable au package.An URL to the license that is applicable to the package.

PackageProjectUrlPackageProjectUrl

URL de la page d’accueil du package, souvent affichée dans l’interface utilisateur ainsi que sur nuget.org.A URL for the package's home page, often shown in UI displays as well as nuget.org.

PackageIconUrlPackageIconUrl

URL d’une image 64 x 64 avec un arrière-plan transparent à utiliser comme icône pour le package dans l’affichage de l’interface utilisateur.A URL for a 64x64 image with transparent background to use as the icon for the package in UI display.

PackageReleaseNotesPackageReleaseNotes

Notes de publication du package.Release notes for the package.

PackageTagsPackageTags

Liste de balises séparées par un point-virgule qui désigne le package.A semicolon-delimited list of tags that designates the package.

PackageOutputPathPackageOutputPath

Détermine le chemin de sortie dans lequel le package compressé est déposé.Determines the output path in which the packed package will be dropped. La valeur par défaut est $(OutputPath).Default is $(OutputPath).

IncludeSymbolsIncludeSymbols

Cette valeur booléenne indique si le package doit créer un package de symboles supplémentaire quand le projet est compressé.This Boolean value indicates whether the package should create an additional symbols package when the project is packed. Ce package a une extension .symbols.nupkg et copie les fichiers PDB avec la DLL et d’autres fichiers de sortie.This package will have a .symbols.nupkg extension and will copy the PDB files along with the DLL and other output files.

IncludeSourceIncludeSource

Cette valeur booléenne indique si le processus de compression doit créer un package source.This Boolean value indicates whether the pack process should create a source package. Le package source contient le code source de la bibliothèque ainsi que les fichiers PDB.The source package contains the library's source code as well as PDB files. Les fichiers sources sont placés dans le répertoire src/ProjectName dans le fichier de package obtenu.Source files are put under the src/ProjectName directory in the resulting package file.

IsToolIsTool

Spécifie si tous les fichiers de sortie sont copiés dans le dossier tools au lieu du dossier lib.Specifies whether all output files are copied to the tools folder instead of the lib folder. Notez que cela est différent d’un DotNetCliTool qui est spécifié en définissant PackageType dans le fichier .csproj.Note that this is different from a DotNetCliTool which is specified by setting the PackageType in the .csproj file.

RepositoryUrlRepositoryUrl

Spécifie l’URL du dépôt où réside le code source du package et/ou à partir de laquelle il est généré.Specifies the URL for the repository where the source code for the package resides and/or from which it's being built.

RepositoryTypeRepositoryType

Spécifie le type de dépôt.Specifies the type of the repository. La valeur par défaut est « git ».Default is "git".

NoPackageAnalysisNoPackageAnalysis

Spécifie que le pack ne doit pas exécuter d’analyse du package après sa génération.Specifies that pack should not run package analysis after building the package.

MinClientVersionMinClientVersion

Spécifie la version minimale du client NuGet qui peut installer ce package, appliquée par nuget.exe et le gestionnaire de package Visual Studio.Specifies the minimum version of the NuGet client that can install this package, enforced by nuget.exe and the Visual Studio Package Manager.

IncludeBuildOutputIncludeBuildOutput

Ces valeurs booléennes spécifient si les assemblys de sortie de génération doivent être compressés dans le fichier .nupkg ou non.This Boolean values specifies whether the build output assemblies should be packed into the .nupkg file or not.

IncludeContentInPackIncludeContentInPack

Cette valeur booléenne indique si tous les éléments qui ont un type Content sont automatiquement inclus dans le package obtenu.This Boolean value specifies whether any items that have a type of Content will be included in the resulting package automatically. La valeur par défaut est true.The default is true.

BuildOutputTargetFolderBuildOutputTargetFolder

Spécifie le dossier où placer les assemblys de sortie.Specifies the folder where to place the output assemblies. Les assemblys de sortie (et les autres fichiers de sortie) sont copiés dans les dossiers de leur framework respectif.The output assemblies (and other output files) are copied into their respective framework folders.

ContentTargetFoldersContentTargetFolders

Cette propriété spécifie l’emplacement par défaut où placer tous les fichiers de contenu si PackagePath n’est pas spécifié pour eux.This property specifies the default location of where all the content files should go if PackagePath is not specified for them. La valeur par défaut est « content;contentFiles ».The default value is "content;contentFiles".

NuspecFileNuspecFile

Chemin relatif ou absolu du fichier .nuspec utilisé pour la compression.Relative or absolute path to the .nuspec file being used for packing.

Note

Si le fichier .nuspec est spécifié, il est utilisé exclusivement pour les informations de packaging et toutes les informations non utilisées dans les projets.If the .nuspec file is specified, it's used exclusively for packaging information and any information in the projects is not used.

NuspecBasePathNuspecBasePath

Chemin de base pour le fichier .nuspec.Base path for the .nuspec file.

NuspecPropertiesNuspecProperties

Liste de paires clé=valeur séparées par un point-virgule.Semicolon separated list of key=value pairs.

Propriétés AssemblyInfoAssemblyInfo properties

Les attributs d’assembly qui figurent généralement dans un fichier AssemblyInfo désormais générés automatiquement à partir des propriétés.Assembly attributes that were typically present in an AssemblyInfo file are now automatically generated from properties.

Propriétés par attributProperties per attribute

Chaque attribut a une propriété qui contrôle son contenu et une autre pour désactiver sa génération, comme indiqué dans le tableau suivant :Each attribute has a property that control its content and another to disable its generation as shown in the following table:

AttributAttribute PropertyProperty Propriété permettant de désactiverProperty to disable
AssemblyCompanyAttribute Company GenerateAssemblyCompanyAttribute
AssemblyConfigurationAttribute Configuration GenerateAssemblyConfigurationAttribute
AssemblyCopyrightAttribute Copyright GenerateAssemblyCopyrightAttribute
AssemblyDescriptionAttribute Description GenerateAssemblyDescriptionAttribute
AssemblyFileVersionAttribute FileVersion GenerateAssemblyFileVersionAttribute
AssemblyInformationalVersionAttribute InformationalVersion GenerateAssemblyInformationalVersionAttribute
AssemblyProductAttribute Product GenerateAssemblyProductAttribute
AssemblyTitleAttribute AssemblyTitle GenerateAssemblyTitleAttribute
AssemblyVersionAttribute AssemblyVersion GenerateAssemblyVersionAttribute
NeutralResourcesLanguageAttribute NeutralLanguage GenerateNeutralResourcesLanguageAttribute

Remarques :Notes:

  • Le comportement par défaut de AssemblyVersion et FileVersion consiste à prendre la valeur de $(Version) sans suffixe.AssemblyVersion and FileVersion default is to take the value of $(Version) without suffix. Par exemple, si $(Version) est 1.2.3-beta.4, alors la valeur serait 1.2.3.For example, if $(Version) is 1.2.3-beta.4, then the value would be 1.2.3.
  • InformationalVersion utilise par défaut la valeur de $(Version).InformationalVersion defaults to the value of $(Version).
  • $(SourceRevisionId) est ajouté à InformationalVersion si la propriété est présente.InformationalVersion has $(SourceRevisionId) appended if the property is present. Cela peut être désactivé à l’aide de IncludeSourceRevisionInInformationalVersion.It can be disabled using IncludeSourceRevisionInInformationalVersion.
  • Les propriétés Copyright et Description sont également utilisées pour les métadonnées NuGet.Copyright and Description properties are also used for NuGet metadata.
  • Configuration est partagé avec le processus de génération et défini par le biais du paramètre --configuration des commandes dotnet.Configuration is shared with all the build process and set via the --configuration parameter of dotnet commands.

GenerateAssemblyInfoGenerateAssemblyInfo

Valeur booléenne qui active ou désactive la génération AssemblyInfo.A Boolean that enable or disable all the AssemblyInfo generation. La valeur par défaut est true.The default value is true.

GeneratedAssemblyInfoFileGeneratedAssemblyInfoFile

Chemin d’accès du fichier d’informations sur l’assembly généré.The path of the generated assembly info file. Utilise par défaut un fichier dans le répertoire $(IntermediateOutputPath) (obj).Default to a file in the $(IntermediateOutputPath) (obj) directory.