Когда я перетаскиваю dll в папку сборки на Vista, я получаю сообщение об ошибке «Доступ запрещен: mydll.dll». Как я могу обойти сообщение об ошибке и добавить свою dll в gac?
Как добавить dll в gac в Vista
Ответы (6)
Я предполагаю, что вы должны сделать это как администратор ... попробуйте либо отключить UAC, либо использовать gacutil.exe, чтобы добавить свою сборку.
Вы не можете найти gacutil.exe в папке Windows при использовании Vista. Он не включен из-за штуки vista "Logo Program бла-бла". Попробуйте использовать установщик Windows, чтобы добавить свои сборки в gac. Это рекомендуемый способ.
И никогда не забывайте эту традиционную огровскую пословицу: «Би сиктир гит кей кой».
Вы можете сделать это с помощью gacutil.exe. Это находится в:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
Однако он есть только в том случае, если вы установили .NET SDK (а не только .Net Redistriburable). Но вы можете скопировать его со своей машины разработчика.
Сборка (dll) также должна иметь строгое имя, если она будет находиться в GAC.
http://msdn.microsoft.com/en-us/library/wd40t7ad%28VS.80%29.aspx.
Используя командную строку, выполните следующие действия:
Откройте командную строку Visual Studio
Сначала откройте командную строку Visual Studio (для Visual Studio 2008 путь: Программы -> Visual Studio 2008 -> Инструменты Visual Studio -> Командная строка Visual Studio 2008). Все файлы, упомянутые в следующих шагах, будут созданы в Visual Studio. Путь к командной строке Studio 2008. В моем случае это C: \ Program Files \ Microsoft Visual Studio 9.0 \ VC
- Создать KeyFile sn -k keyPair.snk
- Получите MSIL для сборки ildasm SomeAssembly.dll /out:SomeAssembly.il
- Переименуйте исходную сборку, на всякий случай ren SomeAssembly.dll SomeAssembly.dll.orig
- Создайте новую сборку из вывода MSIL и вашего KeyFile ilasm SomeAssembly.il / dll /key=keyPair.snk
- Установите DLL в GAC gacutil -i SomeAssembly.dll