.NET プロジェクト デザイナー (C#)

プロジェクト デザイナー使用して、.NET Core および .NET 5 以降のプロジェクトの設定とプロパティを指定します。 .NET Framework プロジェクトと Visual Basic プロジェクトについては、「.NET プロジェクト デザイナーとは」を参照してください

プロジェクト デザイナーにアクセスするには、ソリューション エクスプローラーで (ソリューション ノードではなく) プロジェクト ノードを選択します。 その後、メニュー バーで [プロジェクト]>[プロパティ] を選択します。 プロジェクト デザイナーが表示されます。

Note

この記事で紹介する Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピューターでは名前や場所が異なる場合があります。 Visual Studio のエディションや環境設定がお使いのものと異なる場合があります。 詳細については、「Visual Studio IDE のカスタマイズ」を参照してください。

アプリケーション、全般設定

次のオプションでは、アプリケーションの全般設定を構成できます。

出力の種類

ビルドするアプリケーションの種類を指定します。 値は、プロジェクトの種類によって異なります。 たとえば、コンソール アプリ プロジェクトの場合は、出力の種類として [Windows アプリケーション][コンソール アプリケーション]、または [クラス ライブラリ] を指定できます。

出力の種類プロパティの詳細については、「/target (C# コンパイラ オプション)」をご覧ください。

プログラムを使用してこのプロパティにアクセスする方法については、「OutputType」を参照してください。

ターゲット フレームワーク

アプリケーションが対象とする .NET のバージョンを指定します。 このオプションの値は、コンピューター上にインストールされている .NET のバージョンによって異なる場合があります。

.NET Core または .NET 5 以降を対象とするプロジェクトの場合、使用可能なバージョンは次のようになります。

Visual Studio 2022 の .NET Core プロジェクトのターゲット フレームワーク バージョンのスクリーンショット。

Note

ClickOnce アプリケーションの場合、[前提条件] ダイアログ ボックスに 一覧表示されている前提条件パッケージは、ダイアログ ボックス を初めて開くと自動的に設定されます。 その後、プロジェクトのターゲット フレームワークを変更した場合は、新しいターゲット フレームワークに合わせて必須コンポーネントを手動で選択する必要があります。

詳細については、フレームワークのターゲット設定に関するページを参照してください。

ターゲット OS

プロジェクトの対象となるオペレーティング システムを指定します。 ターゲット フレームワークと組み合わせると、.NET 5+ OS 固有の TF が生成されます

スタートアップ オブジェクト

アプリケーションの読み込み時に呼び出されるようにエントリ ポイントを定義します。 通常、これは、アプリケーションのメイン フォーム、またはアプリケーションの起動時に実行する必要がある Main プロシージャに設定されます。 クラス ライブラリにはエントリ ポイントがないため、このプロパティのオプションのみが [(設定なし)] となります。

WPF アプリ プロジェクトでは、このオプションは既定で [(設定なし)] に設定されます。 その他のオプションは、[プロジェクト名].App になります。 WPF プロジェクトでは、アプリケーションの起動時に UI リソースを読み込むようにスタートアップ URI を設定する必要があります。 これを行うには、プロジェクトで Application.xaml ファイルを開き、プロジェクトの .xaml ファイル (Window1.xaml など) を StartupUri プロパティに設定します。 指定できルート要素の一覧については、「StartupUri」を参照してください。 プロジェクトのクラスで public static void Main() メソッドを定義する必要もあります。 このクラスは、[スタートアップ オブジェクト] 一覧に ProjectName.ClassName として表示されます。 その後、スタートアップ オブジェクトとしてクラスを選択できます。

詳細については、「/main (C# コンパイラ オプション)」を参照してください。 プログラムを使用してこのプロパティにアクセスする方法については、「StartupObject」を参照してください。

アセンブリ名

アセンブリ マニフェストを保持する出力ファイルの名前を指定します。 このプロパティを変更すると、[出力名] プロパティも変更されます。

コマンド ラインから /out (C# コンパイラ オプション) を使用して、変更することもできます。

プログラムを使用してこのプロパティにアクセスする方法については、「AssemblyName」を参照してください。

既定の名前空間

プロジェクトに追加されるファイルの基本の名前空間を指定します。

コードでの名前空間の作成の詳細については、namespace に関するページを参照してください。

プログラムを使用してこのプロパティにアクセスする方法については、「RootNamespace」を参照してください。

アプリケーション、Win32 リソースの設定

アイコン

プログラム アイコンとして使用する .ico ファイルを設定します。 [参照] をクリックして既存のグラフィックを参照するか、必要なファイルの名前を入力します。 詳細については、「/win32icon (C# コンパイラ オプション)」を参照してください。

プログラムを使用してこのプロパティにアクセスする方法については、「ApplicationIcon」を参照してください。

アイコン作成の詳細は、「アイコン用イメージ エディター」を参照してください。

リソース

[リソース] オプションは、アプリのリソース設定を構成するのに役立ちます。 既定では、[アイコン] オプションと [マニフェスト] オプションが有効になっています。 したがって、独自のアイコンを選択することも、別のマニフェスト生成オプションを選択することもできます。 プロジェクトのリソース ファイルをプロビジョニングする場合を除き、このオプション ボタンは選択したままにしておいてください。

[リソース ファイル] を選択した場合は、プロジェクトのリソース ファイルを構成します。 パス名を入力するか、[参照] ボタンを使用して Win32 リソース ファイルをプロジェクトに追加します。 詳細については、「.NET アプリ用のリソース ファイルを作成する」を参照してください。

マニフェスト

Windows 上で、ユーザー アカウント制御 (UAC) 下でアプリケーションを実行する場合に、マニフェスト生成オプションを選択します。 このオプションには次の値を指定できます。

  • マニフェストを既定の設定で埋め込みます。 Windows での Visual Studio の標準的な操作方法がサポートされます。つまり、アプリケーションの実行可能ファイルにセキュリティ情報を埋め込む場合は、requestedExecutionLevelAsInvoker に指定します。 既定のオプションです。

  • マニフェストなしでアプリケーションを作成します。 このメソッドは仮想化といいます。 以前のアプリケーションとの互換性を保つために、このオプションを使用します。

  • カスタム マニフェストを使用します。 パスを入力するか、プロジェクトのカスタム マニフェストを参照できます。

グローバルな使用設定

暗黙的なグローバル使用

グローバル using を有効または無効にします。これにより、完全修飾名前空間を指定せずに名前空間で定義された型を使用できます。

暗黙的なグローバル使用の管理

プロジェクトで使用するグローバル using を手動で追加および削除します。

ビルド、全般設定

条件付きコンパイル シンボル

条件付きコンパイルを実行するシンボルを指定します。 シンボルはセミコロン (";") で区切ります。 詳しくは、「/define (C# コンパイラ オプション)」をご覧ください。

カスタム シンボルのデバッグ

デバッグ ビルドの条件付きコンパイルのシンボルを指定します。 既定のデバッグ シンボルは、セミコロンで区切られた文字列で表示されます。

カスタム シンボルを解放する

リリース ビルドの条件付きコンパイルのシンボルを指定します。 既定のリリース シンボルは、セミコロンで区切られた文字列で表示されます。

プラットフォーム ターゲット

出力ファイルがターゲットとするプロセッサを指定します。 32 ビット Intel 互換プロセッサの場合は [x86] を、64 ビット Intel 互換プロセッサの場合は [x64] を、ARM プロセッサの場合は [ARM] をそれぞれ選択します。または、どのプロセッサでもかまわないことを指定する場合は、[Any CPU] を選択します。 [Any CPU] はプロジェクトの既定の値であり、さまざまなハードウェアでアプリケーションを実行できるようにします。

詳しくは、「/platform (C# コンパイラ オプション)」をご覧ください。

NULL 値の使用

プロジェクト全体の C# の null 許容コンテキストを指定します。 この UI オプションは Visual Studio 16.5 で導入されたものであり、C# 8.0 以降を使用するプロジェクトでのみ有効です。

詳細については、「null 許容コンテキスト」を参照してください。

アセンブリ情報を生成する

パッケージ関連のプロジェクト プロパティをアセンブリ属性に変換するかどうかを指定します。 詳細については、GenerateAssemblyInfo プロパティを参照してください。

アンセーフ コード

unsafe キーワードを使用するコードをコンパイルできるようにします。 詳しくは、「/unsafe (C# コンパイラ オプション)」をご覧ください。

コードの最適化

コンパイラで実行する最適化を有効または無効にします。最適化を実行すると、出力ファイルのサイズが小さくなり、速度と効率が向上します。 詳しくは、「/optimize (C# コンパイラ オプション)」をご覧ください。

デバッグ シンボル

コンパイラによって生成されるデバッグ情報の種類を指定します。 アプリケーションのデバッグ パフォーマンスを構成する方法については、「DebugType コンパイラ オプション」を参照してください。 この設定には、次のオプションがあります:

  • なし

    デバッグ情報を生成しないことを指定します。

  • full

    実行中のプログラムにデバッガーをアタッチできるようにします。

  • pdbonly

    プログラムがデバッガーで開始されたとき、ソース コードのデバッグが有効になりますが、実行中のプログラムがデバッガーにアタッチされているときにのみアセンブラーが表示されます。

  • ポータブル

    プラットフォーム固有ではない、移植可能なシンボル ファイルである .PDB ファイルを生成します。このファイルは、他のツール、特にデバッガーに、主要な実行可能ファイルの内容やそれが作られた経緯に関する情報を提供します。 詳細については、「ポータブル PDB」を参照してください。

  • 埋め込み

    ポータブル シンボル情報をアセンブリに埋め込みます。 外部 .PDB ファイルは作成されません。

詳しくは、「/debug (C# コンパイラ オプション)」をご覧ください。

ビルド、エラー、警告の設定

ビルド処理におけるエラーおよび警告のオプションの構成には、次の設定が使用されます。

警告レベル

コンパイラの警告を表示するレベルを指定します。 詳しくは、「/warn (C# コンパイラ オプション)」をご覧ください。

特定の警告を抑制する

1 つ以上の特定の警告を生成するコンパイラの機能をブロックします。 警告番号が複数ある場合は、コンマまたはセミコロンで区切ります。 詳しくは、「/nowarn (C# コンパイラ オプション)」をご覧ください。

警告をエラーとして扱う

ビルド プロセス中に警告をエラーとして扱うかどうかを選択します。 詳しくは、「/warnaserror (C# コンパイラ オプション)」をご覧ください。

特定の警告をエラーとして扱う

エラーとして扱う警告を指定します。 警告番号が複数ある場合は、コンマまたはセミコロンで区切ります。

ヒント

コード分析の警告がエラーとして扱われないようにするには、「Code analysis FAQ」(コード分析の FAQ) を参照してください。

ビルド、出力の設定

次の設定は、ビルド処理の出力オプションを構成するために使用します。

基本出力パス

このプロジェクト構成の出力ファイルの場所を指定します。 このボックスにビルド出力のパスを入力するか、[参照] をクリックし、パスを指定します。 このパスは相対パスです。絶対パスを入力しても、相対パスとして保存されます。 既定のパスは bin\Debug または bin\Release\ です。

簡易ビルド構成を使用した場合、デバッグ バージョンとリリース バージョンのどちらをビルドするかの決定はプロジェクト システムによって行われます。 [デバッグ] メニューの [ビルド] コマンド (F5) を使用すると、指定した [出力パス] に関係なく、デバッグ用の場所にビルドが配置されます。 ただし、[ビルド] メニューの [ビルド] コマンドでは、指定した場所にビルドが配置されます。 詳しくは、「ビルド構成について」をご覧ください。

参照アセンブリ

プロジェクトのパブリック API を含む参照アセンブリを生成するかどうかを指定します。

ドキュメント ファイル

ドキュメントのコメントを処理するファイルの名前を指定します。 詳しくは、「/doc (C# コンパイラ オプション)」をご覧ください。

ビルド、イベントの設定

ビルド イベントの設定の詳細については、「ビルド イベントの指定 (C#)」を参照してください

ビルド、発行の設定

公開

MSBuild 発行ターゲットの実行を許可します。 詳細については、MSBuild IsPublishable プロパティを参照してください。

トリミングされた発行

発行プロセス中にトリミングを有効にするかどうかを指定します。 詳細については、「トリム関連のプロパティ」を参照してください

ネイティブ AOT を発行する

自己完結型で、ネイティブ コードにコンパイルされた事前 (AOT) のアプリを生成するかどうかを指定します。 詳細については、ネイティブ AOT のデプロイに関する説明を参照してください。

ビルド、厳密な名前付け設定

アセンブリに署名する

アセンブリに署名し、厳密な名前のキー ファイルを作成するには、このチェック ボックスをオンにします。 プロジェクト デザイナーを使用してアセンブリに署名する詳細については、「方法: アセンブリに署名する (Visual Studio)」を参照してください。 詳細については、「厳密な名前付きアセンブリ」を参照してください。

このオプションは、Windows ソフトウェア開発キット (Windows SDK) で提供される Al.exe ツールを使用して、アセンブリに署名します。 Al.exe の詳細については、「方法 : 厳密な名前でアセンブリに署名する」を参照してください。

厳密な名前のキー ファイル の一覧

アセンブリに署名するために使用する新規または既存の厳密な名前のキー ファイルを指定できます。 [<参照...>] を選んで、既存のキー ファイルを選びます。

遅延記号のみ

遅延署名を有効にするには、このチェック ボックスを選択します。 詳細については、「アセンブリへの遅延署名」を参照してください。

遅延署名されたプロジェクトは実行されず、デバッグできないことに注意してください。 ただし、Sn.exe (厳密名ツール)-Vr オプションを使用すると、開発時に検証をスキップできます。

Note

アセンブリに署名するときに、秘密キーへのアクセス権がない場合があります。 たとえば、組織には、開発者が日常的にアクセスしない厳重に保護されたキーのペアがある場合があります。 公開キーは使用可能ですが、秘密キーへのアクセスは少数のユーザーに限定されます。 このような場合は、遅延または部分署名を使用して公開キーを提供し、アセンブリが引き渡されるまで、秘密キーの追加を遅らせることができます。

ビルド、詳細設定

次のオプションを使用すると、ビルドの詳細設定を設定できます。

Language version (言語バージョン)

/langversion (C# コンパイラ オプション) のリンク。プロジェクトのターゲット フレームワークに基づいて既定の言語バージョンが選択されるしくみに関する情報が提供されます。

演算オーバーフローを確認する

checked キーワードまたは unchecked キーワードのスコープ内に含まれない整数の算術ステートメントと、データ型の範囲外の値になる整数の算術ステートメントで、ランタイム例外が発生するかどうかを指定します。 詳しくは、「/checked (C# コンパイラ オプション)」をご覧ください。

決定的

同じ入力ソースからバイト単位の等価出力を生成するかどうかを指定します。 詳細については、「コード生成を制御する C# コンパイラ オプション」を参照してください

内部コンパイラ エラー報告

コンパイラ エラーを Microsoft に報告するかどうかを指定します。 prompt (既定) に設定すると、内部コンパイラ エラーが発生した場合にプロンプトが表示され、エラー報告を電子的に Microsoft に送信するオプションが示されます。 send に設定すると、エラー報告は自動的に送信されます。 queue に設定すると、報告はキューに追加されます。 none に設定すると、エラーはコンパイラのテキスト出力にのみ報告されます。 詳しくは、「/errorreport (C# コンパイラ オプション)」をご覧ください。

ファイルの配置

出力ファイル内のセクションのサイズを指定します。 有効値は 512102420484096、および 8192 です。 これらの値の単位はバイトです。 各セクションは、この値の倍数である境界内にアラインされるので、出力ファイルのサイズに影響があります。 詳しくは、「/filealign (C# コンパイラ オプション)」をご覧ください。

パッケージ、全般設定

このセクションのプロパティは、通常、NuGet .nuspec ファイルのプロパティに対応するパッケージを構成するために使用されます。 詳細については、.nuspec ファイルを参照してください

パッケージ、ライセンス設定

パッケージ ライセンス

パッケージにライセンス式またはライセンス ファイルを含めるかどうかを指定します。 詳細については、ライセンス要素を参照してください。

パッケージ、シンボルの設定

シンボル パッケージを生成する

デバッグ用のシンボル パッケージを作成するかどうかを指定します。 詳細については、シンボル パッケージの作成 (.snupkg) を参照してください

コード分析、すべてのアナライザー設定

ビルド時に実行

プロジェクトのビルド時にソース コード分析を実行するかどうかを指定します。 詳細については、「.NET のソース コード分析を無効にする」を参照してください

ライブ分析時に実行

プロジェクトのビルド時にライブ ソース コード分析を実行するかどうかを指定します。 詳細については、「.NET のソース コード分析を無効にする」を参照してください

コード分析、.NET アナライザーの設定

ビルド時にコード スタイルを適用する

プロジェクトのビルド時に .NET コード スタイル違反を報告するかどうかを指定します。 詳細については、「ビルド時にコード スタイルを適用する」を参照してください

.NET アナライザーを有効にする

.NET コンパイラ プラットフォーム (Roslyn) アナライザーを有効または無効にします。 詳細については、「ファースト パーティの .NET アナライザーを有効またはインストールする」を参照してください

分析レベル

プロジェクトで実行するアナライザーのセットを指定します。 詳細については、コード分析の概要に関する記事の「最新の更新プログラム」セクションを参照してください

デバッグ、全般設定

リンクを選択して、デバッグ起動プロファイル UI を開きます。 この UI を使用すると、デバッグ時に使用するさまざまなプロファイルを追加および構成できます。 各プロファイル名は、[デバッグの開始] ボックスの一覧に開始オプションとして表示されます。

ASP.NET Core プロジェクトの場合、起動プロファイル UI の設定は、プロジェクトの起動設定.json ファイルの設定に対応します。 このファイルを ASP.NET 開発で使用する方法の詳細については、「開発と起動」を参照してください設定.json

リソース、全般設定

リンクを選択して RESX アセンブリ リソース ファイルを開きます。 詳細については、「プロジェクト デザイナー設定ページ」を参照してください

関連項目

プロジェクト プロパティ UI の改良