Как установить файлы в сборке в Windows Server 2008?
Как правило, я использовал перетаскивание файлов в папку GAC.
Это работает в Windows 2000 и 2003, однако, когда я пытаюсь сделать это в Windows Server 2008, я получаю "Доступ запрещен".
Пользователь, который делает это, является локальным администратором.
Единственная ссылка, которую я могу найти, это:
Ссылка форума
Есть ли другой способ достичь этого?
Примечание:
Я попробовал запустить проводник в качестве администратора, но я получаю ту же ошибку.
Изменить: в идеале независимо от того, что там есть, не следует отключать UAC или устанавливать любой комплект для разработки программного обеспечения. (Таким образом, его можно применять к серверам производства).
Изменить: есть ли у кого-нибудь больше мыслей об этом? В настоящее время я ушел с отключением UAC в dev, но это неприемлемо в прямом эфире.
Ответы
Ответ 1
Это проблема UAC на сервере 2008 года, некоторые люди рекомендовали остановить UAC, я бы не рекомендовал это на производственном сервере. Ответ - использование gacutil.
Вам нужно не установить SDK для запуска этого на производственном сервере, exe и его файл конфигурации могут быть развернуты с машины разработки (и удалены после использования, если это необходимо).
Поместите gacutil.exe и gacutil.exe.config в папку WINDOWS\Microsoft.NET\Framework \, относящуюся к версии используемой структуры.
Затем запустите новый экземпляр командной строки, используя команду "Запуск от имени администратора"
Перейдите в папку C:\WINDOWS\Microsoft.NET\Framework...., в которой вы развернули gacutil
Затем выполните:
gacutil.exe/i
Надеюсь, это должно решить вашу проблему (это сработало для меня).
Удачи.
Ответ 2
Перейдите в командную строку Visual Studio или .NET и введите команду:
<до > gacutil -if "fullpathhere.dll"
исследуйте команду gacutil больше. -IF означает, что установка выполняется принудительно, есть и другие варианты.
Если не установлен Visual Studio или .NET Framework SDK, тогда у вас не будет командной строки .NET. В этом случае, я думаю, вам придется отключить UAC с панели управления, чтобы перетащить сборку в папку Assembly.
Ответ 3
Трюк, объясненный Пауло Оливейрой, работает, но не при любых обстоятельствах. В Windows Server 2008 R2 я уже использовал следующую тактику:
(убедитесь, что вы вошли в систему с учетной записью с правами администратора на сервере)
- открыть Локальная политика безопасности (кнопка "Пуск", введите "local"...)
- выберите "Параметры безопасности" > "Локальные политики" > "Параметры безопасности"
- найдите политику Контроль учетных записей пользователей: запустите всех администраторов в режиме одобрения администратором
Вероятно, вы найдете, что эта политика включена. Отключите его, перезагрузите сервер, и теперь вы сможете использовать обычный метод перетаскивания.
Не забудьте включить эту настройку снова, когда закончите.
(ref: http://blogs.msdn.com/b/mossbiz/archive/2010/06/10/add-an-assembly-to-the-global-assembly-cache-on-windows-server-2008-r2.aspx)
Ответ 4
Запустите командную строку с надписью "Запуск от имени администратора". Выполнить команду "проводник C:\windows\assembly". В этом окне вы можете сбрасывать DLL из другого проводника, выполненного с правами "Запуск от имени администратора".
Надеюсь, что это поможет
Ответ 5
Если вы измените локальную политику безопасности на сервере Win2008 (или Win7), вы можете использовать старый метод перетаскивания:
http://blogs.msdn.com/b/mossbiz/archive/2010/06/10/add-an-assembly-to-the-global-assembly-cache-on-windows-server-2008-r2.aspx
Ответ 6
Я никогда не пробовал это в Windows Server 2008, но вы пробовали из Control Panel/Administrative tools/.NET Framework 2.0 Configuration?
Ответ 7
Если его 3.5 dll или старше, перетащите его в start/run/assembly. Если это 4.0 dll или новее, вы должны запустить gacutil, а затем посмотреть в windows/microsoft.net/assembly. Для prod просто напишите командный файл и скопируйте приложение gacutil для настройки. Нет необходимости устанавливать VS в prod.