作为一名开发人员,我希望我的编译器(在本例中为 Visual Studio 中的 MSBuild)在任何 csproj
项目中包含磁盘上丢失的文件时严重失败。在目睹从网站上意外删除 web.config 后,这个想法如雨后春笋般涌现。 MSBuild 在没有它的情况下也能愉快地编译(并且在持续集成中也会这样做,因为它也只是运行 MSBuild)。
有没有办法强制 MSBuild 在构建成功之前检查所有解决方案项目中引用的所有文件是否存在?启用警告作为错误似乎并没有做到这一点。事实上,查看输出时,我没有看到任何文件丢失的通知。我知道它会标记标记为“编译”的项目文件丢失的文件,但是只有内容的文件呢?
最佳答案
确实,如果内容项设置为“不复制”,那么它不会在 MSBuild 中导致错误甚至警告。但是,如果您将其设置为“如果较新则复制”或将类型更改为“资源”(仍将其保留为“不复制”),则会触发错误。我能够将一个随机的 .bak 文件设为“资源”,而我可以说这对我的构建没有不利影响。
关于c# - MSBuild 在缺少项目文件时强制编译失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28160294/