【问题标题】:Difference between Build action content and 'Copy to output directory' in Visual StudioVisual Studio 中构建操作内容和“复制到输出目录”之间的区别
【发布时间】:2012-08-28 00:49:29
【问题描述】:

在我的 Visual Studio 项目中,我有一些文件希望包含在输出中,但没有编译或嵌入。

我知道有两种方法可以做到这一点。

  1. 将文件的构建操作设置为“内容”
  2. 将“复制到输出目录”设置为“始终复制”或“如果更新则复制”

谁能告诉我有什么区别以及每个选项适合哪种情况?

【问题讨论】:

标签: visual-studio buildaction


【解决方案1】:

当将Build Action 设置为Content 时,文件将不会被编译,将被放入内容输出组。

文件是否获得副本取决于当时的Copy to Output Directory 设置。

当然,如果您在文件上设置Copy Always,它可能会被编译并然后被复制。

请参阅 MSDN 上的 File Properties

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

【讨论】:

    【解决方案2】:

    Content 构建操作在 WPF 项目(可能也是 ASP)中具有明显的效果。

    它增加了

    [assembly: System.Windows.Resources.AssemblyAssociatedContentFileAttribute("filename")]
    

    WpfApplication1_Content.g.cs。阅读AssemblyAssociatedContentFileAttribute

    在 WinForms 和控制台应用程序(OP 可能正在使用的)中,它不会这样做,因此构建时 None 操作没有区别。

    this comment,我还发现了一条关于对部署的影响的说明:

    另请注意,使用一键部署时将包含内容,但即使选择了“如果较新则复制”也不会包含任何内容。

    可能这甚至适用于控制台和 WinForms 应用程序(我没有尝试过)。

    【讨论】:

      【解决方案3】:

      即使没有更改任何代码,始终复制也会触发解决方案中该项目的重建。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-10-19
        • 2019-04-28
        • 1970-01-01
        • 2016-12-18
        • 1970-01-01
        • 2010-10-10
        • 2020-11-26
        相关资源
        最近更新 更多