2015-05-12 2 views
2

У меня есть решение в Visual Studio 2013 (код C#), в котором есть ссылка на стороннюю сборку, которую я добавил с помощью NuGet (ICSharpCode.SharpZipLib). Когда я запускаю «Анализ кода» в решении, я получаю много предупреждений, поступающих со сторонней сборки. Как сообщить VS, что мне нужен только совет по анализу кода из моего кода?В Visual Studio 2013 как ограничить анализ кода на мой код и не ссылаться на сборки?

Я уверен, что ошибки исходят из самой библиотеки, а не из-за ее использования. В общей сложности 32 вопроса, например.

CA2237: Mark ISerializable types with SerializableAttribute.

Я использую ILMerge для объединения в один исполняемый файл, вы думаете, что путают анализ кода?

+0

@jessehouwing Я уверен, что это сама библиотека. В общей сложности 32 вопроса, например. «CA2237: маркировать типы ISerializable с помощью SerializableAttribute». Я использую ILMerge для объединения в один .exe, вы думаете, что запутал анализ кода? Спасибо за исправление стиля к сообщению BTW. –

+0

Пока вы привыкаете к StackOverflow, мой следующий совет - отредактировать ваш вопрос, когда будет запрошена или полезна новая информация, например, в этом случае ваш комментарий к IlMerge. Легче следить за другими, когда они снова читают вопрос в будущем. http://stackoverflow.com/help/editing – jessehouwing

+0

Вы хотите выполнить анализ кода только в своей конфигурации отладки. Нет смысла использовать ILMerge в этой конфигурации, вам все равно в сборке Release. –

ответ

2

Невозможно сказать FxCop игнорировать пространства имен или типы в вашем коде, если он живет в одних и тех же двоичных файлах. При использовании ILMerge SharpZipLib по существу становится частью вашего кода, так как он объединен с вашей сборкой.

Чтобы получить правильные результаты, запустите FxCop на сборке, созданную до слияния.

Другие solutions will mention to put a [GeneratedCode] attribute на классах, которые вы хотите исключить, но у IlMerge нет возможности для этого, когда вы сливаетесь, так что это вам не поможет.

В Visual Studio 2015 Code Analysis работает с исходным кодом с использованием нового Roslyn Engine, который, вероятно, решит проблему, так как анализ даже до компиляции и, как следствие, не будет затронут вашим использованием IlMerge.