Szerelvényattribútumok beállítása projektfájlban
Az MSBuild tulajdonsággal a csomaghoz kapcsolódó projekttulajdonságokat szerelvényattribútumokká alakíthatja egy létrehozott kódfájlban. Emellett az MSBuild elemekkel tetszőleges szerelvényattribútumokat adhat hozzá a létrehozott fájlhoz.
Csomagtulajdonságok használata szerelvényattribútumként
Az GenerateAssemblyInfo
MSBuild tulajdonság egy projekt attribútumgenerálását szabályozza AssemblyInfo
. Ha az GenerateAssemblyInfo
true
érték (ez az alapértelmezett), a csomaghoz kapcsolódó projekttulajdonságok szerelvényattribútumokká alakulnak. Az alábbi táblázat az attribútumokat létrehozó projekttulajdonságokat sorolja fel. Emellett felsorolja azokat a tulajdonságokat is, amelyekkel attribútumonként tilthatja le a generációt, például:
<PropertyGroup>
<GenerateNeutralResourcesLanguageAttribute>false</GenerateNeutralResourcesLanguageAttribute>
</PropertyGroup>
MSBuild tulajdonság | Szerelvény attribútuma | Tulajdonság az attribútumlétrehozás letiltásához |
---|---|---|
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 |
Megjegyzések ezekről a beállításokról:
AssemblyVersion
ésFileVersion
alapértelmezés szerint az utótag nélküli értékre$(Version)
. Ha például igen1.2.3-beta.4
,$(Version)
akkor az érték az lenne1.2.3
.InformationalVersion
alapértelmezés szerint a következő értékre van adva: .$(Version)
- Ha a
$(SourceRevisionId)
tulajdonság jelen van, a program hozzáfűzi a tulajdonsághozInformationalVersion
. Ezt a viselkedést letilthatja a következővelIncludeSourceRevisionInInformationalVersion
: . Copyright
ésDescription
a tulajdonságok a NuGet-metaadatokhoz is használhatók.Configuration
az alapértelmezett értékDebug
az összes MSBuild-célhellyel meg van osztva. A parancsok, például a--configuration
dotnet-csomag beállításávaldotnet
állítható be.- Néhány tulajdonság a NuGet-csomagok létrehozásakor használatos. További információ: Csomagtulajdonságok.
Tetszőleges attribútumok beállítása
A létrehozott fájlhoz saját szerelvényattribútumokat is hozzáadhat. Ehhez határozza meg <AssemblyAttribute>
az MSBuild elemeket, amelyek közlik az SDK-val, hogy milyen típusú attribútumot kell létrehozni. Ezeknek az elemeknek tartalmazniuk kell az attribútumhoz szükséges konstruktorparamétereket is. Az attribútumnak például System.Reflection.AssemblyMetadataAttribute van egy konstruktora, amely két sztringet vesz fel:
- Tetszőleges értéket leíró név.
- A tárolni kívánt érték.
Ha az MSBuildben olyan Date
tulajdonsága volt, amely tartalmazza a szerelvény létrehozásának dátumát, a következő MSBuild-kóddal ágyazhatja AssemblyMetadataAttribute
be ezt a dátumot a szerelvényattribútumokba:
<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>
Ez az elem arra utasítja a .NET SDK-t, hogy a következő C# (vagy azzal egyenértékű F# vagy Visual Basic) értéket adja ki szerelvényszintű attribútumként:
[assembly: System.Reflection.AssemblyMetadataAttribute("BuildDate", "01/19/2024")]
(A tényleges dátumsztring minden, amit a build időpontjában adott meg.)
Migrálás .NET-keretrendszerből
Ha a .NET-keretrendszer projektet a .NET 6-os vagy újabb verziójába migrálja, előfordulhat, hogy a szerelvényadatok duplikálásával kapcsolatos hibát tapasztal. Ennek az az oka, hogy .NET-keretrendszer projektsablonok létrehoznak egy kódfájlt szerelvényinformációs attribútumokkal. A fájl általában a következő helyen található: .\Properties\AssemblyInfo.cs vagy .\Properties\AssemblyInfo.vb. Az SDK-stílusú projektek azonban a projektbeállítások alapján is létrehozzák ezt a fájlt.
Amikor a kódot a .NET 6-os vagy újabb verziójába portozza, tegye az alábbiak egyikét:
- Tiltsa le a szerelvényadatok attribútumait tartalmazó ideiglenes kódfájl létrehozását a projektfájlban való beállítással
GenerateAssemblyInfo
false
. Ez lehetővé teszi a AssemblyInfo-fájl megőrzését. - Migrálja a AssemblyInfo fájl beállításait a projektfájlba, majd törölje a AssemblyInfo fájlt.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: