16

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

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

我能找到的唯一参考是: 论坛链接

还有另一种方法可以实现这一目标吗?

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

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

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

4

7 回答 7

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

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

祝你好运。

于 2009-04-29T10:21:10.887 回答
4

转到 Visual Studio 或 .NET 命令提示符并键入命令:

gacutil -if "fullpathhere.dll"

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

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

于 2009-01-09T11:02:52.520 回答
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 )

于 2012-06-01T11:16:12.503 回答
2

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

希望能帮助到你

于 2009-11-19T11:04:59.443 回答
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

于 2010-06-18T23:28:14.413 回答
0

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

于 2009-01-09T11:04:58.957 回答
0

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

于 2013-02-13T14:19:43.100 回答