MSBuild プロジェクトの共通項目

MSBuild では、項目は 1 つ以上のファイルに対応する名前付きの参照です。 項目には、ファイル名、パス、バージョン番号などのメタデータが含まれます。 Visual Studio のすべてのプロジェクト タイプには、共通の項目がいくつかあります。 これらの項目は、Microsoft.Build.CommonTypes.xsd ファイルで定義されています。

この記事では、共通のプロジェクト項目をすべて一覧表示します。

関連項目

プロジェクト内のアセンブリ (マネージド) 参照を表します。

項目メタデータの名前 説明
HintPath 省略可能な文字列。 アセンブリの相対パスまたは絶対パスを指定します。
名前 省略可能な文字列。 アセンブリの表示名を指定します (たとえば、"System.Windows.Forms")。
FusionName 省略可能な文字列。 項目の簡易または厳密な fusion 名を指定します。

この属性が存在する場合、融合名を取得するためにアセンブリ ファイルを開く必要がないため、時間を節約できます。
SpecificVersion 省略可能なブール値。 fusion 名の特定のバージョンを参照する必要があるかどうかを指定します。
Aliases 省略可能な文字列。 参照の任意のエイリアスです。
Private 省略可能なブール値。 参照を出力フォルダーにコピーする必要があるかどうかを指定します。 この属性は、Visual Studio IDE に存在する参照の [ローカルにコピー] プロパティに一致します。

COMReference

プロジェクト内の COM (アンマネージ) コンポーネント参照を表します。 この項目は .NET プロジェクトにのみ適用されます。

項目メタデータの名前 説明
名前 省略可能な文字列。 コンポーネントの表示名を指定します。
GUID 必須の文字列。 コンポーネントの GUID を {12345678-1234-1234-1234-123456781234} の形式で指定します。
VersionMajor 必須の文字列。 コンポーネントのメジャー バージョン番号を指定します。 たとえば、完全なバージョン番号が "5.46" である場合、"5" を指定します。
VersionMinor 必須の文字列。 コンポーネントのマイナー バージョン番号を指定します。 たとえば、完全なバージョン番号が "5.46" である場合、"46" を指定します。
EmbedInteropTypes 省略可能なブール値。 true の場合は、相互運用 DLL を生成するのではなく、この参照から直接アセンブリに相互運用機能型を埋め込みます。
Lcid 省略可能な文字列。 コンポーネントの LocaleID です。
WrapperTool 省略可能な文字列。 コンポーネントで使用されるラッパー ツールの名前を指定します。 値は次のとおりです。

1. primary
2. tlbimp
3. primaryortlbimp
4. aximp
Isolated 省略可能なブール値。 コンポーネントが Reg-Free コンポーネントであるかどうかを指定します。

COMFileReference

ResolveComReference ターゲットの TypeLibFiles パラメーターに渡されるタイプ ライブラリの一覧を表します。 この項目は .NET プロジェクトにのみ適用されます。

項目メタデータの名前 説明
WrapperTool 省略可能な文字列。 コンポーネントで使用されるラッパー ツールの名前を指定します。 値は次のとおりです。

1. primary
2. tlbimp
3. primaryortlbimp
4. aximp

NativeReference

ネイティブ マニフェスト ファイル、またはこのようなファイルへの参照を表します。

項目メタデータの名前 説明
名前 必須の文字列。 マニフェスト ファイルの基本名を指定します。
HintPath 必須の文字列。 マニフェスト ファイルの相対パスを指定します。

ProjectReference

別のプロジェクトへの参照を表します。 ProjectReference 項目は ResolveProjectReferences ターゲットによって参照項目に変換されるため、参照の有効なメタデータは、変換処理で上書きされない場合、ProjectReferenceで有効になることがあります。

