怎么样
<None Include="C:\foo.bar" />
与
不同<Content Include="C:\foo.bar" />
答案 0 :(得分:121)
build action属性上的MSDN文章解释了这些差异。
无 - 文件未包含在项目输出组中,并且未在构建过程中编译。一个示例是包含文档的文本文件,例如自述文件。
内容 - 文件未编译,但包含在内容输出组中。例如,此设置是.htm或其他类型的Web文件的默认值。
答案 1 :(得分:29)
一个不同之处在于它们是如何发布的; “无”项目未包含在发布中,“内容”项目包含在内;例如,在“发布”选项卡上的“应用程序文件”对话框中。
答案 2 :(得分:12)
我不是100%肯定(我阅读了构建操作属性的MSDN描述),但只是将答案从MSDN复制到 StackOverflow 并不能完全回答这个问题我
无和内容的区别仅对Web项目有影响。对于命令行项目,WinForm项目或UnitTest项目(在我的情况下)等。无和内容没有不同的行为。
MSDN:“项目输出组”或“内容输出组”仅限Web项目中使用的术语,对吗?
答案 3 :(得分:6)
在我的情况下,我的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 article(对于Visual Studio 2010)给了我正在寻找的指导:
请注意,当资源编辑器添加图像时,它会设置构建 操作到无,因为.resx文件引用了图像 文件。在构建时,图像被拉入.resources文件 从.resx文件创建。然后可以轻松访问图像 通过为.resx文件自动生成的强类型类。 因此,您不应将此设置更改为嵌入式 资源,因为这样做会包括图像两次 集会。
解决方案:在本指南中,我使用文本编辑器将Content
项类型元素更改为None
。
另外,有关MSBuild项目的概述,请参阅此MSDN article。
答案 4 :(得分:3)
我有一个不包含可编译项目的项目(它存储用于jasmine单元测试的html和javascript)。
有一天,我的解决方案(包含所述项目)停止编译说“目标”Build“在项目中不存在”。
我添加了一个导入来引入编译器,它在我的机器上工作正常,但在构建服务器上使用msbuild失败。
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
然后我从
更改了一行<None Include="SpecRunner.html" />
到
<Content Include="SpecRunner.html" />
它也可以在构建服务器上运行。
答案 5 :(得分:1)
您需要在模板项目文件中包含无以包含您在.vstemplate中定义的文件,否则它们会在创建和放置中丢失。翻译过程。它们会留在用于构建所有内容的临时文件夹中,然后很快就会被删除。
答案 6 :(得分:0)
就我而言, .Pubxml 是无列表中的那些文件之一。它并不用于解决方案构建或用于Web项目的静态文件。但是要将网站发布到Azure,配置已经存在。
根据Microsoft的文章,这些是我们在 .csproj 文件标签中看到的主要类型:
无-该文件不包含在项目输出组中,也不包含 在构建过程中进行编译。一个示例是一个文本文件,其中包含 文档,例如自述文件。
Compile-将文件编译到构建输出中。此设置是 用于代码文件。
内容-文件未编译,但包含在内容中 输出组。例如,此设置是 .htm或其他类型的Web文件。
嵌入式资源-该文件嵌入在主项目版本中 输出为DLL或可执行文件。通常用于资源 文件。
答案 7 :(得分:0)
内容文件不包含在构建中,但包含在发布中。
无文件不包含在构建或发布中,除非您通过这种方式进行配置。例如,“始终复制”或“较新”的“复制到输出目录”设置将导致它们同时包含在构建和发布中。