在Visual Studio中,我可以选择"将警告视为错误"选项,以防止在有任何警告的情况下编译代码.我们的团队使用此选项,但我们希望保留两个警告作为警告.
有一个选项可以禁止警告,但我们希望它们显示为警告,这样就不起作用了.
似乎获得我们想要的行为的唯一方法是在"特定警告"文本框中输入每个C#警告号的列表,除了我们想要作为警告的两个.
除了维护问题之外,这种方法的最大缺点是一些警告没有数字,因此无法明确引用它们.例如,"无法解析此引用.无法找到程序集'数据....'"
有谁知道更好的方法吗?
澄清那些没有立即看到为什么这是有用的人.想想大多数警告是如何工作的.他们告诉你刚才写的代码中有些东西.修复它们大约需要10秒钟,这样可以保持代码库更清洁.
"过时"警告与此截然不同.有时修复它意味着只使用新的方法签名.但是,如果整个类已经过时,并且您使用它分散了数十万行代码,那么修复它可能需要数周或更长时间.您不希望构建在那么长时间内被破坏,但您肯定希望看到有关它的警告.这不仅仅是一个假设的案例 - 这发生在我们身上.
文字"#warning"警告也是独一无二的.我经常想检查它,但我不想打破构建.
我正在编写一个验证工具,用于检查项目中引用的文件版本.我想使用MSBuild使用的相同解析过程.
例如,Assembly.Load(..)需要一个完全限定的程序集名称.但是,在项目文件中,我们可能只有"System.Xml"之类的东西.MSBuild可能使用项目的目标框架版本和其他一些启发式来决定加载哪个版本的System.Xml.
你将如何模仿(或直接使用)msbuild的装配解决过程?
换句话说,在运行时,我想获取字符串"System.Xml",以及.csproj文件中找到的其他信息,并找到msbuild将找到的相同文件.