項目メタデータの名前 説明
名前 省略可能な文字列。 参照の表示名を指定します。
GlobalPropertiesToRemove string[] で、省略可能です。 参照プロジェクトのビルド時に削除するプロパティの名前。たとえば、RuntimeIdentifier;PackOnBuild。 既定値は空です。
Project 省略可能な文字列。 参照の GUID を {12345678-1234-1234-1234-123456781234} の形式で指定します。
OutputItemType 省略可能な文字列。 ターゲット出力の出力先となる項目の種類。 既定値は空白です。 参照メタデータが "true" (既定値) に設定されている場合、ターゲット出力はコンパイラの参照になります。
ReferenceOutputAssembly 省略可能なブール値。 にfalse設定すると、このプロジェクトの参照として参照されるプロジェクトの出力は含まれませんが、他のプロジェクトがこのプロジェクトの前にビルドされることが保証されます。 既定値は true です。
Private 省略可能なブール値。 参照を出力フォルダーにコピーする必要があるかどうかを指定します。 この属性は、Visual Studio IDE に存在する参照の [ローカルにコピー] プロパティに一致します。
SetConfiguration 省略可能な文字列。 参照プロジェクトのグローバル プロパティ Configuration を設定します。たとえば、Configuration=Release です。
SetPlatform 省略可能な文字列。 参照プロジェクトのグローバル プロパティ Platform を設定します。たとえば、Platform=AnyCPU です。
SetTargetFramework 省略可能な文字列。 参照プロジェクトのグローバル プロパティ TargetFramework を設定します。たとえば、TargetFramework=netstandard2.0 です。
SkipGetTargetFrameworkProperties 省略可能なブール値。 true の場合、最も互換性のある TargetFramework 値をネゴシエートせずに参照プロジェクトをビルドします。 既定値は false です。
対象サーバー string[] で、省略可能です。 ビルドする参照プロジェクトのターゲットをセミコロンで区切って一覧にしたもの。 既定値は、既定の $(ProjectReferenceBuildTargets)ターゲットを示す空の値です。

Note

.NET Framework と .NET Core (.NET 5 以降を含む) とでは、プロジェクト参照の機能に違いがあります。 .NET Framework プロジェクトでは、プロジェクト参照は推移的ではありません。 つまり、Project1 が Project2 を参照し、Project2 が Project3 を参照している場合、Project1 から Project3 に対するコーディングを行うことはできません。 ただし、.NET Core (.NET 5 以降を含む) では、プロジェクト参照は推移的 "です"。 Project1 で、Project3 に対するコーディングを行うことができます。

Compile

コンパイラのソース ファイルを表します。

項目メタデータの名前 説明
DependentUpon 省略可能な文字列。 正しくコンパイルする必要があるファイルを指定します。
AutoGen 省略可能なブール値。 Visual Studio 統合開発環境 (IDE) によってプロジェクト用にファイルが生成されたかどうかを示します。
Link 省略可能な文字列。 プロジェクト ファイルの影響が及ばない物理的な場所にファイルが配置されるときに表示される表記パスです。
Visible 省略可能なブール値。 Visual Studio のソリューション エクスプローラーにファイルを表示するかどうかを示します。
CopyToOutputDirectory 省略可能な文字列。 出力ディレクトリにファイルをコピーするかどうかを判断します。 値は次のとおりです。

1. Never
2. Always
3. PreserveNewest

EmbeddedResource

生成されるアセンブリに埋め込まれるリソースを表します。

項目メタデータの名前 説明
DependentUpon 省略可能な文字列。 正しくコンパイルするために、このファイルが依存するファイルを指定します
Generator 省略可能な文字列。 この項目に対して実行される任意のファイル ジェネレーターの名前です。
LastGenOutput 省略可能な文字列。 この項目に対して実行された任意のファイル ジェネレーターによって作成されたファイルの名前です。
CustomToolNamespace 省略可能な文字列。 名前空間を指定します。指定した名前空間で、この項目に対して実行する任意のファイル ジェネレーターによってコードが作成されます。
Link 省略可能な文字列。 プロジェクトの影響が及ばない物理的な場所にファイルが配置されるときに表示される表記パスです。
Visible 省略可能なブール値。 Visual Studio のソリューション エクスプローラーにファイルを表示するかどうかを示します。
CopyToOutputDirectory 省略可能な文字列。 出力ディレクトリにファイルをコピーするかどうかを判断します。 値は次のとおりです。

1. Never
2. Always
3. PreserveNewest
LogicalName 必須の文字列。 埋め込まれるリソースの論理名です。

Content

