Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vlastnost MSBuild můžete použít k transformaci vlastností projektu souvisejícího s balíčkem na atributy sestavení v vygenerovaném souboru kódu. Dále můžete pomocí položek nástroje MSBuild přidat k vygenerovanému souboru libovolné atributy sestavení.
Použití vlastností balíčku jako atributů sestavení
Vlastnost GenerateAssemblyInfo
MSBuild řídí AssemblyInfo
generování atributů projektu. Pokud je hodnota GenerateAssemblyInfo
(což je výchozí true
), vlastnosti projektu související s balíčkem se transformují na atributy sestavení. Následující tabulka uvádí vlastnosti projektu, které generují atributy. Obsahuje také vlastnosti, které můžete použít k zakázání generování na základě atributu, například:
<PropertyGroup>
<GenerateNeutralResourcesLanguageAttribute>false</GenerateNeutralResourcesLanguageAttribute>
</PropertyGroup>
Vlastnost MSBuild | Atribut sestavení | Vlastnost pro zakázání generování atributů |
---|---|---|
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 |
Poznámky k těmto nastavením:
-
AssemblyVersion
aFileVersion
se nastavují na hodnotu$(Version)
bez přípony. Pokud$(Version)
je1.2.3-beta.4
například , pak by hodnota byla1.2.3
. -
InformationalVersion
výchozí hodnota je hodnota$(Version)
. -
$(SourceRevisionId)
Pokud je vlastnost přítomna, je připojena kInformationalVersion
. Toto chování můžete zakázat pomocí .IncludeSourceRevisionInInformationalVersion
-
Copyright
aDescription
vlastnosti se také používají pro metadata NuGet. -
Configuration
, který má ve výchozím nastavení hodnotuDebug
, je sdílen se všemi cíli nástroje MSBuild. Můžete ho nastavit pomocí--configuration
možnostidotnet
příkazů, například dotnet pack. - Některé vlastnosti se používají při vytváření balíčku NuGet. Další informace naleznete v tématu Vlastnosti balíčku.
Nastavení libovolných atributů
Do vygenerovaného souboru je také možné přidat vlastní atributy sestavení. Chcete-li to provést, definujte <AssemblyAttribute>
položky MSBuild, které určují, jaký typ atributu má SDK vytvořit. Tyto položky by také měly obsahovat všechny parametry konstruktoru, které jsou požadovány pro daný atribut. Například má atribut System.Reflection.AssemblyMetadataAttribute konstruktor, který bere dva řetězce:
- Název, který popisuje libovolnou hodnotu.
- Hodnota, která se má uložit.
Pokud jste měli Date
vlastnost v nástroji MSBuild, která obsahovala datum vytvoření sestavení, můžete použít AssemblyMetadataAttribute
k vložení tohoto data do atributů sestavení pomocí následujícího kódu MSBuild:
<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>
Tato položka instruuje sadu .NET SDK, aby emitovala následující C# (nebo ekvivalentní F# nebo Visual Basic) jako atribut na úrovni sestavení.
[assembly: System.Reflection.AssemblyMetadataAttribute("BuildDate", "01/19/2024")]
(Skutečný datumový řetězec by byl ten, který jste zadali v době sestavení.)
Pokud má atribut jiné typy parametrů než System.String
, můžete zadat parametry pomocí konkrétního vzoru elementů XML podporovaných úlohou MSBuild WriteCodeFragment
. Viz úloha WriteCodeFragment – generování atributů na úrovni sestavení.
Migrace z rozhraní .NET Framework
Pokud migrujete projekt rozhraní .NET Framework na .NET 6 nebo novější, může dojít k chybě související s duplicitními soubory informací o sestavení. Je to proto, že šablony projektů rozhraní .NET Framework vytvářejí soubor kódu s nastavenými atributy informací o sestavení. Soubor je obvykle umístěn v umístění .\Properties\AssemblyInfo.cs nebo .\Properties\AssemblyInfo.vb. Projekty ve stylu sady SDK však také generují tento soubor za vás na základě nastavení projektu.
Při přenosu kódu do .NET 6 nebo novějšího proveďte jednu z následujících věcí:
- Zakázáním generování dočasného souboru kódu, který zahrnuje atributy informací o sestavení, a nastavením
GenerateAssemblyInfo
nafalse
ve vašem souboru projektu. To vám umožní zachovat soubor AssemblyInfo . - Migrujte nastavení v souboru AssemblyInfo do souboru projektu a odstraňte soubor AssemblyInfo .