在解决方案级别禁止警告。 在解决方案级别将警告视为错误

我正在尝试为我的团队设置全局规则。 我们正在将VS2012与TFS用于我们的C#项目。 我想压制一些警告,并将一些警告视为错误。 我找到了在项目级别上执行此操作的方法 – 项目属性 – >构建选项卡。

但我们有超过一百个项目的解决方案,我正在寻找一些更简单的方法来全局设置这些规则。

解决方案只是一个(非常愚蠢)项目容器。 如果您在文本编辑器中打开它,您很快就会看到无法扩展它,只添加项目/项目。

你想要的是一个或多个常见的msbuild文件,为编译器/链接器/你使用的任何工具指定所有需要的选项,并在每个项目中Import它。 我们多年来一直在使用它并且它非常方便(虽然方便的一部分可能是我们还编写了一个小工具来生成项目文件以自动导入全局属性,因此我们不必手动弄乱它们)

或者,您可以添加计算机范围的文件,查看$(MSBuildToolsPath)\ Microsoft.CSharp.targets以查看放置这些文件的位置。 我不会在这里复制/粘贴内容,但是第一行基本上检查是否有用户定义的文件,例如$(MSBuildExtensionsPath)\ $(MSBuildToolsVersion)\ $(MSBuildThisFile)\ ImportBefore,如果是这样,他们就是在所有常见的msbuild之前导入所有内容。 同样,Microsoft.CSharp.targets的结尾包含类似的逻辑,用于在所有常见的msbuild内容之后导入文件。