次の方法で共有


一般的な MSBuild プロジェクト項目

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.exedotnet 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 省略可能な文字列。 この項目で実行されるファイル ジェネレーターがコードを作成する名前空間。
リンク 省略可能な文字列。 ファイルがプロジェクトの影響を受けずに物理的に配置されている場合に表示される表記パス。
PublishState 必須の文字列。 コンテンツの発行状態。次のいずれかです。

-デフォルト
-含ま
-除外
-データファイル
-前提
IsAssembly 省略可能なブール値。 ファイルがアセンブリであるかどうかを指定します。
目に見える 省略可能なブール値。 Visual Studio の ソリューション エクスプローラー でファイルを表示するかどうかを示します。
CopyToOutputDirectory 省略可能な文字列。 ファイルを出力ディレクトリにコピーするかどうかを決定します。 値は次のとおりです。

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

何一つ

ビルド プロセスにロールを持たないファイルを表します。

項目メタデータ名 形容
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 によってのみ使用されます。 フォルダーが設定されると、別の要素に置き換えられます。

関連項目