886

ほとんどの場合、Visual Studio がデフォルトとして設定するものをそのまま使用します。ここでは、ソリューション エクスプローラーで選択された各ファイルのBuildActionプロパティを参照しています。いくつかのオプションがあり、それぞれが何をするかを知るのは困難です。

4

8 に答える 8

1063
  • None : ファイルはプロジェクト出力グループに含まれず、ビルド プロセスでコンパイルされません。例として、Readme ファイルなどのドキュメントを含むテキスト ファイルがあります。

  • Compile : ファイルはビルド出力にコンパイルされます。この設定は、コード ファイルに使用されます。

  • Content : Application.GetContentStream(URI) を使用して、(アセンブリと同じディレクトリにある) ファイルをストリームとして取得できます。このメソッドが機能するには、AssemblyAssociatedContentFile カスタム属性が必要です。この属性は、ファイルを "コンテンツ" としてマークしたときに Visual Studio によって適切に追加されます。

  • 埋め込みリソース: ファイルを専用のアセンブリ マニフェスト リソースに埋め込みます。

  • リソース (WPF のみ) : AppName.g.resources という名前の共有 (同様の設定を持つアセンブリ内のすべてのファイルによる) アセンブリ マニフェスト リソースにファイルを埋め込みます。

  • ページ (WPF のみ)xaml :ファイルをにコンパイルするために使用されbamlます。その後baml、同じ手法で埋め込まれResourceます (つまり、`AppName.g.resources として利用可能)。

  • ApplicationDefinition (WPF のみ) : アプリケーションを定義する XAML/クラス ファイルをマークします。x:Class="Namespace.ClassName" でコード ビハインドを指定し、StartupUri="Window1.xaml" でスタートアップ フォーム/ページを設定します。

  • SplashScreen (WPF のみ) : WPF アプリケーションの読み込み時に自動的に表示され、フェードするようにマークされた画像SplashScreen

  • DesignData : Visual Studio でサンプル データを使用してユーザー コントロールをプレビューできるように、XAML ビューモデルをコンパイルします (モック型を使用)。

  • DesignDataWithDesignTimeCreatableTypes : Visual Studio でサンプル データを使用してユーザー コントロールをプレビューできるように、XAMLビューモデルをコンパイルします(実際の型を使用します) 。

  • EntityDeploy : (Entity Framework) : Entity Framework アーティファクトのデプロイに使用

  • CodeAnalysisDictionary :スペル ルール用のカスタム単語辞書を含む XML ファイル

于 2008-09-28T12:29:21.287 に答える
116

ドキュメントから:

BuildAction プロパティは、ビルドの実行時に Visual Studio がファイルに対して行う処理を示します。BuildAction には、次の値のいずれかを指定できます。

なし - ファイルはプロジェクト出力グループに含まれず、ビルド プロセスでコンパイルされません。例として、Readme ファイルなどのドキュメントを含むテキスト ファイルがあります。

コンパイル - ファイルはビルド出力にコンパイルされます。この設定は、コード ファイルに使用されます。

コンテンツ - ファイルはコンパイルされませんが、コンテンツ出力グループに含まれます。たとえば、この設定は、.htm またはその他の種類の Web ファイルの既定値です。

埋め込みリソース - このファイルは、メイン プロジェクトのビルド出力に DLL または実行可能ファイルとして埋め込まれます。通常、リソース ファイルに使用されます。

于 2008-09-28T12:20:35.347 に答える
35

ページ -- 指定された XAML ファイルを受け取り、BAML にコンパイルし、その出力をアセンブリのマネージド リソース ストリーム (具体的には AssemblyName.g.resources) に埋め込みます。さらに、ルート XAML 要素に適切な属性がある場合は、このファイルには、そのページの「コードビハインド」の部分クラスが含まれます。これには基本的に、ファイルをメモリに再水和し、クラスのメンバー変数のいずれかを現在作成されているアイテムに設定するための BAML goop への呼び出しが含まれます (たとえば、アイテムに x:Name="foo" を配置した場合) 、 this.foo.Background = Purple; などを実行できます。

ApplicationDefinition -- Page と似ていますが、一歩先に進み、アプリ オブジェクトをインスタンス化するアプリケーションのエントリ ポイントを定義し、その上で run を呼び出します。これにより、StartupUri プロパティによって設定された型がインスタンス化され、mainwindow .

また、明確にするために、この質問全体は結果セットに無限にあります。MSBuild タスクをビルドするだけで、誰でも追加の BuildAction を定義できます。%systemroot%\Microsoft.net\framework\v{version}\ ディレクトリを見て、Microsoft.Common.targets ファイルを見ると、さらに多くのことを解読できるはずです (たとえば、VS Pro 以降では、プライベート クラスの単体テストに役立つプライベート アクセサーを生成できる「シャドウ」アクションがあります。

于 2008-09-28T16:12:14.510 に答える
33

VS2010 には、「ビルド アクション」のプロパティと、「出力ディレクトリにコピー」のプロパティがあります。そのため、コピー プロパティが [新しい場合はコピー] または [常にコピー] に設定されている場合、[なし] のアクションは引き続きビルド ディレクトリにコピーされます。

そのため、'Application.GetContentStream' を介してアクセスするコンテンツを示すために、'Content' のビルド アクションを予約する必要があります。

外部にリンクされた .config インクルードには、「なし」の「ビルド アクション」設定と「新しい場合はコピー」の「出力ディレクトリにコピー」設定を使用しました。

G.

于 2013-04-09T21:37:14.857 に答える
4

Microsoft Connect のこのページ(DesignData および DesignDataWithDesignTimeCreatableTypes の説明) についてはどうですか。引用:

次に、サンプル データ ファイルの 2 つのビルド アクションについて説明します。

サンプル データの .xaml ファイルには、次のビルド アクションのいずれかを割り当てる必要があります。

DesignData :サンプル データ型は偽の型として作成されます。サンプル データ型を作成できない場合、またはサンプル データ値を定義する読み取り専用プロパティがある場合は、このビルド アクションを使用します。

DesignDataWithDesignTimeCreatableTypes :サンプル データ タイプは、サンプル データ ファイルで定義されたタイプを使用して作成されます。デフォルトの空のコンストラクターを使用してサンプル データ型を作成できる場合は、このビルド アクションを使用します。

それほど網羅的ではありません、少なくともヒントは得られます。この MSDN ウォークスルーでもいくつかのアイデアが得られます。これらのビルド アクションが Silverlight 以外のプロジェクトにも適用できるかどうかはわかりません。

于 2013-10-10T07:01:45.973 に答える
4
  • Fakes: Microsoft Fakes (単体テスト分離) フレームワークの一部。すべての Visual Studio バージョンで使用できるわけではありません。フェイクは、プロジェクトの単体テストをサポートするために使用され、アプリケーションの他の部分をスタブまたはシムに置き換えることで、テストしているコードを分離するのに役立ちます。詳細はこちら: https://msdn.microsoft.com/en-us/library/hh549175.aspx
于 2016-01-26T15:53:37.790 に答える