c# - MSBuild 在缺少项目文件时强制编译失败

标签 c# .net visual-studio msbuild

作为一名开发人员,我希望我的编译器(在本例中为 Visual Studio 中的 MSBuild)在任何 csproj 项目中包含磁盘上丢失的文件时严重失败。在目睹从网站上意外删除 web.config 后,这个想法如雨后春笋般涌现。 MSBuild 在没有它的情况下也能愉快地编译(并且在持续集成中也会这样做,因为它也只是运行 MSBuild)。

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

最佳答案

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

关于c# - MSBuild 在缺少项目文件时强制编译失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28160294/

相关文章:

.net - 如何在 VB.NET 中使用泛型?

c# - 在 session 中存储用户信息?

c# - 通用对象需要强制转换,即使它实现了所需的接口(interface)

c# - 字符串 s[s.Length-1] 与 s.Last()

c# - 什么会导致 ListView 中的透明滚动条错误?

c# - 使用 C# 任务的 Unity 构建错误

javascript - Visual Studio 2012 : compile more TypeScript files to one JavaScript file

c# - 使用条件断点时,Visual Studio 会减慢执行速度

c# - 如何在 Windows 窗体应用程序中使用多线程来更新进度条?

c# - 如何为常规事件实现计时器?