お元気ですか
<None Include="C:\foo.bar" />
と違う
<Content Include="C:\foo.bar" />
?
ビルドアクション プロパティに関するMSDNの記事では、違いについて説明しています。
None -ファイルはプロジェクト出力グループに含まれておらず、ビルドプロセスでコンパイルされていません。例は、Readmeファイルなどのドキュメントを含むテキストファイルです。
コンテンツ -ファイルはコンパイルされませんが、コンテンツ出力グループに含まれます。たとえば、この設定は.htmまたは他の種類のWebファイルのデフォルト値です。
1つの違いは、公開方法です。 「なし」アイテムは公開に含まれませんが、「コンテンツ」アイテムは含まれます。たとえば、[公開]タブの[アプリケーションファイル]ダイアログで。
私は100%確信していません(MSDNの説明ビルドアクションプロパティを読んでいます)が、MSDNからStackOverflowにその答えをコピーするだけでは質問に答えません完全に私のために。
NoneとContentの違いは、Webプロジェクトにのみ影響します。コマンドラインプロジェクトの場合、WinFormプロジェクトまたはUnitTestプロジェクト(私の場合)など。NoneとContentには異なる動作はありません。
MSDN:Webプロジェクトで使用される用語のみ「プロジェクト出力グループ」または「コンテンツ出力グループ」ですよね?
私の状況では、MSBuildファイルには次のように表示されるイメージリソース用のItemGroup
がありました。
<ItemGroup>
<Content Include="Resources\image001.png" />
<Content Include="Resources\image002.png" />
<Content Include="Resources\image003.png" />
<Content Include="Resources\image004.png" />
<None Include="Resources\image005.png" />
<None Include="Resources\image006.png" />
<None Include="Resources\image007.png" />
</ItemGroup>
私のプロジェクトが順調に構築されている間、Content
とNone
のアイテムタイプ要素がItemGroup
に混在しているのはなぜだろうと思いました。この MSDN記事 (Visual Studio 2010の場合)は、私が探していたガイダンスを提供してくれました。
.resxファイルは画像ファイルを参照するため、リソースエディタが画像を追加するとき、Build ActionをNoneに設定することに注意してください。 。ビルド時に、イメージは.resxファイルから作成された.resourcesファイルに取り込まれます。その後、.resxファイル用に自動生成された厳密に型指定されたクラスを使用して、イメージに簡単にアクセスできます。したがって、この設定をEmbedded Resourceに変更しないでください。これを行うと、アセンブリにイメージが2回含まれます。
解決策:このガイダンスでは、テキストエディターを使用して、Content
アイテムタイプ要素をNone
に変更しました。
また、MSBuildアイテムの概要については、これを参照してください MSDN記事 。
コンパイル可能なアイテムを含まないプロジェクトがあります(ジャスミンユニットテスト用のhtmlおよびjavascriptが格納されています)。
ある日(プロジェクトを含む)私のソリューションは、「ターゲット「ビルド」がプロジェクトに存在しません」と言ってコンパイルを停止しました。
コンパイラを取り込むためのインポートを追加しました。これは私のマシンでは正常に機能しましたが、ビルドサーバーでmsbuildを使用すると失敗しました。
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
その後、次の行を変更しました
<None Include="SpecRunner.html" />
に
<Content Include="SpecRunner.html" />
ビルドサーバーでも機能しました。
.vstemplateで定義したファイルを含めるには、テンプレートプロジェクトファイルにNoneが必要です。そうしないと、作成および変換プロセスで失われます。それらはすべてを構築するために使用する一時フォルダーに残され、その後すぐに削除されます。
私の場合、。PubxmlはNoneリストの中のファイルの1つです。ソリューションの構築やWebプロジェクトの静的ファイルとしての使用は意図されていません。しかし、サイトをAzureに発行するために、構成はこれにあります。
Microsoftの記事によると、これらは。csprojファイルタグに見られる主なタイプです。
なし-ファイルはプロジェクト出力グループに含まれず、ビルドプロセスでコンパイルされません。例は、Readmeファイルなどのドキュメントを含むテキストファイルです。
コンパイル-ファイルはビルド出力にコンパイルされます。この設定はコードファイルに使用されます。
コンテンツ-ファイルはコンパイルされませんが、コンテンツ出力グループに含まれます。たとえば、この設定は.htmまたは他の種類のWebファイルのデフォルト値です。
埋め込みリソース-このファイルは、メインプロジェクトのビルド出力にDLLまたは実行可能ファイルとして埋め込まれます。通常、リソースファイルに使用されます。