2012-09-03 17 views
34

私のプロジェクトでは、Visual Studioで、出力には含めるがコンパイルや埋め込みはしないファイルがあります。Visual Studioのビルドアクションコンテンツと '出力ディレクトリにコピー'の相違点

私は、これを達成する2つの方法があることを認識しています。

誰かが私に何を伝えることができる「新しい場合はコピー」「常にコピー」または「出力ディレクトリにコピー」設定

  • 「コンテンツ」にファイルのビルドアクションを設定

    1. 相違はどのようなシナリオがそれぞれ適切なオプションですか?

  • 答えて

    21

    Build ActionContentに設定すると、ファイルはコンパイルされず、コンテンツ出力グループに入れられます。

    ファイルがコピーを取得するかどうかは、その時点のCopy to Output Directory設定に依存します。もちろん

    ファイルにCopy Alwaysを設定した場合、それがコピーされ、その後コンパイルとれるかもしれません。

    は、MSDNでFile Propertiesを参照してください:

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

    9

    コンテンツビルドアクションは、WPFプロジェクト(おそらくはASPでも)に目に見える効果があります。

    それはWpfApplication1_Content.g.cs

    [assembly: System.Windows.Resources.AssemblyAssociatedContentFileAttribute("filename")] 
    

    を追加します。 AssemblyAssociatedContentFileAttributeについて読む

    WinFormsとコンソールアプリケーション(OPが使用している可能性があります)では、これは実行されないため、構築時の動作はになりません。アクション。 this comment

    、私はまた、展開への影響に関するメモを見つけた:

    もワンクリックを使用してを展開するときコンテンツが含まれることに注意してください、どれもなりませんでもコピー」場合新しい場合は "が選択されます。

    おそらく、これはコンソールとWinFormsアプリケーション(これは試していません)でも可能です。

    3

    コピーコードが変更されていない場合でも、常にソリューション内のそのプロジェクトの再構築がトリガーされます。

    関連する問題