我有一个CA2000警告的小问题。在我设置为启动项目的项目中,我收到了这个警告,尽管它不应该发生。代码分析警告CA2000不应该出现
背景:我在Visual Studio 2010中使用.NET 3.5中的项目。启动项目是一个WPF应用程序。
在类应用程序如下所示:
public partial class App : System.Windows.Application {
/// <summary>
/// Application Entry Point.
/// </summary>
[System.STAThreadAttribute()]
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public static void Main() {
AutoTester.App app = new AutoTester.App();
app.Run();
}
}
警告说:
警告1个CA2000:Microsoft.Reliability:在方法 'App.Main()',叫了System.IDisposable。在所有对它的引用超出范围之前,在对象'app'上处理。 C:\ Projects \ Freelance \ svn \ AutoTester \ Application \ Applications \ AutoTester \ obj \ x86 \ Debug \ App.g.cs 47 AutoTester
可以看到,警告发生在App.g.cs中是一个自动生成的文件。在项目属性中,我已经停用了自动生成文件的代码分析。 “从自动生成的代码中获得结果”。因此,这个警告不应该发生,对吧?
现在我的问题是,我不能在本地压制警告,因为代码将被重写。另外,我不想在全球范围内制定规则,因为我不想停用CA2000。
有没有人遇到类似的问题或任何想法这里怎么了?
祝, 基督教
啊听起来很有趣。然而,这个文件是由VisualStudio创建的,这仍然很奇怪。这是当你创建一个新的项目(WPF应用程序)时会发生什么。我认为微软应该使用GeneratedCodeAttribute。我将尝试创建另一个WPF项目并查看会发生什么。 – Christian 2011-02-15 09:40:15