MSBuild强制编译失败的项目文件失败

作为开发人员,我希望我的编译器(在本例中为Visual Studio中的MSBuild)在磁盘上缺少的任何csproj项目中包含文件时都会出现严重故障。 在见证了从网站上意外删除web.config之后,我想到了这个想法。 MSBuild很乐意在没有它的情况下进行编译(并且在连续集成中也会这样做,因为它也只是运行MSBuild)。

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

确实如果将Content项设置为“Do not copy”,那么它不会在MSBuild中导致错误甚至是警告。 但是,如果将其设置为“如果更新则复制”或将类型更改为“资源”(仍将其保留为“不复制”),则会触发错误。 我能够将一个随机的.bak文件变成一个“资源”,对我的构建没有任何负面影响,我可以告诉他。