2009-01-09 99 views
16

通常,我以前的操作是将文件拖放到GAC文件夹中。
这适用于Windows 2000 & 2003,但是当我尝试在Windows Server 2008中执行此操作时,我得到'访问被拒绝'。如何在Windows Server 2008的程序集中安装文件?

这样做的用户是本地管理员。

我可以找到这个问题的唯一参考是: Forum link

有另一种方式来实现这一目标?

说明: 我尝试以管理员身份运行资源管理器,但出现同样的错误。

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

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

回答

21

这是服务器2008年的UAC问题,有人建议停止UAC,我不会在生产服务器上推荐这个。答案使用gacutil。

你做不是需要安装SDK在生产服务器上运行这个,exe和它的配置文件可以从开发机器上部署(如果需要,可以在使用后除去)。

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

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

找到C命令行的新实例:\ WINDOWS \ Microsoft.NET \其中已部署GACUTIL

框架....文件夹然后运行: gacutil.exe /我

希望这应该可以解决您的问题(它已为我工作)。

好运。

4

转至Visual Studio或.NET命令提示和输入命令:

 
gacutil -if "fullpathhere.dll" 

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

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

+0

感谢您的反馈,但Visual Studio永远不会安装在这些服务器上。我会研究gacutil方法。 – Bravax 2009-01-09 11:09:32

+0

那当然有更好的方法呢?那并不意味着每次我们需要更新GAC时,我们都需要关闭UAC,重新启动进行更改,然后重新打开并重新启动? – Bravax 2009-01-09 11:28:22

+0

是的,更好的方法是安装.NET框架SDK。普通用户不会使用GAC,对吧?所以,如果你想玩GAC,你需要拥有这样的权限。 .NET命令提示符只是为您提供这些权限。 – Aamir 2009-01-09 11:56:30

0

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

2

以“以管理员身份运行”运行命令提示符。执行命令“explorer C:\ windows \ assembly”。这个窗口从“以管理员身份运行权限执行另一个探险接受的DLL的下降。

希望它可以帮助

3

由保罗·奥利维拉解释把戏工作,但不是在所有情况下,在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

0

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

相关问题