Не удалось загрузить сборку правил

Я создал анализатор живого кода, используя шаблон sdk в Visual Studio 2015 RC (https://msdn.microsoft.com/en-us/magazine/dn879356.aspx). Мне удалось создать из него пакет nuget и установить его в библиотеку классов (создано с помощью VS 2015 RTM). Анализатор живого кода работает как шарм.

Я попытался создать набор правил для одного и того же и попытался интегрировать его в сборку проекта, изменив свойство проекта.

Проблема началась оттуда. Я получаю сообщение ниже

1> Выполнение анализа кода ... 1> MSBUILD: ошибка: CA0053: невозможно загрузить сборку правил 'c: \ myprojects \ classlibrary1 \ packages \ eyanalyser.1.0.0.7 \ tools \ analysisers \ eyanalyser.dll': невозможно загрузить один или несколько запрошенных типов. Получите свойство LoaderExceptions для получения дополнительных сведений. 1> MSBUILD: предупреждение: CA0064: анализ не был выполнен, поскольку указанный набор правил не может быть загружен или не содержит правил анализа управляемого кода.

 <RuleSet Name="Project WizBang Rules" ToolsVersion="1.1">
 <RuleHintPaths>
 <Path>C:\MyProjects\ClassLibrary1\packages\EYAnalyser.1.0.0.7\tools\analyzers</Path>
 </RuleHintPaths>
 <Rules AnalyzerId="EYAnalyser" RuleNamespace="EYAnalyser">
 <Rule Id="3.4 NameSpace" Action="Warning" />
 <Rule Id="4.2 Class" Action="Warning" />
 <Rule Id="4.6 Field Naming" Action="Warning" />
 </Rules>
 </RuleSet> '''

person Balu Chand    schedule 23.07.2015    source источник


Ответы (1)


Невозможно загрузить один или несколько запрошенных типов. Получите свойство LoaderExceptions для получения дополнительных сведений.

Это выброшенное исключение. Что вам следует сделать, так это исследовать LoaderExceptions, чтобы увидеть, что именно пошло не так. Я предполагаю, что в созданном вами пакете отсутствует сборка, поэтому он загружает сборку A, но A нуждается в B, а B отсутствует. Вы должны исправить это, и тогда проблема будет решена.

person Patrick Hofman    schedule 23.07.2015
comment
Я создал то же самое, что и пакет самородка, в котором была только одна dll. После установки пакета слепков в проект анализ живого кода работает нормально. Применение того же набора правил в сборке вызывает проблему. - person Balu Chand; 23.07.2015
comment
И у этого нет никаких зависимостей? Что говорят LoaderExceptions? - person Patrick Hofman; 23.07.2015
comment
Я попытался загрузить сборку с помощью Assembly.Load, но без ошибок. - person Balu Chand; 23.07.2015
comment
Обновление: при дальнейшем исследовании я попытался загрузить сборку в пакет слепков с помощью Assembly.Load (), хотя загрузка прошла успешно. Я мог видеть ошибку в сборке DefinedTypes.LoaderExceptions, {Не удалось загрузить файл или сборку Microsoft.CodeAnalysis.Workspaces, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = 31bf3856ad364e35 или одну из его зависимостей. Система не может найти указанный файл.: Microsoft.CodeAnalysis.Workspaces, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = 31bf3856ad364e35} - person Balu Chand; 23.07.2015
comment
Значит, действительно не хватает сборки. Вы должны распространять и это, требовать, чтобы он уже был, или зависеть от него (не знаю, как). - person Patrick Hofman; 23.07.2015