45

What does the Content Build Action in Visual Studio do? It does not look like it's doing anything.

The File Properties article on MSDN (does not exist anymore) says:

Content - The file is not compiled, but is included in the Content output group. For example, this setting is the default value for an .htm or other kind of Web file.

But I have no idea what the "Content output group" means.

Is this something about deployment? Meaning, the action has no actual effect, when building, but only later when deploying?

4

4 に答える 4

33

「コンテンツ」は、それが配置可能なプロジェクト アイテムであることを意味し、ファイルをターゲット マシンにコピーする必要があることを示します。

単純なコンソール モード プロジェクトで確認できるもの。プロジェクト + 新しいアイテムの追加、ビットマップ ファイル アイテム テンプレートを選択します。Build Action は自動的に「Content」に設定されます。[プロジェクト + プロパティ] の [発行] タブを使用して、[アプリケーション ファイル] ボタンをクリックします。展開されたファイルのリストにビットマップが自動的に追加されたことに注意してください。

ここに画像の説明を入力

[プロパティ] ウィンドウに戻り、[ビルド アクション] を [なし] に変更します。ボタンをもう一度クリックして、ファイルが含まれなくなったことに注意してください。

まったく同じ理由で、VS と統合するインストーラー ユーティリティでも使用されます。また、Web アプリケーションでは、通常、Web サーバーにデプロイする必要のあるファイルが多数あります。

于 2014-03-31T16:21:18.367 に答える
11

更新された Visual Studio ドキュメントには、より意味のある説明があります。

Content - Contentとしてマークされたファイルは、Application.GetContentStreamを呼び出すことによってストリームとして取得できます。ASP.NET プロジェクトの場合、これらのファイルは、展開時にサイトの一部として含まれます。


また、いくつかのテストの後、Visual Studio プロジェクト プロパティのさまざまな「ビルド アクション」設定とは何ですか? コンテンツビルド アクションが WPF プロジェクト (おそらく ASP も) でこの効果を持つことがわかりました。

追加します

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

WpfApplication1_Content.g.cs。についてお読みくださいAssemblyAssociatedContentFileAttribute

コンソールまたは WinForms アプリケーションでは、何もしません (ソース コードでも出力バイナリでも)。

コメントには、前述の質問がありますが、展開への影響に関するメモがあります。

また、ワンクリック デプロイを使用するとコンテンツが含まれますが、[新しい場合はコピー] が選択されていても [なし] は含まれないことに注意してください。

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

于 2014-03-28T06:22:16.497 に答える
0

[発行中にプリコンパイル] をオンにして Azure Web サイトに発行すると、ビルド アクションが [なし] のビューがプリコンパイル エラーでブラウザーで解決されませんでした。ビルド アクションを「コンテンツ」に切り替えて公開すると、ビューは期待どおりに解決されました。100ビューのうち2ビューが「なし」に設定された方法がわかりません。

于 2020-10-28T13:16:02.743 に答える