Невозможно загрузить указанную библиотеку - PullRequest
3 голосов
/ 08 февраля 2009

Я получаю эту ошибку в Visual Studio 2008 при разработке проекта веб-приложения ASP.NET.

Невозможно загрузить указанную библиотеку 'Path-to-DotNetNuke \ bin \ file.dll': процесс не может получить доступ к файлу, потому что он используется другим процессом.

Это проект DotNetNuke с несколькими модулями. IIS загружает все сборки из папки / bin в корне приложения.

Проекты в решении находятся в соответствующих папках / DesktopModules / ProjectName и компилируются в папку bin в рамках проекта.

Ошибка возникает после того, как я скомпилирую решение и скопирую все библиотеки проектов в / bin со скриптом. Visual Studio не позволяет мне перекомпилировать, но если я перезапущу его, все работает нормально Это действительно раздражает при перекомпиляции и тестировании всего решения. Вы должны перезапускать Visual Studio между каждой перекомпиляцией.

Не удалось найти блокировку файлов в Process Explorer, когда Visual Studio показывает эту ошибку.


[ОБНОВЛЕНИЕ] Существует старый документ MSDN , в котором говорится, что не следует собирать все библиотеки DLL в одну папку, если вы ссылаетесь на библиотеку DLL размером более 64 КБ. В частности, в документе говорится:

Это вызывает сбой процесса сборки с ошибками блокировки файла, когда ссылка на сборку превышает 64 КБ в размер.

У нас есть ссылки на библиотеки DLL размером более 64 КБ в папке / bin, и копирование перекомпилированных библиотек DLL, по-видимому, вызывает это, по крайней мере, с помощью фонового компилятора VB IDE.

1 Ответ

2 голосов
/ 08 февраля 2009

Ошибка возникает после того, как я скомпилирую решение и скопирую все библиотеки проектов в / bin со скриптом. Visual Studio не позволяет мне перекомпилировать, но если я перезапущу его, все работает нормально.

Я бы предложил установить выходной каталог каждого из ваших проектов в качестве каталога bin веб-сайта DotNetNuke. Это поможет вам полностью избежать ручного копирования файлов.

Чтобы установить выходной каталог вашего проекта: Щелкните правой кнопкой мыши ваш проект в обозревателе решений и выберите свойства. Выберите вкладку сборки, выберите «Все конфигурации» (вверху) и установите «Путь к выводу» на «..\..\bin» (внизу). Предполагается, что файл вашего проекта находится в его типичном месте в домашнем каталоге модуля (например, DesktopModules / YourModule / YourProject.csproj), в противном случае вы можете перейти в каталог bin вашего веб-сайта с помощью соседней кнопки обзора.

...