トレーニング
モジュール
新しい .NET プロジェクトを作成し、パッケージの依存関係を処理する - Training
.NET プロジェクトを作成し、パッケージを追加して、プロジェクト内のパッケージ依存関係を管理する方法を学習します。 .NET Core CLI と NuGet レジストリを使用して、Visual Studio Code でライブラリとツールを C# アプリケーションに追加します。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
MSBuild プロパティを使うと、生成されたコード ファイル内のアセンブリ属性にパッケージ関連のプロジェクト プロパティを変換できます。 さらに、MSBuild 項目を使って、生成されたファイルに任意のアセンブリ属性を追加できます。
GenerateAssemblyInfo
MSBuild プロパティは、プロジェクトの AssemblyInfo
属性の生成を制御します。 GenerateAssemblyInfo
値が true
(既定) の場合、パッケージ関連のプロジェクト プロパティはアセンブリ属性に変換されます。 属性を生成するプロジェクト プロパティの一覧を次の表に示します。 また、次のように、属性ごとにその生成を無効にするために使用できるプロパティの一覧も示しています。
<PropertyGroup>
<GenerateNeutralResourcesLanguageAttribute>false</GenerateNeutralResourcesLanguageAttribute>
</PropertyGroup>
MSBuild のプロパティ | Assembly 属性 | 属性の生成を無効にするプロパティ |
---|---|---|
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 |
これらの設定に関する注意事項:
AssemblyVersion
と FileVersion
の既定値は、サフィックスのない $(Version)
の値です。 たとえば、$(Version)
が 1.2.3-beta.4
の場合、値は 1.2.3
です。InformationalVersion
の既定値は、$(Version)
の値です。$(SourceRevisionId)
プロパティが存在する場合は、それが InformationalVersion
の後に追加されます。 IncludeSourceRevisionInInformationalVersion
を使用して、この動作を無効にすることができます。Copyright
および Description
プロパティも使用されます。Configuration
(既定値は Debug
) は、すべての MSBuild ターゲットと共有されます。 これは、dotnet
コマンド (dotnet pack など) の --configuration
オプションを使用して設定できます。生成されたファイルに独自のアセンブリ属性を追加することもできます。 これを行うには、作成する属性の種類を SDK に指示する <AssemblyAttribute>
MSBuild 項目を定義します。 これらの項目には、その属性に必要なコンストラクター パラメーターも含める必要があります。 たとえば、System.Reflection.AssemblyMetadataAttribute 属性には 2 つの文字列を取るコンストラクターがあります。
アセンブリが作成された日付を含む MSBuild の Date
プロパティがある場合は、次の MSBuild コードで、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>
この項目は、次の C# (または同等の F# または Visual Basic) をアセンブリ レベルの属性として出力するように .NET SDK に指示します。
[assembly: System.Reflection.AssemblyMetadataAttribute("BuildDate", "01/19/2024")]
(実際の日付文字列は、ビルド時に指定したものになります。)
属性に System.String
以外のパラメーター型がある場合、MSBuild WriteCodeFragment
タスクによってサポートされている XML 要素の特定のパターンを利用することでパラメーターを指定できます。 「WriteCodeFragment タスク」ページの「アセンブリ レベルの属性を生成する」セクションを参照してください。
.NET Framework プロジェクトを .NET 6 以降に移行すると、アセンブリ情報ファイルの重複に関連するエラーが発生する可能性があります。 これは、.NET Framework プロジェクト テンプレートでは、アセンブリ情報属性の設定されたコード ファイルが作成されるためです。 通常、このファイルは .\Properties\AssemblyInfo.cs または .\Properties\AssemblyInfo.vb にあります。 ただし、SDK スタイルのプロジェクトでも、プロジェクトの設定に基づいてこのファイルが "生成" されます。
コードを .NET 6 以降に移植する場合は、次のいずれかの操作を行います:
GenerateAssemblyInfo
を false
に設定することにより、アセンブリ情報属性を含む一時コード ファイルの生成を無効にします。 これにより、AssemblyInfo ファイルを保持することができます。.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。
トレーニング
モジュール
新しい .NET プロジェクトを作成し、パッケージの依存関係を処理する - Training
.NET プロジェクトを作成し、パッケージを追加して、プロジェクト内のパッケージ依存関係を管理する方法を学習します。 .NET Core CLI と NuGet レジストリを使用して、Visual Studio Code でライブラリとツールを C# アプリケーションに追加します。
ドキュメント
アセンブリ ID 属性、情報属性、アセンブリ マニフェスト属性、厳密な名前の属性など、.NET アセンブリのアセンブリ属性を設定できます。
AssemblyVersion と AssemblyFileVersion を使用する - .NET Framework
この記事では、AssemblyInfo.cs ファイルで AssemblyVersion 属性と AssemblyFileVersion 属性を使用する方法について説明します。
.NET アセンブリのバージョン管理について説明します。 CLR を使用するアセンブリのバージョン管理は、すべてアセンブリ レベルで行われます。