Как добавить dll в gac в Vista

Когда я перетаскиваю dll в папку сборки на Vista, я получаю сообщение об ошибке «Доступ запрещен: mydll.dll». Как я могу обойти сообщение об ошибке и добавить свою dll в gac?


person Serhat Ozgel    schedule 09.09.2008    source источник


Ответы (6)


Я предполагаю, что вы должны сделать это как администратор ... попробуйте либо отключить UAC, либо использовать gacutil.exe, чтобы добавить свою сборку.

person Jonas    schedule 09.09.2008
comment
GacUtil поставляется с Visual Studio и находится здесь: C: \ Program Files \ Microsoft SDKs \ Windows \ v7.0A \ bin для Windows 7. Дополнительные сведения см. В этом ответе: stackoverflow.com/questions/3397479/where-is-gacutil-exe - Инструкции по использованию GacUtil здесь: msdn.microsoft.com/en-us/library/ex0ss12c (v = VS.90) .aspx - person Solburn; 03.06.2011
comment
Запуск от имени администратора не помогает. Похоже, проводник Windows больше не поддерживает перетаскивание dll в папку сборки. Вам придется использовать gacutil. - person Tor Haugen; 26.10.2012
comment
Я видел, что некоторые машины с Windows server 2008 R2 позволяют это .. как это было включено, я не знаю - person gdbdable; 08.07.2013

Используйте команду runas для запуска gacutil как пользователь с правами локального администратора для регистрации dll в GAC .

person Gulzar Nazim    schedule 09.09.2008

Вы не можете найти gacutil.exe в папке Windows при использовании Vista. Он не включен из-за штуки vista "Logo Program бла-бла". Попробуйте использовать установщик Windows, чтобы добавить свои сборки в gac. Это рекомендуемый способ.

И никогда не забывайте эту традиционную огровскую пословицу: «Би сиктир гит кей кой».

person aksangrav    schedule 10.09.2008

Вы можете сделать это с помощью gacutil.exe. Это находится в:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727

Однако он есть только в том случае, если вы установили .NET SDK (а не только .Net Redistriburable). Но вы можете скопировать его со своей машины разработчика.

person dummy    schedule 16.09.2008

Сборка (dll) также должна иметь строгое имя, если она будет находиться в GAC.

http://msdn.microsoft.com/en-us/library/wd40t7ad%28VS.80%29.aspx.

person Community    schedule 11.10.2008

Используя командную строку, выполните следующие действия:

Откройте командную строку 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

  1. Создать KeyFile sn -k keyPair.snk
  2. Получите MSIL для сборки ildasm SomeAssembly.dll /out:SomeAssembly.il
  3. Переименуйте исходную сборку, на всякий случай ren SomeAssembly.dll SomeAssembly.dll.orig
  4. Создайте новую сборку из вывода MSIL и вашего KeyFile ilasm SomeAssembly.il / dll /key=keyPair.snk
  5. Установите DLL в GAC gacutil -i SomeAssembly.dll
person Peter T.    schedule 20.06.2013