MSBuild では、項目はファイル名などの 1 つ以上の文字列への名前付き参照です。 アイテムには、ファイル名、パス、バージョン番号などのメタデータが含まれています。 Visual Studio のすべてのプロジェクトの種類には、共通するいくつかの項目があります。 これらの項目は、Microsoft.Build.CommonTypes.xsd ファイルで定義されています。
この記事では、MSBuild 自体で定義されているすべての一般的なプロジェクト項目の一覧を示します。 .NET SDK によって提供される項目とプロパティについては、 Microsoft.Net.Sdk の MSBuild リファレンスを参照してください。
Reference
プロジェクト内の .NET アセンブリ (マネージド) 参照を表します。
項目メタデータ名 | 形容 |
---|---|
HintPath | 省略可能な文字列。 アセンブリの相対パスまたは絶対パス。 |
名前 | 省略可能な文字列。 アセンブリの表示名 ("System.Windows.Forms" など)。 |
FusionName | 省略可能な文字列。 項目の単純または厳密な融合名を指定します。 この属性が存在する場合、融合名を取得するためにアセンブリ ファイルを開く必要がないため、時間を節約できます。 |
SpecificVersion | 省略可能なブール値。 Fusion 名内のバージョンのみを参照するかどうかを指定します。 |
エイリアス | 省略可能な文字列。 参照のエイリアス。 |
プライベート | 省略可能なブール値。 参照を出力フォルダーにコピーするかどうかを指定します。 この属性は、Visual Studio IDE 内の参照の Copy Local プロパティと一致します。 |
手記
Reference
項目の種類を使用して、ネイティブ COM オブジェクトの事前生成されたラッパー アセンブリを参照することもできます。たとえば、tlbimp.exe
を使用して PIA (プライマリ相互運用機能アセンブリ) を生成した場合などです。 この種類の参照は、MSBuild のアルゴリズムを使用してビルド時に COM ラッパーを生成するのではなく、既知の入力を使用して COM ラッパー アセンブリを自分で事前に生成する場合に適しています。これにより、MSBuild が実行されているビルド マシン上のシステム レジストリの状態への依存関係が生じます。
COMReference
プロジェクト内の COM (アンマネージ) コンポーネント参照を表します。 この項目は、ラッパー アセンブリを生成する ResolveComReference タスクによって使用されます。または、 EmbedInteropTypes
が使用されている場合は、相互運用機能の型をアセンブリに埋め込みます。 この種類の参照を使用すると、参照先 COM オブジェクトを検索するために使用される、ビルド マシン上のシステム レジストリへの依存関係が導入されます。 レジストリ内の COM 成果物と COM エントリは、製品がマシンにインストール、更新、またはアンインストールされた場合 (または同じビルドを別のコンピューターで実行する場合) に変更される可能性があり、ビルド ロジックが変更されていない場合でも、別のラッパー アセンブリが生成される可能性があります。
この項目は、non-.NET プロジェクトには適用されません。
項目メタデータ名 | 形容 |
---|---|
名前 | 省略可能な文字列。 コンポーネントの表示名。 |
Guid | 必須の文字列。 {12345678-1234-1234-1234-123456781234}形式のコンポーネントの GUID。 |
メジャーバージョン | 必須の文字列。 コンポーネントのバージョン番号の主要部分。 たとえば、完全なバージョン番号が "5.46" の場合は "5" です。 |
VersionMinor | 必須の文字列。 コンポーネントのバージョン番号のマイナー部分。 たとえば、完全なバージョン番号が "5.46" の場合は "46" です。 |
EmbedInteropTypes | 省略可能なブール値。 true の場合は、相互運用 DLL を生成するのではなく、この参照の相互運用機能の型をアセンブリに直接埋め込みます。 |
Lcid | 省略可能な文字列。 コンポーネントの LocaleID。 |
WrapperTool | 省略可能な文字列。 コンポーネントで使用されるラッパー ツールの名前。 値は次のとおりです。 1. プライマリ 2. tlbimp 3. primaryortlbimp 4. aximp |
分離 | 省略可能なブール値。 コンポーネントが reg-free コンポーネントかどうかを指定します。 |
COMFileReference
システム レジストリを使用する代わりに、ファイル パスで参照するタイプ ライブラリの一覧を表します。 ビルドを実行するアカウントにビルド サーバー上のレジストリを編集するための昇格された特権がない、またはビルドがレジストリの状態に依存しないようにするため、ビルド マシンのレジストリへの依存関係を回避する場合、この種類の参照は COMReference の代わりに適しています。
COMFileReference
を使用してシステム パス上の成果物を参照する場合、ビルドはシステムの状態に依存します。 製品がインストール、更新、アンインストールされたとき (または別のコンピューターで同じビルドを実行する場合) など、システムの状態の変化によってシステム成果物が変更された場合、ビルド ロジックが変更されていない場合でも、ラッパー アセンブリが変更される可能性があります。 一貫性のあるビルド結果を確保するために、プロジェクトやソリューション フォルダーの下など、制御する場所に COM 成果物の既知のコピーをキャッシュし、システム成果物の代わりに参照することができます。
この項目は、non-.NET プロジェクトには適用されません。
項目メタデータ名 | 形容 |
---|---|
EmbedInteropTypes | 省略可能なブール値。 true の場合は、相互運用 DLL を生成するのではなく、この参照の相互運用機能の型をアセンブリに直接埋め込みます。 |
WrapperTool | 省略可能な文字列。 コンポーネントで使用されるラッパー ツールの名前。 値は次のとおりです。 1. プライマリ 2. tlbimp 3. primaryortlbimp 4. aximp |
NativeReference
ネイティブ マニフェスト ファイルまたはそのようなファイルへの参照を表します。
項目メタデータ名 | 形容 |
---|---|
名前 | 必須の文字列。 マニフェスト ファイルのベース名。 |
HintPath | 必須の文字列。 マニフェスト ファイルの相対パス。 |
ProjectReference
別のプロジェクトへの参照を表します。
ProjectReference
項目は ターゲットによって ResolveProjectReferences
項目に変換されるため、変換プロセスで上書きされない場合は、参照の有効なメタデータが ProjectReference
で有効になる可能性があります。
項目メタデータ名 | 形容 |
---|---|
名前 | 省略可能な文字列。 参照の表示名。 |
GlobalPropertiesToRemove | 省略可能な string[] 。 参照先プロジェクトのビルド時に削除するプロパティの名前 (RuntimeIdentifier;PackOnBuild など)。 既定値は空です。 |
プロジェクト | 省略可能な文字列。 {12345678-1234-1234-1234-123456781234}形式の参照の GUID。 |
OutputItemType | 省略可能な文字列。 ターゲット出力を出力する項目の種類。 既定値は空白です。 参照メタデータが "true" (既定値) に設定されている場合、ターゲット出力はコンパイラの参照になります。 |
ReferenceOutputAssembly | 省略可能なブール値。
false に設定した場合、参照先プロジェクトの出力はこのプロジェクトの参照として含まれませんが、他のプロジェクトがこのプロジェクトの前にビルドされることを保証します。 既定値は true です。 |
プライベート | 省略可能なブール値。 参照を出力フォルダーにコピーするかどうかを指定します。 この属性は、Visual Studio IDE 内の参照の Copy Local プロパティと一致します。 |
SetConfiguration | 省略可能な文字列。 参照先プロジェクトのグローバル プロパティ Configuration を設定します (例: Configuration=Release )。 |
SetPlatform | 省略可能な文字列。 参照先プロジェクトのグローバル プロパティ Platform を設定します (例: Platform=AnyCPU )。 |
SetTargetFramework | 省略可能な文字列。 参照先プロジェクトのグローバル プロパティ TargetFramework を設定します (例: TargetFramework=netstandard2.0 )。 |
SkipGetTargetFrameworkProperties | 省略可能なブール値。
true 場合は、最も互換性のある TargetFramework 値をネゴシエートせずに、参照先のプロジェクトをビルドします。 既定値は false です。 |
ターゲット | 省略可能な string[] 。 ビルドする必要がある参照先プロジェクト内のターゲットのセミコロン区切りリスト。 既定値は $(ProjectReferenceBuildTargets) の値で、既定値は空で、既定のターゲットを示します。 (MSBuild.exe や dotnet build ではなく) Visual Studio でビルドする場合、これを指定しても、Visual Studio が参照先プロジェクトの既定のターゲットをビルドできなくなります。 |
手記
.NET Framework と .NET Core (.NET 5 以降を含む) では、プロジェクト参照の動作方法に違いがあります。 .NET Framework プロジェクトでは、プロジェクト参照は推移的ではありません。 つまり、Project1 が Project2 を参照し、Project2 が Project3 を参照している場合、Project1 から Project3 に対してコードを作成することはできません。 ただし、.NET Core (.NET 5 以降を含む) では、プロジェクト参照 推移的です。 Project1 で Project3 に対してコーディングできます。
コンパイル
コンパイラのソース ファイルを表します。
項目メタデータ名 | 形容 |
---|---|
DependentUpon | 省略可能な文字列。 このファイルが正しくコンパイルするために依存するファイルを指定します。 |
AutoGen | 省略可能なブール値。 Visual Studio 統合開発環境 (IDE) によってプロジェクトに対してファイルが生成されたかどうかを示します。 |
リンク | 省略可能な文字列。 ファイルがプロジェクト ファイルの影響を受けずに物理的に配置されている場合に表示される表記パス。 |
目に見える | 省略可能なブール値。 Visual Studio の ソリューション エクスプローラー でファイルを表示するかどうかを示します。 |
CopyToOutputDirectory | 省略可能な文字列。 ファイルを出力ディレクトリにコピーするかどうかを決定します。 値は次のとおりです。 1. 決して 2. 常に 3. PreserveNewest 4. IfDifferent |
EmbeddedResource
生成されたアセンブリに埋め込むリソースを表します。
項目メタデータ名 | 形容 |
---|---|
文化 | 省略可能な文字列。 リソース ファイルのカルチャを指定します。 指定した場合、ビルド プロセスは、ファイル拡張子に基づいてカルチャを自動推論しません (これは、ビルドをホストしているコンピューター上の .NET/OS で使用できるカルチャに依存します)。
Culture={culture identifier} または WithCulture=false メタデータを設定することを強くお勧めします。 |
WithCulture | 省略可能なブール値。 ファイルがカルチャに依存せず、タスクによるカルチャ検出 AssignCulture スキップする必要があることを指定します。
Culture={culture identifier} または WithCulture=false メタデータを設定することを強くお勧めします。 |
DependentUpon | 省略可能な文字列。 このファイルが正しくコンパイルするために依存するファイルを指定します |
ジェネレータ | 省略可能な文字列。 この項目で実行される任意のファイル ジェネレーターの名前。 |
LastGenOutput | 省略可能な文字列。 この項目で実行されたファイル ジェネレーターによって作成されたファイルの名前。 |
CustomToolNamespace | 省略可能な文字列。 この項目で実行されるファイル ジェネレーターがコードを作成する名前空間。 |
リンク | 省略可能な文字列。 ファイルがプロジェクトの影響を受けずに物理的に配置されている場合は、表記パスが表示されます。 |
目に見える | 省略可能なブール値。 Visual Studio の ソリューション エクスプローラー でファイルを表示するかどうかを示します。 |
CopyToOutputDirectory | 省略可能な文字列。 ファイルを出力ディレクトリにコピーするかどうかを決定します。 値は次のとおりです。 1. 決して 2. 常に 3. PreserveNewest 4. IfDifferent |
LogicalName | 必須の文字列。 埋め込みリソースの論理名。 |
コンテンツ
プロジェクトにコンパイルされていないが、埋め込まれたり、一緒に発行されたりするファイルを表します。
何一つ
ビルド プロセスにロールを持たないファイルを表します。
項目メタデータ名 | 形容 |
---|---|
DependentUpon | 省略可能な文字列。 このファイルが正しくコンパイルするために依存するファイルを指定します。 |
ジェネレータ | 省略可能な文字列。 この項目で実行される任意のファイル ジェネレーターの名前。 |
LastGenOutput | 省略可能な文字列。 この項目で実行されたファイル ジェネレーターによって作成されたファイルの名前。 |
CustomToolNamespace | 省略可能な文字列。 この項目で実行されるファイル ジェネレーターがコードを作成する名前空間。 |
リンク | 省略可能な文字列。 ファイルがプロジェクトの影響を受けずに物理的に配置されている場合に表示される表記パス。 |
目に見える | 省略可能なブール値。 Visual Studio の ソリューション エクスプローラー でファイルを表示するかどうかを示します。 |
CopyToOutputDirectory | 省略可能な文字列。 ファイルを出力ディレクトリにコピーするかどうかを決定します。 値は次のとおりです。 1. 決して 2. 常に 3. PreserveNewest 4. IfDifferent |
AssemblyMetadata
[AssemblyMetadata(key, value)]
として生成されるアセンブリ属性を表します。
項目メタデータ名 | 形容 |
---|---|
含める |
AssemblyMetadataAttribute 属性コンストラクターの最初のパラメーター (キー) になります。 |
価値 | 必須の文字列。
AssemblyMetadataAttribute 属性コンストラクターの 2 番目のパラメーター (値) になります。 |
手記
この項目は、SDK for .NET 5 (および .NET Core) 以降のバージョンを使用するプロジェクトに適用されます。
InternalsVisibleTo
アセンブリ属性として出力されるアセンブリ [InternalsVisibleTo(..)]
指定します。
項目メタデータ名 | 形容 |
---|---|
含める | アセンブリ名。 |
鍵 | 省略可能な文字列。 アセンブリの公開キー。 |
手記
この項目は、SDK for .NET 5 (および .NET Core) 以降のバージョンを使用するプロジェクトに適用されます。
BaseApplicationManifest
ビルドの基本アプリケーション マニフェストを表し、ClickOnce 配置のセキュリティ情報を格納します。
CodeAnalysisImport
インポートする FxCop プロジェクトを表します。
輸入
Visual Basic コンパイラによって名前空間をインポートする必要があるアセンブリを表します。
フォルダ
この要素は、空のフォルダーのプレースホルダーとして Visual Studio によってのみ使用されます。 フォルダーが設定されると、別の要素に置き換えられます。