通常我以前做的是将文件拖放到GAC文件夹中 这适用于Windows 2000& 2003年,但是当我尝试在Windows Server 2008中执行此操作时,我得到“访问被拒绝”。
执行此操作的用户是本地管理员。
我能找到的唯一参考是: Forum link
还有另一种方法可以达到这个目的吗?
注意: 我尝试以管理员身份运行资源管理器,但我得到了同样的错误。
编辑:理想情况下,无论何种解决方案都不应关闭UAC或安装任何软件开发工具包。 (因此它可以应用于生产服务器)。
编辑:有没有人对此有任何想法?我目前已经开始禁用开发中的UAC,但这在现场是不可接受的。
答案 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上,我已经部署了以下策略:
(确保您使用在服务器上拥有管理员权限的帐户登录)
您可能会发现此政策已启用。禁用它,重新启动服务器,现在你应该可以使用常规拖动和放大丢弃方法。
完成后请不要忘记再次启用此设置。
答案 3 :(得分:2)
使用“以管理员身份运行”运行命令提示符。执行命令“explorer C:\ windows \ assembly”。此窗口接受来自另一个使用“以管理员权限运行”的资源管理器中的DLL的删除。
希望有所帮助
答案 4 :(得分:1)
如果更改Win2008服务器(或Win7)上的本地安全策略,则可以使用旧的拖放方法:
答案 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.