Подтвердить что ты не робот

Как установить файлы в сборке в Windows Server 2008?

Как правило, я использовал перетаскивание файлов в папку GAC.
Это работает в Windows 2000 и 2003, однако, когда я пытаюсь сделать это в Windows Server 2008, я получаю "Доступ запрещен".

Пользователь, который делает это, является локальным администратором.

Единственная ссылка, которую я могу найти, это: Ссылка форума

Есть ли другой способ достичь этого?

Примечание: Я попробовал запустить проводник в качестве администратора, но я получаю ту же ошибку.

Изменить: в идеале независимо от того, что там есть, не следует отключать UAC или устанавливать любой комплект для разработки программного обеспечения. (Таким образом, его можно применять к серверам производства).

Изменить: есть ли у кого-нибудь больше мыслей об этом? В настоящее время я ушел с отключением UAC в dev, но это неприемлемо в прямом эфире.

4b9b3361

Ответ 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 из другого проводника, выполненного с правами "Запуск от имени администратора".

Надеюсь, что это поможет

Ответ 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.