我正在尝试为我的团队制定全球规则。我们在 C# 项目中使用带有 TFS 的 VS2012。我想抑制一些警告,并将一些警告视为错误。我找到了在项目级别执行此操作的方法-项目属性->构建选项卡。
但是我们有超过一百个项目的解决方案,我正在寻找一些更简单的方法来在全球范围内设置这些规则。
我正在尝试为我的团队制定全球规则。我们在 C# 项目中使用带有 TFS 的 VS2012。我想抑制一些警告,并将一些警告视为错误。我找到了在项目级别执行此操作的方法-项目属性->构建选项卡。
但是我们有超过一百个项目的解决方案,我正在寻找一些更简单的方法来在全球范围内设置这些规则。
解决方案只是项目的(相当愚蠢的)容器。如果您在文本编辑器中打开它,您会很快看到您无法扩展它,只能添加项目/项目。
您想要的是一个或多个常见的 msbuild 文件,指定编译器/链接器/您使用的任何工具所需的所有选项,并且Import
在每个项目中都有。我们已经使用了很多年了,它非常方便(虽然部分方便可能是我们还编写了一个小工具来生成项目文件以自动导入全局属性,因此我们不必手动弄乱它们)
或者,您可以添加一个机器范围的文件,查看 $(MSBuildToolsPath)\Microsoft.CSharp.targets 以查看放置这些文件的位置。我不打算在此处复制/粘贴内容,但第一行基本上检查是否有用户定义的文件,例如 $(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\$(MSBuildThisFile)\ImportBefore,如果有,它们是在所有常见的 msbuild 内容之前全部导入。同样,Microsoft.CSharp.targets 的末尾包含在所有常见的 msbuild 内容之后导入文件的类似逻辑。