怎么

<None Include="C:\foo.bar" />

不同于

<Content Include="C:\foo.bar" />

?

有帮助吗?

解决方案

MSDN 文章关于 建立行动 属性解释了这些差异。

没有任何 - 该文件不包含在项目输出组中,并且不在构建过程中进行编译。一个示例是包含文档的文本文件,例如自述文件。

内容 - 该文件未编译,但包含在内容输出组中。例如,此设置是 .htm 或其他类型的 Web 文件的默认值。

其他提示

一个区别是它们是如何被公布; “无”的项目没有得到包括在出版,“内容”的项目做;例如,在发布标签上的“应用程序文件”对话框。

我不是100%肯定完全(我读生成操作属性的MSDN说明),但只是复制从MSDN是答案的的StackOverflow 的不回答这个问题的我

的<强>无和内容只对Web项目的效果的差异。对于一个命令行项目,项目的WinForm或单元测试项目(在我的情况下)等的内容没有不同的行为。

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>

虽然我的项目建设得很好,但这让我想知道为什么我混合了 ContentNone my 中的项目类型元素 ItemGroup. 。这 MSDN 文章 (针对 Visual Studio 2010)给了我我正在寻找的指导:

请注意,当资源编辑器添加图像时,它会设置 建立动作没有任何, ,因为.RESX文件引用图像文件。在构建时间,将图像拉入.Resx文件中创建的.Resources文件中。然后,可以通过为.RESX文件自动生成的强大的类自动产生的类型访问图像。因此,您不应将此设置更改为 嵌入式资源, ,因为这样做将在组件中两次包含图像。

解决: 在此指导下,使用文本编辑器,我更改了 Content 项目类型元素 None.

另外,有关 MSBuild 项目的概述,请参阅此 MSDN 文章.

我有一个包含不编译的项目(它存储用于茉莉单元测试HTML和JavaScript)的项目。

有一天,我的解决方案(即包含上述项目)停止编译说:“目标‘构建’不存在于该项目。”

我添加了一个进口的编译器,它的工作我的机器上细带,但使用的生成服务器上的MSBuild失败。

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

我然后从

变化的线
<None Include="SpecRunner.html" />

<Content Include="SpecRunner.html" />

和它的工作在生成服务器上为好。

您需要在模板项目文件没有包括您在.vstemplate否则他们在创作和翻译过程中丢失的文件定义。他们被甩在使用它来建立一切,然后不久后删除临时文件夹。

在我的情况下的 .Pubxml 是其中的列表中的那些文件中的一个。这并不意味着解决方案构建或作为web项目静态文件。但是,为了发布该网站天青,所述配置是存在于该

按照微软的文章,这些是主要的类型,我们看到其中的的.csproj 文件标签:

  

无 - 文件不包含项目输出组中,并且是不   编译生成过程。一个例子是,包含一个文本文件   文档,诸如自述文件。

     

编译 - 文件被编译成生成输出。此设置   用于代码的文件。

     

的内容 - 该文件未编译的,但被包括在内容   输出组。例如,该设置是用于默认值   .htm或其它种类的Web文件。

     

嵌入的资源 - 此文件嵌入主项目生成   输出作为DLL或可执行文件。它通常用于资源   文件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top