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文件中的物理配置值?

最佳答案

我认为没有这样的地方可以找到这样的映射。但是,Automation and Extensibility Reference可以清除一些内容。

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

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

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

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

    10-05 19:06