相关疑难解决方法(0)

如何抑制特定的MSBuild警告

从命令行运行MSBuild时,有没有办法禁用特定的MSBuild警告(例如MSB3253)?我的构建脚本以下列方式调用msbuild.exe:

msbuild.exe MySolution.sln /t:Rebuild /p:Configuration=Release
Run Code Online (Sandbox Code Playgroud)

我发现我可以使用msbuild.exe的另一个参数来抑制C#警告(例如CS0618):

msbuild.exe MySolution.sln /t:Rebuild /p:Configuration=Release /p:NoWarn=0618
Run Code Online (Sandbox Code Playgroud)

但是,此方法不适用于MSBuild警告.也许还有另一个魔法属性可以设定?

我正在使用.NET 3.5和VS2008.

msbuild command-line

92
推荐指数
6
解决办法
4万
查看次数

如何使用MSBuild抑制所有警告

我如何抑制所有警告(或至少尽可能多的警告,因为那些带有MSB前缀的警告无法抑制如何抑制特定的MSBuild警告)?

msbuild command-line

25
推荐指数
3
解决办法
2万
查看次数

FxCop:异步方法的抑制消息

我正在使用FxCopCmd工具进行静态代码分析.由于我们已经拥有庞大的代码库,因此我们使用FxCop附带的baseline.exe工具为现有问题奠定了基础.

我观察到如果我向我的C#类添加一个新方法,那么GlobalSuppression.cs文件中的一些抑制消息就会停止工作,而我得到的问题是我没有触及的代码.

例:

namespace ConsoleApplication1
{
    class Program
    {
        public async Task<string> method1()
        {
            string a = "";
            a.Equals("abc", StringComparison.InvariantCultureIgnoreCase);
            return a;
        }

        static void Main(string[] args)
        {

        }        
    }
}
Run Code Online (Sandbox Code Playgroud)

这会引发以下错误:

CA1031:Microsoft.Design:修改'Program.d__0.MoveNext()'以捕获比'Exception'更具体的异常或重新抛出异常

为了抑制'CA1309 UseOrdinalStringComparison'问题,我在GlobalSuppression.cs文件中添加了以下抑制消息

[module:SuppressMessage("Microsoft.Globalization","CA1309:UseOrdinalStringComparison",Scope ="member",Target ="ConsoleApplication1.Program.d__0.MoveNext()",MessageId ="System.String.Equals(System.String, System.StringComparison)",Justification =""))]

但是如果我在类中再添加一个方法,那么这个抑制消息就会停止工作.这是因为method1是异步的,所以在编译的代码中创建了一个新类(参考这个)(<method1>d__0在第一种情况下).但是当我在method1之前添加另一个方法时,则会在编译代码中创建新类<method1>d__1.因此,不应用抑制消息,并且FxCop再次开始在代码中显示错误.

有没有办法永久抑制异步方法的FxCop错误?

.net c# fxcop fxcopcmd async-await

6
推荐指数
1
解决办法
395
查看次数

标签 统计

command-line ×2

msbuild ×2

.net ×1

async-await ×1

c# ×1

fxcop ×1

fxcopcmd ×1