MSBuild プロジェクトの一般的なプロパティ
次の表に、Visual Studio プロジェクト ファイルで定義されている、または MSBuild で提供される .targets ファイル 含まれる、よく使用されるプロパティの一覧を示します。
Visual Studio のプロジェクト ファイル (.csproj、.vbproj、.vcxprojなど) には、IDE を使用してプロジェクトをビルドするときに実行される MSBuild XML コードが含まれています。 プロジェクトは通常、1 つ以上の .targets ファイルをインポートしてビルド プロセスを定義します。 詳細については、「MSBuild .targets ファイルを参照してください。
プロパティ値を設定するときは、一般的なプロパティが、インポートされたファイルの数で設定、リセット、または使用される可能性があることに注意してください。 したがって、プロジェクト ファイル、Directory.Build.props、または別のインポートされたファイルでプロパティを設定する場所が重要です。 プロパティを設定していて、予期した結果が得られない場合は、Sdk
属性を使用しているときに暗黙的に追加されるインポートを含め、プロジェクトによってインポートされたすべてのファイルでプロパティが変更または使用される場所と方法を検討してください。 「.props ファイルまたは .targets ファイルにプロパティを追加する方法を選択する」を参照してください。 前処理はこれに役立ちます (MSBuild コマンド ライン リファレンス の /preprocess
または /pp
コマンド ライン オプション参照)。
一般的なプロパティとパラメーターの一覧
プロパティまたはパラメーター名 | プロジェクトの種類 | 形容 |
---|---|---|
BaseAddress | 。網 | メイン出力アセンブリのベース アドレスを指定します。 このプロパティは、/baseaddress コンパイラ スイッチと同じです。 |
BaseIntermediateOutputPath | すべての | すべての構成固有の中間出力フォルダーが作成される最上位フォルダー。 既定値は obj\ です。 次のコードは例です。<BaseIntermediateOutputPath>c:\xyz\obj\</BaseIntermediateOutputPath> |
BaseOutputPath | すべての | 出力ファイルのベース パスを指定します。 設定されている場合、MSBuild は OutputPath = $(BaseOutputPath)\$(Configuration)\ を使用します。 構文の例: <BaseOutputPath>c:\xyz\bin\</BaseOutputPath> |
BuildInParallel | すべての | Multi-Proc MSBuild を使用する場合に、プロジェクト参照を並列でビルドまたはクリーンアップするかどうかを示すブール値。 既定値は true です。つまり、システムに複数のコアまたはプロセッサがある場合、プロジェクトは並列にビルドされます。 |
BuildProjectReferences | すべての | プロジェクト参照が MSBuild によってビルドされるかどうかを示すブール値。 Visual Studio 統合開発環境 (IDE) でプロジェクトをビルドする場合は false に自動的に設定され、それ以外の場合は true 。
-p:BuildProjectReferences=false は、参照先のプロジェクトが最新の状態であることを確認しないように、コマンド ラインで指定できます。 |
プロパティまたはパラメーター名 | プロジェクトの種類 | 形容 |
---|---|---|
CleanFile | すべての | "クリーン キャッシュ" として使用されるファイルの名前。クリーン キャッシュは、クリーニング操作中に削除される生成されたファイルの一覧です。 ファイルは、ビルド プロセスによって中間出力パスに配置されます。 このプロパティは、パス情報を持たないファイル名のみを指定します。 |
CodePage | 。網 | コンパイル内のすべてのソース コード ファイルに使用するコード ページを指定します。 このプロパティは、/codepage コンパイラ スイッチと同じです。 |
CompilerResponseFile | 。網 | コンパイラ タスクに渡すことができるオプションの応答ファイル。 |
構成 | すべての | 構築する構成 (通常は Debug または Release ですが、ソリューションとプロジェクト のレベルで構成できます。 |
CscToolPath | C# | csc.exeのパス(C# コンパイラ)。 |
CustomAfterMicrosoftCommonTargets | すべての | 共通ターゲットのインポート後に自動的にインポートされるプロジェクト ファイルまたはターゲット ファイルの名前。 |
CustomBeforeMicrosoftCommonTargets | すべての | 共通ターゲットのインポート前に自動的にインポートされるプロジェクト ファイルまたはターゲット ファイルの名前。 |
プロパティまたはパラメーター名 | プロジェクトの種類 | 形容 |
---|---|---|
ErrorReport | 。網 | コンパイラ タスクが内部コンパイラ エラーを報告する方法を指定します。 有効な値は、"prompt"、"send"、または "none" です。このプロパティは、/errorreport コンパイラ スイッチと同じです。 |
ExcludeDeploymentUrl | 。網 |
GenerateDeploymentManifest タスク は、プロジェクト ファイルに次のいずれかの要素が含まれている場合、配置マニフェストに deploymentProvider タグを追加します。 - UpdateUrl - InstallUrl - PublishUrl ただし、ExcludeDeploymentUrl を使用すると、上記の URL のいずれかが指定されている場合でも、deploymentProvider タグが配置マニフェストに追加されないようにすることができます。 これを行うには、プロジェクト ファイルに次のプロパティを追加します。 <ExcludeDeploymentUrl>true</ExcludeDeploymentUrl> 注: ExcludeDeploymentUrl は Visual Studio IDE では公開されず、プロジェクト ファイルを手動で編集することによってのみ設定できます。 このプロパティを設定しても、Visual Studio 内の発行には影響しません。つまり、deploymentProvider タグは PublishUrl で指定された URL に引き続き追加されます。 |
FileAlignment | 。網 | 出力ファイルのセクションを配置する位置をバイト単位で指定します。 有効な値は、512、1024、2048、4096、8192 です。 このプロパティは、/filealignment コンパイラ スイッチと同じです。 |
FrameworkPathOverride | Visual Basic |
mscorlib.dll と microsoft.visualbasic.dllの場所を指定します。 このパラメーターは、vbc.exe コンパイラの /sdkpath スイッチと同じです。 |
GenerateDocumentationFile | 。網 | ビルドによってドキュメントが生成されるかどうかを示すブール型パラメーター。
true すると、ビルドによってドキュメント情報が生成され、ビルド タスクによって作成された実行可能ファイルまたはライブラリの名前と共に .xml ファイルに格納されます。 |
GenerateFullPaths | C# | -fullpaths コンパイラ オプションを使用して、出力内のファイル名の完全なパスを生成します。 |
GenerateSerializationAssemblies | 。網 | SGen.exeで XML シリアル化アセンブリを生成する必要があるかどうかを示します。このアセンブリはオン、自動、またはオフに設定できます。 このプロパティは、.NET Framework のみを対象とするアセンブリに使用されます。 .NET Standard アセンブリまたは .NET Core アセンブリの XML シリアル化アセンブリを生成するには、Microsoft.XmlSerializer.Generator NuGet パッケージを参照してください。 |
プロパティまたはパラメーター名 | プロジェクトの種類 | 形容 |
---|---|---|
NoLogo | すべての | コンパイラ ロゴをオフにするかどうかを示すブール値。 このプロパティは、/nologo コンパイラ スイッチと同じです。 |
NoStdLib | 。網 | 標準ライブラリ (mscorlib.dll) の参照を回避するかどうかを示すブール値。 既定値は false です。 |
NoVBRuntimeReference | Visual Basic | Visual Basic ランタイム (Microsoft.VisualBasic.dll) をプロジェクトの参照として含めるかどうかを示すブール値。 |
NoWarn | 。網 | 指定した警告を抑制します。 警告識別子の数値部分のみを指定する必要があります。 複数の警告はセミコロンで区切られます。 このパラメーターは、コンパイラの /nowarn スイッチに対応します。 |
NoWin32Manifest | 。網 | ユーザー アカウント制御 (UAC) マニフェスト情報をアプリケーションの実行可能ファイルに埋め込むかどうかを示すブール値。 Windows Vista を対象とする Visual Studio プロジェクトにのみ適用されます。 ClickOnce と Registration-Free COM を使用して配置されたプロジェクトでは、この要素は無視されます。
False (既定値) は、ユーザー アカウント制御 (UAC) マニフェスト情報をアプリケーションの実行可能ファイルに埋め込むように指定します。
True では、UAC マニフェスト情報が埋め込まれていないことを指定します。このプロパティは、Windows Vista を対象とする Visual Studio プロジェクトにのみ適用されます。 ClickOnce と Registration-Free COM を使用して配置されたプロジェクトでは、このプロパティは無視されます。 NoWin32Manifest は、Visual Studio でアプリケーションの実行可能ファイルにマニフェスト情報を埋め込まない場合にのみ追加する必要があります。このプロセスは仮想化 呼ばれます。 仮想化を使用するには、次のように <ApplicationManifest> を <NoWin32Manifest> と組み合わせて設定します。- Visual Basic プロジェクトの場合は、 <ApplicationManifest> ノードを削除します。 (Visual Basic プロジェクトでは、<ApplicationManifest> ノードが存在する場合、<NoWin32Manifest> は無視されます)。- C# プロジェクトの場合、 <ApplicationManifest> を False に設定し、<NoWin32Manifest> を True に設定します。 (C# プロジェクトでは、<ApplicationManifest> は <NoWin32Manifest> オーバーライドします。このプロパティは、vbc.exeの /nowin32manifest コンパイラ スイッチと同じです。 |
最適化 | 。網 |
true に設定すると、コンパイラの最適化を有効にするブール値。 このプロパティは、/optimize コンパイラ スイッチと同じです。 |
OptionCompare | VisualBasic | 文字列比較を行う方法を指定します。 有効な値は "binary" または "text" です。このプロパティは、vbc.exeの /optioncompare コンパイラ スイッチと同じです。 |
OptionExplicit | Visual Basic |
true に設定すると、ソース コードで変数を明示的に宣言する必要があるブール値。 このプロパティは、/optionexplicit コンパイラ スイッチと同じです。 |
OptionInfer | Visual Basic |
true に設定すると、変数の型推論を有効にするブール値。 このプロパティは、/optioninfer コンパイラ スイッチと同じです。 |
OptionStrict | Visual Basic |
true に設定すると、ビルド タスクが厳密な型セマンティクスを適用して暗黙的な型変換を制限するブール値。 このプロパティは、vbc.exe コンパイラの /optionstrict スイッチと同じです。 |
OutDir | すべての | プロジェクトまたはソリューションの最終的な出力場所を示します。 ソリューションをビルドするときに、OutDir を使用して複数のプロジェクト出力を 1 つの場所に収集できます。 さらに、OutDir は、参照の解決に使用される AssemblySearchPaths に含まれています。 たとえば、bin\Debug をします。 |
OutputPath | すべての | 出力ディレクトリへのパスを指定します。たとえば、プロジェクト ディレクトリを基準にして、bin\Debug や、anyCPU 以外のビルドで bin\Debug\$(Platform) します。 |
OutputType | すべての | 出力ファイルのファイル形式を指定します。 このパラメーターには、次のいずれかの値を指定できます。 -図書館。 コード ライブラリを作成します。 (既定値)。 - Exe。 コンソール アプリケーションを作成します。 -モジュール。 モジュールを作成します。 - Winexe。 Windows ベースのプログラムを作成します。 C# と Visual Basic の場合、このプロパティは /target スイッチと同じです。 出力の種類は、推論によって自動的にオーバーライドできます。 「OutputType set to WinExe for WPF and WinForms appsを参照してください。
DisableWinExeOutputInference を true に設定して推論を無効にします。 |
OverwriteReadOnlyFiles | すべての | ビルドで読み取り専用ファイルを上書きするか、エラーをトリガーするかを示すブール値。 |
プロパティまたはパラメーター名 | プロジェクトの種類 | 形容 |
---|---|---|
PathMap | 。網 | コンパイラによって出力されるソース パス名に物理パスをマップする方法を指定します。 このプロパティは、コンパイラの /pathmap スイッチと同じです。 |
PdbFile | 。網 | 出力する .pdb ファイルのファイル名。 このプロパティは、csc.exe コンパイラの /pdb スイッチと同じです。 |
プラットホーム | すべての | ビルド対象のオペレーティング システム。 .NET Framework ビルドの例としては、"Any CPU"、"x86"、"x64" があります。 |
ProcessorArchitecture | 。網 | アセンブリ参照が解決されるときに使用されるプロセッサ アーキテクチャ。 有効な値は、"msil"、"x86"、"amd64"、または "ia64" です。 |
ProduceOnlyReferenceAssembly | 。網 | コンパイルされたコードではなく参照アセンブリのみを出力するようにコンパイラに指示するブール値。
ProduceReferenceAssembly と組み合わせて使用することはできません。 このプロパティは、vbc.exe および csc.exe コンパイラの /refonly スイッチに対応します。 |
ProduceReferenceAssembly | 。網 |
true に設定すると、現在のアセンブリに 参照アセンブリの生成を有効にするブール値。 この機能を使用する場合は、Deterministic を true する必要があります。 このプロパティは、vbc.exe および csc.exe コンパイラの /refout スイッチに対応します。 |
RegisterAssemblyMSBuildArchitecture | Windows のみ | マネージド DLL を登録する既定のアーキテクチャを指定します。 このプロパティは、COM が Windows レジストリを使用してアーキテクチャ固有のハイブに登録を格納するため便利です。 たとえば、Windows システムでは、AnyCPU マネージド アセンブリは、その型を 64 ビット ハイブまたは 32 ビット (WoW) ハイブに登録することができ、ビルドはこのプロパティを使用して、使用するアーキテクチャ固有のレジストリ ハイブを決定します。 有効な値には、"x86"、"x64"、"ARM64" があります。 |
RegisterForCOMInterop | Windows のみ | マネージド アプリケーションが COM オブジェクト (COM 呼び出し可能ラッパー) を公開することを示します。 「ビルド ページ - 出力」セクションを参照してください。 この設定は、プロジェクトがビルドされているコンピューターにのみ影響します。 他のマシンにデプロイする場合は、regasm.exe を呼び出して、ターゲット コンピューターにアセンブリを登録します。 |
RemoveIntegerChecks | Visual Basic | 整数オーバーフロー エラー チェックを無効にするかどうかを示すブール値。 既定値は false です。 このプロパティは、vbc.exe コンパイラの /removeintchecks スイッチと同じです。 |
RootNamespace | すべての | 埋め込みリソースに名前を付けるときに使用するルート名前空間。 この名前空間は、埋め込みリソース マニフェスト名の一部です。 |
プロパティまたはパラメーター名 | プロジェクトの種類 | 形容 |
---|---|---|
Satellite_AlgorithmId | 。網 | サテライト アセンブリの作成時に使用する AL.exe ハッシュ アルゴリズムの ID。 |
Satellite_BaseAddress | 。網 |
CreateSatelliteAssemblies ターゲットを使用してカルチャ固有のサテライト アセンブリを構築するときに使用するベース アドレス。 |
Satellite_CompanyName | 。網 | サテライト アセンブリの生成中に AL.exe に渡す会社名。 |
Satellite_Configuration | 。網 | サテライト アセンブリの生成中に AL.exe に渡す構成名。 |
Satellite_Description | 。網 | サテライト アセンブリの生成中に AL.exe に渡す説明テキスト。 |
Satellite_EvidenceFile | 。網 | 指定したファイルを、リソース名が "Security.Evidence" のサテライト アセンブリに埋め込みます。 |
Satellite_FileVersion | 。網 | サテライト アセンブリの [ファイル バージョン] フィールドの文字列を指定します。 |
Satellite_Flags | 。網 | サテライト アセンブリの Flags フィールドの値を指定します。 |
Satellite_GenerateFullPaths | 。網 | エラー メッセージで報告されたすべてのファイルに対して、ビルド タスクが絶対パスを使用するようにします。 |
Satellite_LinkResource | 。網 | 指定したリソース ファイルをサテライト アセンブリにリンクします。 |
Satellite_MainEntryPoint | 。網 | サテライト アセンブリの生成中にモジュールが実行可能ファイルに変換されるときにエントリ ポイントとして使用するメソッドの完全修飾名 (つまり class.method) を指定します。 |
Satellite_ProductName | 。網 | サテライト アセンブリの Product フィールドの文字列を指定します。 |
Satellite_ProductVersion | 。網 | サテライト アセンブリの ProductVersion フィールドの文字列を指定します。 |
Satellite_TargetType | 。網 | サテライト アセンブリ出力ファイルのファイル形式を "library"、"exe"、または "win" として指定します。既定値は "library" です。 |
Satellite_Title | 。網 | サテライト アセンブリの Title フィールドの文字列を指定します。 |
Satellite_Trademark | 。網 | サテライト アセンブリの Trademark フィールドの文字列を指定します。 |
Satellite_Version | 。網 | サテライト アセンブリのバージョン情報を指定します。 |
Satellite_Win32Icon | 。網 | サテライト アセンブリに .ico アイコン ファイルを挿入します。 |
Satellite_Win32Resource | 。網 | Win32 リソース (.resファイル) をサテライト アセンブリに挿入します。 |
SGenToolPath | 。網 | 現在のバージョンの SGen.exe がオーバーライドされたときに SGen.exe を取得する場所を示す省略可能なツール パス。 |
プロパティまたはパラメーター名 | プロジェクトの種類 | 形容 |
---|---|---|
SGenUseProxyTypes | 。網 | プロキシ型を SGen.exeによって生成する必要があるかどうかを示すブール値。 これは、GenerateSerializationAssemblies がオンに設定されている場合にのみ適用されます。 SGen ターゲットでは、このプロパティを使用して UseProxyTypes フラグを設定します。 このプロパティの既定値は true で、これを変更する UI はありません。 Web サービス以外の型のシリアル化アセンブリを生成するには、このプロパティをプロジェクト ファイルに追加し、Microsoft.Common.Targets または C#/VB.targetsをインポートする前に false に設定します。 |
SkipInvalidConfigurations | すべての |
true すると、無効なプラットフォームと構成の組み合わせで警告が生成されますが、ビルドは失敗しません。false または未定義 (既定値) の場合は、エラーが生成されます。 |
StartupObject | 。網 | Main メソッドまたは Sub Main プロシージャを含むクラスまたはモジュールを指定します。 このプロパティは、/main コンパイラ スイッチと同じです。 |
SubsystemVersion | 。網 | 生成された実行可能ファイルで使用できるサブシステムの最小バージョンを指定します。 このプロパティは、/subsystemversion コンパイラ スイッチと同じです。 このプロパティの既定値については、/subsystemversion (Visual Basic) または /subsystemversion (C# コンパイラ オプション) を参照してください。 |
TargetCompactFramework | 。網 | ビルドするアプリケーションを実行するために必要な .NET Compact Framework のバージョン。 これを指定すると、他の方法では参照できない可能性がある特定のフレームワーク アセンブリを参照できます。 |
TargetFrameworkVersion | 。網 | ビルドするアプリケーションを実行するために必要な .NET Framework のバージョン。 これを指定すると、他の方法では参照できない可能性がある特定のフレームワーク アセンブリを参照できます。 |
TreatWarningsAsErrors | 。網 |
true 場合、すべての警告がエラーとして扱われるブール値パラメーター。 このパラメーターは、/nowarn コンパイラ スイッチと同じです。 |
UseCommonOutputDirectory | 。網 | ソリューション内のすべてのビルド出力で同じ出力ディレクトリを使用する場合に true に設定できるブール型プロパティ。
true 場合、参照先のプロジェクトの出力は、通常、この設定が false されている場合と同様に、これらの依存関係を使用するプロジェクトにはコピーされません。 このパラメーターを true に設定しても、プロジェクトの実際の出力ディレクトリは変更されません。それでも、出力ディレクトリを必要とする各プロジェクトの目的の共通出力ディレクトリに設定する必要があります。 |
UseHostCompilerIfAvailable | 。網 |
true 場合、ビルド タスクがインプロセス コンパイラ オブジェクトを使用するブール型パラメーター (使用可能な場合)。 このパラメーターは、Visual Studio でのみ使用されます。 |
Utf8Output | 。網 |
true 場合、UTF-8 エンコードを使用してコンパイラの出力をログに記録するブール型パラメーター。 このパラメーターは、/utf8Output コンパイラ スイッチと同じです。 |
プロパティまたはパラメーター名 | プロジェクトの種類 | 形容 |
---|---|---|
VbcToolPath | Visual Basic | 現在のバージョンの vbc.exe がオーバーライドされたときに、vbc.exe の別の場所を示す省略可能なパス。 |
VbcVerbosity | Visual Basic | Visual Basic コンパイラの出力の詳細度を指定します。 有効な値は、"Quiet"、"Normal" (既定値)、または "Verbose" です。 |
VisualStudioVersion | すべての | このプロジェクトが実行されていると見なされる Visual Studio のバージョンを指定します。 このプロパティが指定されていない場合、MSBuild によって既定値の {VisualStudioMajorVersion}.0 に設定されます。たとえば、Visual Studio 2022 のすべてのバージョンに対して 17.0 されます。このプロパティは、ビルドに使用されるターゲットのセットを指定するために、いくつかのプロジェクトの種類で使用されます。 プロジェクト ToolsVersion 4.0 以上に設定されている場合、VisualStudioVersion を使用して、使用するサブツールセットを指定します。 詳細については、「ツールセットの (ToolsVersion)」を参照してください。 |
WarningsAsErrors | 。網 | エラーとして扱う警告の一覧を指定します。 このパラメーターは、/warnaserror コンパイラ スイッチと同じです。 |
WarningLevel | すべての | コンパイラによって生成される警告に対してコンパイラに渡す警告レベルを指定します。 この設定は、レベルの指定がない MSBuild の警告には影響しません。 C# コンパイラ ドキュメントの 警告レベルの と、C++ コンパイラ ドキュメントの /W (警告レベル) を参照してください。 |
WarningsNotAsErrors | 。網 | エラーとして扱わない警告の一覧を指定します。 このパラメーターは、/warnaserror コンパイラ スイッチと同じです。 |
Win32Manifest | 。網 | 最終的なアセンブリに埋め込むマニフェスト ファイルの名前。 このパラメーターは、/win32Manifest コンパイラ スイッチと同じです。 |
Win32Resource | 。網 | 最終的なアセンブリに埋め込む Win32 リソースのファイル名。 このパラメーターは、/win32resource コンパイラ スイッチと同じです。 |
TargetFramework
など、.NET SDK プロジェクトに固有のプロパティについては、Framework のプロパティに関する記事を参照してください。
関連項目
- 一般的な MSBuild プロジェクト項目 を する
- 一般的な MSBuild 項目メタデータ の
- MSBuild の予約済みプロパティと既知のプロパティ
- .NET SDK プロジェクトの MSBuild リファレンス