Не може да се зареди сглобката на правило

Създадох анализатор на код на живо, използвайки 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\analyzers\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
Създадох същото като nugget пакет, който имаше само една dll в него. След инсталиране на пакета nugget в проект, анализът на кода на живо работи добре. Прилагането на същото като набор от правила в компилацията причинява проблема. - person Balu Chand; 23.07.2015
comment
И това няма никакви зависимости? Какво казват LoaderExceptions? - person Patrick Hofman; 23.07.2015
comment
Опитах се да заредя асемблито с помощта на Assembly.Load, но не се получи грешка. - person Balu Chand; 23.07.2015
comment
Актуализация: При по-нататъшно разследване се опитах да заредя сборката в пакета nugget с помощта на Assembly.Load(), въпреки че зареждането беше успешно. Можех да видя грешката в сборката DefinedTypes.LoaderExceptions, {Не може да се зареди файл или сборка 'Microsoft.CodeAnalysis.Workspaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' или една от неговите зависимости. Системата не може да намери посочения файл.:Microsoft.CodeAnalysis.Workspaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35} - person Balu Chand; 23.07.2015
comment
Така че наистина липсва събрание. Трябва да разпространите и това, да поискате вече да е там или да направите зависимост от него (не знам как). - person Patrick Hofman; 23.07.2015