MSBuild 因缺少项目文件而强制编译失败

Sco*_*ott 5 .net c# msbuild visual-studio

csproj作为一名开发人员,我希望我的编译器(在本例中为 Visual Studio 中的 MSBuild)在任何项目中包含磁盘上丢失的文件时都会严重失败。在目睹了网站上的 web.config 被意外删除后,我萌生了这个想法。MSBuild 很乐意在没有它的情况下进行编译(并且在持续集成中也会这样做,因为它也只运行 MSBuild)。

有没有办法强制 MSBuild 在构建成功之前检查所有解决方案项目中引用的所有文件是否都存在?启用警告作为错误似乎不起作用。事实上,查看输出时,我没有看到任何文件丢失的通知。我知道它会标记标记为“编译”的项目文件丢失的文件,但是仅内容的项目文件又如何呢?

Mat*_*ers 2

确实,如果内容项设置为“不复制”,那么它不会在 MSBuild 中导致错误甚至警告。但是,如果您将其设置为“如果较新则复制”或将类型更改为“资源”(仍将其保留为“不复制”),那么它将触发错误。我能够将随机 .bak 文件作为“资源”,据我所知,这对我的构建没有产生不利影响。