Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Paketle ilgili proje özelliklerini oluşturulan bir kod dosyasındaki derleme özniteliklerine dönüştürmek için MSBuild özelliğini kullanabilirsiniz. Ayrıca, oluşturulan dosyaya rastgele derleme öznitelikleri eklemek için MSBuild öğelerini kullanabilirsiniz.
Paket özelliklerini derleme öznitelikleri olarak kullanma
GenerateAssemblyInfo MSBuild özelliği, bir proje için öznitelik oluşturmayı denetlerAssemblyInfo.
GenerateAssemblyInfo Değer olduğunda true (varsayılan değer), paketle ilgili proje özellikleri derleme özniteliklerine dönüştürülür. Aşağıdaki tabloda öznitelikleri oluşturan proje özellikleri listelemektedir. Ayrıca, bu nesli öznitelik temelinde devre dışı bırakmak için kullanabileceğiniz özellikler de listelenir, örneğin:
<PropertyGroup>
<GenerateNeutralResourcesLanguageAttribute>false</GenerateNeutralResourcesLanguageAttribute>
</PropertyGroup>
| MSBuild özelliği | Derleme özniteliği | Öznitelik oluşturmayı devre dışı bırakmak için özellik |
|---|---|---|
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 |
Bu ayarlarla ilgili notlar:
-
AssemblyVersionveFileVersion, soneki olmadan$(Version)değerini varsayılan olarak alır. Örneğin,$(Version)ise1.2.3-beta.4, değeri1.2.3olacaktır. -
InformationalVersionvarsayılan olarak$(Version)değerini alır. - Özellik
$(SourceRevisionId)varsa,InformationalVersionöğesine eklenir. kullanarakIncludeSourceRevisionInInformationalVersionbu davranışı devre dışı bırakabilirsiniz. -
CopyrightveDescriptionözellikleri NuGet meta verileri için de kullanılır. -
Configuration, varsayılan olarakDebugolarak ayarlanır ve tüm MSBuild hedefleriyle paylaşılır. Bunu komut seçeneğiyle--configurationdotnetayarlayabilirsiniz, örneğin dotnet pack. - NuGet paketi oluşturulurken bazı özellikler kullanılır. Daha fazla bilgi için bkz . Paket özellikleri.
Rastgele öznitelikler ayarlama
Oluşturulan dosyaya kendi derleme özniteliklerinizi de ekleyebilirsiniz. Bunu yapmak için SDK'ya ne tür bir öznitelik oluşturulacağını belirten MSBuild öğelerini tanımlayın <AssemblyAttribute> . Bu öğeler, bu öznitelik için gerekli olan tüm oluşturucu parametrelerini de içermelidir. Örneğin, System.Reflection.AssemblyMetadataAttribute özniteliğinin iki dize alan bir oluşturucusu vardır.
- Rastgele bir değeri açıklamak için bir ad.
- Depolanacak değer.
MSBuild'de bir derlemenin oluşturulduğu tarihi içeren bir Date özelliğiniz varsa, aşağıdaki MSBuild kodunu kullanarak bu tarihi derleme özniteliklerine eklemek için kullanabilirsiniz AssemblyMetadataAttribute :
<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>
Bu öğe .NET SDK'sına derleme düzeyi özniteliği olarak aşağıdaki C# (veya eşdeğer F# veya Visual Basic) yaymalarını söyler:
[assembly: System.Reflection.AssemblyMetadataAttribute("BuildDate", "01/19/2024")]
(Gerçek tarih bilgisi, derleme sırasında sağladığınız değer olacaktır.)
Özniteliğin dışında System.Stringparametre türleri varsa, MSBuild WriteCodeFragment görevi tarafından desteklenen belirli bir XML öğesi desenini kullanarak parametreleri belirtebilirsiniz. See WriteCodeFragment görevi - Derleme seviyesi öznitelikler oluştur.
.NET Framework'ten geçiş
.NET Framework projenizi .NET 6 veya sonraki bir sürüme geçirirseniz, yinelenen derleme bilgileri dosyalarıyla ilgili bir hatayla karşılaşabilirsiniz. Bunun nedeni, .NET Framework proje şablonlarının derleme bilgisi öznitelikleri ayarlanmış bir kod dosyası oluşturmasıdır. Dosya genellikle .\Properties\AssemblyInfo.cs veya .\Properties\AssemblyInfo.vb konumunda bulunur. Ancak SDK stilindeki projeler de bu dosyayı proje ayarlarına göre sizin için oluşturur .
Kodunuzu .NET 6 veya sonraki bir sürüme aktarırken aşağıdakilerden birini yapın:
- Proje dosyanızda
GenerateAssemblyInfodeğerinifalseyaparak derleme bilgi özniteliklerini içeren geçici kod dosyasının oluşturulmasını devre dışı bırakın. Bu, AssemblyInfo dosyanızı tutmanızı sağlar. - AssemblyInfo dosyasındaki ayarları proje dosyasına geçirin ve ardından AssemblyInfo dosyasını silin.