Как установить файлы в сборке в Windows Server 2008? - PullRequest
16 голосов
/ 09 января 2009

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

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

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

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

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

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

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

Ответы [ 7 ]

21 голосов
/ 29 апреля 2009

Это проблема UAC на сервере 2008, некоторые люди рекомендовали остановить UAC, я бы не рекомендовал это на производственном сервере. Ответ - , чтобы использовать gacutil.

Вы не должны установить SDK для запуска этого на производственном сервере, exe и его файл конфигурации могут быть развернуты с компьютера разработчика (и при желании удалены после использования).

Поместите gacutil.exe и gacutil.exe.config в папку WINDOWS \ Microsoft.NET \ Framework \, соответствующую версии используемой платформы.

Затем запустите новый экземпляр командной строки, используя «Запуск от имени администратора»

Перейдите в папку C: \ WINDOWS \ Microsoft.NET \ Framework ...., в которой вы развернули gacutil

Затем запустите: gacutil.exe / i

Надеюсь, это решит вашу проблему (она сработала для меня).

Удачи.

4 голосов
/ 09 января 2009

Перейдите в командную строку Visual Studio или .NET и введите команду:

gacutil -if "fullpathhere.dll"

изучить команду gacutil подробнее. -IF означает принудительную установку, есть и другие варианты.

Если не установлен Visual Studio или .NET Framework SDK, у вас не будет командной строки .NET. В этом случае, я думаю, вам придется отключить UAC из панели управления, чтобы перетащить сборку в папку сборки.

3 голосов
/ 01 июня 2012

Уловка, объясненная Пауло Оливейрой, работает, но не при всех обстоятельствах. На Windows Server 2008 R2 я уже развернул следующую тактику:

(убедитесь, что вы вошли в систему с учетной записью с правами администратора на сервере)

  • open Локальная политика безопасности (кнопка Пуск, введите "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)

2 голосов
/ 19 ноября 2009

Запустите командную строку с «Запуск от имени администратора». Выполните команду «Проводник C: \ Windows \ Assembly». Это окно принимает удаление DLL из другого проводника, запущенного с правами «Запуск от имени администратора».

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

1 голос
/ 19 июня 2010

Если вы измените локальную политику безопасности на сервере 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

0 голосов
/ 13 февраля 2013

Если это 3.5 dll или старше, перетащите drop в start / run / Assembly. Если это 4.0 dll или новее, вы должны запустить gacutil, а затем заглянуть в windows / microsoft.net / assembly. Для prod, просто напишите пакетный файл и скопируйте приложение gacutil для настройки. Не нужно устанавливать VS в продукт.

0 голосов
/ 09 января 2009

Я никогда не пробовал это в Windows Server 2008, но вы пробовали из Панели управления / Администрирование / Конфигурация .NET Framework 2.0?

...