C #: не могу найти файл сборки - PullRequest
0 голосов
/ 27 апреля 2010

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

Если я отлаживаю решение, нужно ли помещать копию определенных файлов сборки в другие места?

EDIT:

В моем скомпилированном решении все библиотеки DLL (включая проприетарные) помещаются в каталог приложения, и он отлично работает. Но я пытаюсь понять, где файлы должны делать для отладки решения.

Ответы [ 4 ]

1 голос
/ 27 апреля 2010

Поместите рассматриваемую сборку в 1) тот же каталог, или 2) в GAC, или 3) используйте AssemblyBinding, чтобы определить конкретный путь к .NET framework.

Ссылка MSDN: использование AssemblyBinding для определения ссылочного пути сборки

0 голосов
/ 27 апреля 2010

Если они есть в списке ссылок, попробуйте щелкнуть правой кнопкой мыши ссылку на проблему в обозревателе решений и выбрать «Свойства». Существует одно свойство, называемое copy local. Убедитесь, что это правда. Затем, когда вы соберете, копия этого dll будет в вашей папке bin.

0 голосов
/ 27 апреля 2010

Вы можете добавить обработчик событий к AssemblyResolve , чтобы узнать, какую библиотеку он пытается загрузить.Некоторые примеры кода и идеи могут быть получены из этого вопроса .

Обновление
Чтобы выяснить, какое место для вашего проекта является лучшим, вам следует взятьпосмотрите Как руководство по сборке находит руководство.Также, чтобы получить live view о том, где фреймворк ищет необходимую вам dll, вы можете использовать ProcessMonitor , чтобы увидеть, где она пытается ее перехватить.

0 голосов
/ 27 апреля 2010

Думаю, вы забыли добавить ссылку на сборку в проект.

Добавьте ссылку и повторите попытку.

Подробнее здесь -> http://msdn.microsoft.com/en-us/library/7314433t%28VS.80%29.aspx

...