Проблема регистрации dll-Доступ запрещен

при попытке запустить regasm в Win2008 Server:

regasm "C:Program FilesFooProgBar.dll" /tlb:"C:Program FilesFooProgBar.tlb"

Я получаю следующую ошибку:

RegAsm: error RA0000: произошла ошибка при сохранении экспортированного библиотека типов: Доступ запрещен. (Исключение из HRESULT: 0x80070005 (E_accessdenied можно))

что это значит

10 ответов


учетная запись, под которой вы запускаете regasm, не имеет прав на запись C:\Program Files\FooProg\ и именно поэтому regasm не удается написать .tlb. Запустите regasm под учетной записью с правами администратора.


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

  1. остановите IIS и повторите попытку регистрации:
  2. остановить IIS, удалить .tlb-файлы из любого места, где находится ваш DLL-файл, а затем попробуйте зарегистрироваться снова.
  3. закройте все инструменты IE/IIS/DEV (они могут хранить некоторые файлы в состоянии только для чтения), а затем попытайтесь зарегистрировать свою DLL

используемой учетной записи необходимы права администратора.


эта ошибка наиболее часто возникает, потому что вы не можете удалить соответствующий .файл tlb. Два других предложения: 1. Остановите IIS и повторите попытку регистрации: 2. Остановите IIS, удалите .tlb-файлы из любого места, где находится ваш DLL-файл, а затем попробуйте зарегистрироваться снова.


в моем случае обе .dll и .файл tlb был ReadOnly удаление проверки ReadOnly работал для меня, также я закрыл процесс, который использовал его как (Visual Studio IDE).


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


скорее всего, вы получаете ошибку из-за процесса, имеющего крючки.dll или .файл tlb, который вы пытаетесь зарегистрировать или скопировать. Перезагрузите компьютер и повторите попытку или удалите его .TLB-файл и перестроить его, чтобы убедиться, что вы можете получить к нему доступ.


У меня был бродячий dllhost.процесс exe. Убийство позволило мне удалить его .файл tlb и перерегистрация. Другие подходы (остановка IIS, остановка пулов приложений, закрытие всех IDE) не имели никакого эффекта.


сначала мне пришлось удалить все пробелы в пути к моей dll, прежде чем regasm нашел файл dll.

но когда я попытался с кавычками вокруг целей, это все равно сработало.


Win 7 (Если вы уже являетесь администратором) - вы можете включить разрешения для файла, щелкнув правой кнопкой мыши и получив доступ к свойствам, вкладке "Безопасность", нажмите "правка", проверьте разрешение, например, полный контроль.