предупреждение анализа кода CA2000 которое не должно произойти
У меня небольшая проблема с предупреждением CA2000. В моем проекте, который установлен как startup project, я получаю это предупреждение, хотя оно не должно происходить.
Предыстория: Я использую 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.Надежность: в приложении method'.Main ()', система вызова.Интерфейс IDisposable.Dispose на объект "приложение", прежде чем все ссылки на него выходят за рамки нашего исследования. C:ProjectsFreelancesvnAutoTesterApplicationApplicationsAutoTesterobjx86DebugApp.g. cs 47 AutoTester
Как можно видеть, предупреждение появляется в приложении.g. cs, который является автоматически генерируемым файлом. В свойствах проекта я отключил анализ кода для автоматически генерируемых файлов. "Подавление результатов от автоматически сгенерированного кода". Поэтому такого предупреждения не должно быть, верно?
Теперь моя проблема в том, что я не могу локально подавить предупреждение потому что код будет переопределен. Кроме того, я не хочу создавать правило для этого глобально, потому что я не хочу деактивировать CA2000.
Кто-нибудь сталкивался с подобной проблемой или имел представление о том, что здесь происходит не так?
Наилучшие пожелания, Кристиан
1 ответ:
"подавление результатов из автоматически сгенерированного кода" означает, что результаты из автоматически сгенерированного кода не отображаются. Visual Studio знает, что код создается третьей стороной только в том случае, если он содержит
GeneratedCodeAttribute
(см. здесь). Очевидно, что инструмент, создавший ваш код, не добавил атрибут.Вы можете попробовать создать другой частичный класс приложения и поместить туда атрибут:
[GeneratedCode("CodeGenerator", "1.0.0.0")] public partial class App { }