Доступ запрещен при запуске программы на C # с использованием справочной библиотеки DLL из общей папки - PullRequest
0 голосов
/ 16 июля 2009

Я занимаюсь разработкой двух проектов, которыми управляет ClearCase, а это значит, что для Windows они выглядят так, как будто они находятся в общей сетевой папке.

Первый проект - это DLL, написанная с использованием VS 2003 на управляемом C ++ и предназначенная для предоставления управляемого интерфейса для некоторых устаревших DLL, написанных на VS2003 C ++.

Второй проект написан на C # (.NET 3.5, VS2008) и включает библиотеку DLL, сгенерированную первым проектом, в качестве ссылки для использования устаревших библиотек DLL через оболочку.

Теперь, когда я пытаюсь запустить проект C #, я получаю следующее сообщение об ошибке:

FileLoadException не обработано

Не удалось загрузить файл или сборку '(моя управляемая оболочка c ++), Version = (версия число), культура = нейтральная, PublicKeyToken = null 'или один из его зависимостей. Доступ запрещен.

Если посмотреть на детали, это исключение System.Io.FileLoadException, содержащее внутреннее исключение System.UnauthorizedAccessException («Доступ запрещен. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED))»

Теперь, когда я копирую проект C # на локальный жесткий диск, все работает нормально, даже если управляемый проект C ++ остается на сетевом диске.

У меня раньше были проблемы с правами доступа к сетевым дискам, но они исчезли при обновлении до .NET 3.5 SP1. Я также попытался изменить Набор разрешений для группы кодов All_Code на «Полное доверие» для .Net Configuration 1.1. и 2.0, как предложено в интернете, но это тоже не помогло. Кстати, я также проверил, доступна ли DLL только для чтения, но это не так.

Заранее спасибо за любую помощь!

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

1 Ответ

0 голосов
/ 16 июля 2009

похоже, вам нужно установить политику безопасности доступа к коду, чтобы разрешить это местоположение

http://msdn.microsoft.com/en-us/library/930b76w0(VS.71).aspx

Следуйте инструкциям на 1/3 пути вниз по этой статье (со скриншотами) :-) http://www.15seconds.com/Issue/040121.htm

...