プロジェクトにコンパイルされていないが、埋め込まれたり、一緒に発行されたりするファイルを表します。

項目メタデータの名前 説明
DependentUpon 省略可能な文字列。 正しくコンパイルする必要があるファイルを指定します。
Generator 省略可能な文字列。 この項目に対して実行する任意のファイル ジェネレーターの名前です。
LastGenOutput 省略可能な文字列。 この項目に対して実行された任意のファイル ジェネレーターによって作成されたファイルの名前です。
CustomToolNamespace 省略可能な文字列。 名前空間を指定します。指定した名前空間で、この項目に対して実行する任意のファイル ジェネレーターによってコードが作成されます。
Link 省略可能な文字列。 プロジェクトの影響が及ばない物理的な場所にファイルが配置されるときに表示される表記パスです。
PublishState 必須の文字列。 コンテンツの発行状態を示すもので、以下のいずれかの値を取ります。

- Default
- Included
- xcluded
- DataFile
- Prerequisite
IsAssembly 省略可能なブール値。 ファイルがアセンブリであるかどうかを指定します。
Visible 省略可能なブール値。 Visual Studio のソリューション エクスプローラーにファイルを表示するかどうかを示します。
CopyToOutputDirectory 省略可能な文字列。 出力ディレクトリにファイルをコピーするかどうかを判断します。 値は次のとおりです。

1. Never
2. Always
3. PreserveNewest
TargetPath 省略可能な文字列。 ファイル名を含む、項目の出力パス (構成固有やプラットフォーム固有の出力ディレクトリへの相対パス)。 指定された場合は、Link メタデータが考慮されます。 TargetPath が指定されていない場合は、ビルド プロセス中に計算されます。 「AssignTargetPath」を参照してください。

None

ビルド プロセスでは使用しないことが推奨されるファイルを表します。

項目メタデータの名前 説明
DependentUpon 省略可能な文字列。 正しくコンパイルする必要があるファイルを指定します。
Generator 省略可能な文字列。 この項目に対して実行される任意のファイル ジェネレーターの名前です。
LastGenOutput 省略可能な文字列。 この項目に対して実行された任意のファイル ジェネレーターによって作成されたファイルの名前です。
CustomToolNamespace 省略可能な文字列。 名前空間を指定します。指定した名前空間で、この項目に対して実行する任意のファイル ジェネレーターによってコードが作成されます。
Link 省略可能な文字列。 プロジェクトの影響が及ばない物理的な場所にファイルが配置されるときに表示される表記パスです。
Visible 省略可能なブール値。 Visual Studio のソリューション エクスプローラーにファイルを表示するかどうかを示します。
CopyToOutputDirectory 省略可能な文字列。 出力ディレクトリにファイルをコピーするかどうかを判断します。 値は次のとおりです。

1. Never
2. Always
3. PreserveNewest

AssemblyMetadata

[AssemblyMetadata(key, value)] として生成されるアセンブリ属性を表します。

項目メタデータの名前 説明
包含 AssemblyMetadataAttribute 属性コンストラクターの最初のパラメーター (キー) になります。
[値] 必須の文字列。 AssemblyMetadataAttribute 属性コンストラクターの 2 番目のパラメーター (値) になります。

Note

この項目は、SDK for .NET 5 (および .NET Core) 以降のバージョンを使用するプロジェクトに適用されます。

InternalsVisibleTo

[InternalsVisibleTo(..)] アセンブリ属性として出力されるアセンブリを指定します。

項目メタデータの名前 説明
包含 アセンブリ名。
キー 省略可能な文字列。 アセンブリの公開キー。

Note

この項目は、SDK for .NET 5 (および .NET Core) 以降のバージョンを使用するプロジェクトに適用されます。

BaseApplicationManifest

ビルドの基本アプリケーション マニフェストを表し、ClickOnce 配置セキュリティ情報を含みます。

CodeAnalysisImport

インポートする FxCop プロジェクトを表します。

インポート

Visual Basic コンパイラによってその名前空間がインポートされるアセンブリを表します。

フォルダー

この要素は、空のフォルダーのプレースホルダーとして Visual Studio によってのみ使用されます。 フォルダーが設定されると、別の要素に置き換えられます。

関連項目