如何在Windows Server 2008中的程序集中安装文件?

时间:2009-01-09 10:59:57

标签: .net assemblies windows-server-2008

通常我以前做的是将文件拖放到GAC文件夹中 这适用于Windows 2000& 2003年,但是当我尝试在Windows Server 2008中执行此操作时,我得到“访问被拒绝”。

执行此操作的用户是本地管理员。

我能找到的唯一参考是: Forum link

还有另一种方法可以达到这个目的吗?

注意: 我尝试以管理员身份运行资源管理器,但我得到了同样的错误。

编辑:理想情况下,无论何种解决方案都不应关闭UAC或安装任何软件开发工具包。 (因此它可以应用于生产服务器)。

编辑:有没有人对此有任何想法?我目前已经开始禁用开发中的UAC,但这在现场是不可接受的。

7 个答案:

答案 0 :(得分:21)

这是服务器2008中的UAC问题,有些人建议停止UAC,我不建议在生产服务器上使用它。答案 来使用gacutil。

需要安装SDK才能在生产服务器上运行它,exe及其配置文件可以从开发机器部署(如果需要,可以在使用后删除)。

将gacutil.exe和gacutil.exe.config放入特定于您正在使用的框架版本的WINDOWS \ Microsoft.NET \ Framework \文件夹中。

然后使用“以管理员身份运行”

启动命令行的新实例

导航到已部署gacutil的C:\ WINDOWS \ Microsoft.NET \ Framework ....文件夹

然后运行: gacutil.exe / i

希望这可以解决您的问题(它对我有用)。

祝你好运。

答案 1 :(得分:4)

转到visual studio或.NET命令提示符并键入命令:

gacutil -if "fullpathhere.dll"

更多地探索gacutil命令。 -IF表示强制安装,还有其他选项。

如果没有安装Visual Studio或.NET Framework SDK,则不会出现.NET命令提示符。在这种情况下,我认为您必须从控制面板关闭UAC以将程序集拖放到Assembly文件夹中。

答案 2 :(得分:3)

Paulo Oliveira解释的技巧有效,但并非在所有情况下都有效。在Windows Server 2008 R2上,我已经部署了以下策略:

(确保您使用在服务器上拥有管理员权限的帐户登录)

  • 打开本地安全政策(开始按钮,输入“本地”...)
  • 导航至安全设置>地方政策>安全选项
  • 找到名为用户帐户控制的政策:以管理员审批模式运行所有管理员

您可能会发现此政策已启用。禁用它,重新启动服务器,现在你应该可以使用常规拖动和放大丢弃方法。

完成后请不要忘记再次启用此设置。

(参考:http://blogs.msdn.com/b/mossbiz/archive/2010/06/10/add-an-assembly-to-the-global-assembly-cache-on-windows-server-2008-r2.aspx

答案 3 :(得分:2)

使用“以管理员身份运行”运行命令提示符。执行命令“explorer C:\ windows \ assembly”。此窗口接受来自另一个使用“以管理员权限运行”的资源管理器中的DLL的删除。

希望有所帮助

答案 4 :(得分:1)

如果更改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

答案 5 :(得分:0)

我从未在Windows Server 2008中尝试过,但您是否尝试过控制面板/管理工具/ .NET Framework 2.0配置?

答案 6 :(得分:0)

如果它是3.5 dll或更旧,拖放到开始/运行/组装。如果它是4.0 dll或更新,你应该运行gacutil然后查看windows / microsoft.net / assembly。对于prod,只需编写批处理文件并复制gacutil应用程序以进行设置。无需在产品中安装VS.