【问题标题】:Why does the verbiage for the "Copy to Output Directory" selection change between locations?为什么“复制到输出目录”选择的措辞在位置之间会发生变化?
【发布时间】:2014-06-23 13:34:07
【问题描述】:

VS.NET 中的解决方案资源管理器与.csproj 文件中的预计值之间的配置值措辞不一致。在Solution Explorer 中,.config 或依赖文件将在Copy To Output Directory 属性中有多个选项,这些选项会影响其构建和部署特性。

Copy To Output Directory 下拉列表中,我选择了 .config 文件的选项:Copy if newer。但是在.csproj 文件中,它被设置为PreserveNewest,如下所示:

<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>

我想可以得出这样的结论,因为它是 (2) 不同的地方,所以术语不同是有道理的。我还可以看到 XML 文件中不允许使用“空格”的位置,但我仍然可能希望看到类似以下内容。

<CopyToOutputDirectory>CopyIfNewer</CopyToOutputDirectory>

这在 MSDN 中是否有定义以及这些“友好名称”如何映射到它们在 .csproj 文件中的物理配置值?

【问题讨论】:

  • 这并不能真正回答问题,但通常你不应该指望配置文件措辞来匹配 UI。 UI 应该支持本地化;配置文件不应该。

标签: visual-studio configuration msbuild csproj


【解决方案1】:

我认为没有这样的地方可以找到这样的映射。但是,Automation and Extensibility Reference 可以解决一些问题。

例如,您可以看到 FileProperties2 接口具有 CopyToOutputDirectory 属性,并且该属性接受 __COPYTOOUTPUTSTATE 枚举值:

  • COPYTOOUTPUTSTATE_Never = 0
  • COPYTOOUTPUTSTATE_Always = 1
  • COPYTOOUTPUTSTATE_PreserveNewestFile = 2

在这里您可以看到PreserveNewest 是唯一符合Copy if newer UI 值的选项。

我的观点是:如果您对可能的选项有疑问,您始终可以在自动化参考中检查它,但是,我个人仅使用它编写 NuGet powershell 脚本来修改代码中的 msbuild 文件。最简单的方法是在 UI 中设置值,然后看到我们在 msbuild 文件中得到了。

【讨论】:

    猜你喜欢
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    • 2021-02-13
    • 2021-10-07
    • 1970-01-01
    • 1970-01-01
    • 2017-05-05
    相关资源
    最近更新 更多