在我的Visual Studio项目中,我有想要包含在输出中的文件,但没有编译或嵌入。
我知道有两种方法可以实现这一目标。
有人可以告诉我有什么区别,哪种情况适合哪种选择?
答案 0 :(得分:24)
将Build Action
设置为Content
时,文件将不会被编译并将放入内容输出组。
文件是否获得副本取决于此时的Copy to Output Directory
设置。
当然,如果您在文件上设置Copy Always
,则可能会编译并然后复制。
请参阅MSDN上的File Properties:
内容 - 文件未编译,但包含在内容输出组中。例如,此设置是.htm或其他类型的Web文件的默认值。
答案 1 :(得分:9)
Content 构建操作在WPF项目中可见效果(可能也是ASP)。
它添加了
[assembly: System.Windows.Resources.AssemblyAssociatedContentFileAttribute("filename")]
到WpfApplication1_Content.g.cs
。阅读AssemblyAssociatedContentFileAttribute
。
在WinForms和控制台应用程序中(OP可能正在使用它)它不会这样做,因此构建时 None 操作没有区别。
在this comment中,我还发现了有关部署影响的说明:
另请注意,使用一键部署时将包含内容,但即使选择了“copy if newer”,None也不会。
这可能适用于控制台和WinForms应用程序(我还没试过)。
答案 2 :(得分:6)
复制始终也会在解决方案中触发该项目的重建,即使代码没有更改。