Сборка проекта с RDLC не может найти пользовательскую сборку - PullRequest
9 голосов
/ 11 апреля 2011

Я три дня рвал на себе волосы, пытаясь получить отчет RDLC для сборки в VS2010. Я хочу получить доступ к пользовательской сборке из другого проекта в том же решении в выражении для элемента Text в подотчете. В проекте, содержащем RDLC, есть ссылка на сборку, и я добавил ссылку на DLL сборки в свойствах вложенного отчета, но при сборке я получаю сообщение об ошибке, которое не может найти файл:

Ошибка при загрузке модуля кода: «CCCArchive, версия = 2.0.847.11068, культура = нейтральная, PublicKeyToken = ноль». Подробности: не удалось загрузить файл или сборку 'CCCArchive, версия = 2.0.847.11068, культура = нейтральная, PublicKeyToken = null' или одна из ее зависимостей. Система не может найти указанный файл.

В файле RDLC, по-видимому, нет информации о пути к сборке в XML, и я попытался поместить копии сборки в папку bin \ Debug в проекте, содержащем RDLC, и в ту же папку, что и RDLC, безуспешно.

Судя по тому, что я мало смог найти по этому поводу, похоже, мне, возможно, придется зарегистрировать сборку в GAC, чтобы заставить сборку работать, но я не могу найти какого-либо прямого подтверждения этому и положить его в GAC просто для запуска сборки будет большой неприятностью.

Я что-то упустил?

... Джим Хансен

Ответы [ 4 ]

11 голосов
/ 02 июля 2011

Одно возможное решение, которое сработало для меня, описано в этом посте:

Службы Reporting Services - ошибка пользовательского отчета (ошибка при загрузке модуля кода: MarketingPilot.Framework.dll)

Я скопировал сборку, указанную в сообщении об ошибке, в эту папку:

C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies

При этом я мог без проблем отладить приложение.:)

4 голосов
/ 31 июля 2014

Принятый ответ хорошо работал для меня в Visual Studio 2012, но это же решение не работало в Visual Studio 2013. Вместо этого я последовал предложению этого поста и скопировал dll здесь:

C:\Program Files (x86)\MSBuild\12.0\Bin
2 голосов
/ 05 февраля 2016

После ответа @ rockariotphobia для visual studio 2015 используйте:

C:\Program Files (x86)\MSBuild\14.0\Bin
0 голосов
/ 05 ноября 2015

Я пытался сделать эту работу в течение нескольких дней, наконец, сделайте это:

  1. сначала вы должны строго набрать свою dll https://msdn.microsoft.com/en-us/library/xc31ft41(v=vs.110).aspx

  2. зарегистрируйте его в GAC с помощью Gacutil.exe (вы должны делать это каждый раз, когда обновляете свою dll).

Теперь это будет работать ... возможно, после этогоМне удалось найти сборку, но у меня возникли проблемы с безопасностью: «Произошла ошибка во время локальной обработки отчета».... "Попытка прозрачного метода безопасности ...".

Я использую .NET 4.5, загружаю отчет из winform.

Чтобы решить эту проблему в AssemblyInfo, мне пришлось добавить2 атрибута:

            [assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)]

            [assembly: System.Security.AllowPartiallyTrustedCallers]

, затем просто сохраните и переустановите dll в GAC.

Надеюсь, эта информация кому-нибудь поможет.

С уважением,

Каридад

...