Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Du kan använda en MSBuild-egenskap för att omvandla paketrelaterade projektegenskaper till sammansättningsattribut i en genererad kodfil. Dessutom kan du använda MSBuild-objekt för att lägga till godtyckliga sammansättningsattribut i den genererade filen.
Använda paketegenskaper som sammansättningsattribut
Egenskapen GenerateAssemblyInfo MSBuild styr AssemblyInfo attributgenereringen för ett projekt. När värdet GenerateAssemblyInfo är true (vilket är standard) omvandlas paketrelaterade projektegenskaper till sammansättningsattribut. I följande tabell visas de projektegenskaper som genererar attributen. Den visar även de egenskaper som du kan använda för att inaktivera den generationen per attribut, till exempel:
<PropertyGroup>
  <GenerateNeutralResourcesLanguageAttribute>false</GenerateNeutralResourcesLanguageAttribute>
</PropertyGroup>
| MSBuild-egenskap | Sammansättningsattribut | Egenskap för att inaktivera attributgenerering | 
|---|---|---|
| Company | AssemblyCompanyAttribute | GenerateAssemblyCompanyAttribute | 
| Configuration | AssemblyConfigurationAttribute | GenerateAssemblyConfigurationAttribute | 
| Copyright | AssemblyCopyrightAttribute | GenerateAssemblyCopyrightAttribute | 
| Description | AssemblyDescriptionAttribute | GenerateAssemblyDescriptionAttribute | 
| FileVersion | AssemblyFileVersionAttribute | GenerateAssemblyFileVersionAttribute | 
| InformationalVersion | AssemblyInformationalVersionAttribute | GenerateAssemblyInformationalVersionAttribute | 
| Product | AssemblyProductAttribute | GenerateAssemblyProductAttribute | 
| AssemblyTitle | AssemblyTitleAttribute | GenerateAssemblyTitleAttribute | 
| AssemblyVersion | AssemblyVersionAttribute | GenerateAssemblyVersionAttribute | 
| NeutralLanguage | NeutralResourcesLanguageAttribute | GenerateNeutralResourcesLanguageAttribute | 
Information om de här inställningarna:
- 
              AssemblyVersionochFileVersionstandardinställs till värdet av$(Version)utan suffixet. Om till exempel$(Version)är1.2.3-beta.4så blir värdet1.2.3.
- 
              InformationalVersionstandardställs till värdet av$(Version).
- Om egenskapen $(SourceRevisionId)finns, läggs den tillInformationalVersion. Du kan inaktivera det här beteendet med hjälp avIncludeSourceRevisionInInformationalVersion.
- 
              CopyrightochDescriptionegenskaper används också för NuGet-metadata.
- 
              Configuration, som som standard ärDebug, delas med alla MSBuild-mål. Du kan ange det via--configurationalternativetdotnetkommandon, till exempel dotnet pack.
- Vissa av egenskaperna används när du skapar ett NuGet-paket. Mer information finns i Paketegenskaper.
Ange godtyckliga attribut
Du kan också lägga till egna sammansättningsattribut i den genererade filen. Det gör du genom att definiera <AssemblyAttribute> MSBuild-objekt som talar om för SDK vilken typ av attribut som ska skapas. Dessa objekt bör också innehålla eventuella konstruktorparametrar som krävs för det attributet. Attributet System.Reflection.AssemblyMetadataAttribute har till exempel en konstruktor som tar två strängar:
- Ett namn som beskriver ett godtyckligt värde.
- Värdet som ska lagras.
Om du hade en Date egenskap i MSBuild som innehöll datumet då en sammansättning skapades kan du använda AssemblyMetadataAttribute för att bädda in det datumet i sammansättningsattributen med hjälp av följande MSBuild-kod:
<ItemGroup>
  <!-- Include must be the fully qualified .NET type name of the Attribute to create. -->
  <AssemblyAttribute Include="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>
Det här objektet instruerar .NET SDK att avge följande C# (eller motsvarande F# eller Visual Basic) som ett attribut på sammansättningsnivå:
[assembly: System.Reflection.AssemblyMetadataAttribute("BuildDate", "01/19/2024")]
(Den faktiska datumsträngen skulle vara det du angav vid tidpunkten för bygget.)
Om attributet har andra parametertyper än System.Stringkan du ange parametrarna med hjälp av ett visst mönster med XML-element som stöds av MSBuild-aktiviteten WriteCodeFragment . Se WriteCodeFragment-uppgift – Generera attribut på sammansättningsnivå.
Migrera från .NET Framework
Om du migrerar .NET Framework-projektet till .NET 6 eller senare kan det uppstå ett fel som rör dubbletter av sammansättningsinformationsfiler. Det beror på att projektmallar för .NET Framework skapar en kodfil med attributen för monteringsinformation redan ifyllda. Filen finns vanligtvis på .\Properties\AssemblyInfo.cs eller .\Properties\AssemblyInfo.vb. Men SDK-liknande projekt genererar även den här filen åt dig baserat på projektinställningarna.
När du porterar koden till .NET 6 eller senare gör du något av följande:
- Inaktivera genereringen av den tillfälliga kodfilen som innehåller attributen för sammansättningsinformation genom att ställa in GenerateAssemblyInfotillfalsei din projektfil. På så sätt kan du behålla din AssemblyInfo-fil .
- Migrera inställningarna i AssemblyInfo-filen till projektfilen och ta sedan bort AssemblyInfo-filen .