Utiliser des propriétés de package en tant qu’attributs d’assembly
La propriété MSBuild GenerateAssemblyInfo contrôle la génération de l’attribut AssemblyInfo pour un projet. Quand la valeur de GenerateAssemblyInfo est true (valeur par défaut), les propriétés de projet liées au package sont transformées en attributs d’assembly. Le tableau suivant répertorie les propriétés de projet qui génèrent les attributs. Il répertorie également les propriétés que vous pouvez utiliser pour désactiver cette génération par attribut, telles que :
AssemblyVersion et FileVersion correspondent par défaut à la valeur de $(Version) sans le suffixe. Par exemple, si $(Version) est 1.2.3-beta.4, alors la valeur serait 1.2.3.
InformationalVersion utilise par défaut la valeur de $(Version).
Si la propriété $(SourceRevisionId) est présente, elle est ajoutée à InformationalVersion. Vous pouvez désactiver ce comportement à l’aide de IncludeSourceRevisionInInformationalVersion.
Les propriétés Copyright et Description sont également utilisées pour les métadonnées NuGet.
Configuration, qui correspond par défaut à Debug, est partagé avec toutes les cibles MSBuild. Vous pouvez le définir via l’option --configuration des commandes dotnet, telle que dotnet pack.
Certaines des propriétés sont utilisées lors de la création d’un package NuGet. Pour plus d’informations, consultez Propriétés du package.
Définir des attributs arbitraires
Vous pouvez également ajouter vos propres attributs d’assembly au fichier généré. Pour ce faire, définissez des éléments MSBuild <AssemblyAttribute> qui indiquent au Kit de développement logiciel (SDK) le type d’attribut à créer. Ces éléments doivent également inclure tous les paramètres de constructeur requis pour cet attribut. Par exemple, l’attribut System.Reflection.AssemblyMetadataAttribute a un constructeur qui accepte deux chaînes :
Un nom pour décrire une valeur arbitraire
La valeur à stocker
Si vous avez une propriété Date dans MSBuild contenant la date de création d’un assembly, vous pouvez utiliser AssemblyMetadataAttribute pour incorporer cette date dans les attributs d’assembly à l’aide du code MSBuild suivant :
XML
<ItemGroup><!-- Include must be the fully qualified .NET type name of the Attribute to create. --><AssemblyAttributeInclude="System.Reflection.AssemblyMetadataAttribute"><!-- _Parameter1, _Parameter2, etc. correspond to the
matching parameter of a constructor of that .NET attribute type --><_Parameter1>BuildDate</_Parameter1><_Parameter2>$(Date)</_Parameter2></AssemblyAttribute></ItemGroup>
Cet élément indique au SDK .NET d’émettre le code C# (ou le code F# ou Visual Basic équivalent) en tant qu’attribut de niveau assembly :
(La chaîne de date réelle correspond à celle que vous avez fournie au moment de la génération.)
Si l’attribut a des types de paramètres autres que System.String, vous pouvez spécifier les paramètres à l’aide d’un modèle particulier d’éléments XML pris en charge par la tâche MSBuild WriteCodeFragment. Consultez Tâche WriteCodeFragment : Générer des attributs au niveau de l’assembly.
Migrer à partir de .NET Framework
Si vous migrez votre projet .NET Framework vers .NET 6 ou version ultérieure, vous pouvez rencontrer une erreur liée à des fichiers d’informations d’assembly en double. Cela est dû au fait que les modèles de projet .NET Framework créent un fichier de code avec des attributs d’informations d’assembly définis. Le fichier se trouve généralement dans .\Properties\AssemblyInfo.cs ou .\Properties\AssemblyInfo.vb. Toutefois, les projets de style SDK génèrent également ce fichier pour vous en fonction des paramètres de projet.
Lorsque vous transférez votre code vers .NET 6 ou version ultérieure, effectuez l’une des opérations suivantes :
Désactivez la génération du fichier de code temporaire qui contient les attributs d’informations d’assembly en définissant GenerateAssemblyInfo sur false dans votre fichier projet. Cela vous permet de conserver votre fichier AssemblyInfo.
Migrez les paramètres du fichier AssemblyInfo vers le fichier projet, puis supprimez le fichier AssemblyInfo.
Collaborer avec nous sur GitHub
La source de ce contenu se trouve sur GitHub, où vous pouvez également créer et examiner les problèmes et les demandes de tirage. Pour plus d’informations, consultez notre guide du contributeur.
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Créez un projet .NET et apprenez à ajouter des packages et à gérer les dépendances de package de votre projet. Utilisez CLI .NET Core et le registre NuGet pour ajouter des bibliothèques et des outils à vos applications C# par le biais de Visual Studio Code.