MSDN上的“文件属性”文章(已不存在)称:
“Content” - 该文件未编译,但包含在内容输出组中。例如,对于 .htm 或其他类型的Web文件,此设置是默认值。
但我不知道“内容输出组”是什么意思。
这是关于部署的问题吗?也就是说,在构建时没有实际效果,只有在稍后部署时才有效?
“Content”表示可部署的项目项,表明该文件需要复制到目标机器。对于一个简单的控制台模式项目,您可以看到它。 项目+添加新项,选择位图文件项模板。它的Build Action自动设置为“Content”。使用项目+属性,发布选项卡,并单击应用程序文件按钮。请注意,位图自动添加到已部署文件列表中:
返回属性窗口,将其Build Action更改为None。再次单击按钮,注意文件现在不再包括在内。
安装程序实用程序也出于完全相同的原因与VS集成使用它。在Web应用程序中也很重要,通常有许多需要部署到Web服务器的文件。
更新后的 Visual Studio 文档 更详细地描述了以下内容:
Content - 标记为Content的文件可以通过调用Application.GetContentStream以流形式检索。对于 ASP.NET 项目,这些文件包括在站点部署时。
此外,在进行一些测试并获得来自Visual Studio 项目属性中各种“构建操作”设置是什么以及它们的作用?的提示后,我发现在 WPF 项目中(可能也适用于 ASP),Content 构建操作会产生这种效果。
它添加了
[assembly: System.Windows.Resources.AssemblyAssociatedContentFileAttribute("filename")]
转到 WpfApplication1_Content.g.cs
。了解关于AssemblyAssociatedContentFileAttribute
的信息。
在控制台或WinForms应用程序中,它不会有任何作用(无论是在源代码还是输出二进制文件中)。
尽管在先前提到的问题的评论中,有一个关于部署影响的说明:
还要注意,使用一键部署时将包括内容,但即使选择“复制如果较新”,“None”也不会包含。
这可能甚至适用于控制台和WinForms应用程序(我没有尝试过)。
当勾选了“发布期间预编译”选项后,将网站发布到 Azure 网站时,Build Action 为“None”的视图在浏览器中无法解析,会出现预编译错误。一旦我将 Build Action 改为“Content”并进行发布,这些视图就能按预期解析。
不确定为什么有 100 个视图中有 2 个被设置为“None”。
.exe
)都会被复制。因此,我认为这并没有回答我的问题。 - Martin Prikryl