.net - 如何从服务器 GAC 中删除 .NET 程序集 DLL

标签 .net visual-studio-2013 iis-7 gac

我正在尝试将包含 Oracle ODP.NET 库的 VS2013 项目部署到 Windows 2008 IIS 服务器,并收到错误“无法从程序集“Oracle.ManagedDataAccess,版本 = 4.121”加载类型“OracleInternal.Common.ConfigBaseClass”。 2.0.'”从我在网上找到的内容来看,这是由项目的 ODP 与 GAC 中具有 ODP 的服务器之间的冲突引起的。然后是从 GAC 中删除 ODP 的说明。服务器上的 GAC 中有 Oracle DLL。我们 99% 肯定 DLL 是在不久前尝试在该机器上设置 Oracle 时在 GAC 中结束的,因为该服务器上的其他项目不应该使用 Oracle。因此,我们应该安全地将其从 GAC 中删除。

但是 gacutil.exe 只在 Visual Studio 中可用,我们不允许将 Visual Studio 安装到服务器上。

那么我们如何在服务器上没有 gacutil.exe 的情况下从 GAC 卸载 Oracle DLL?我们可以从目录中删除它们吗?或者我们是否需要将 gacutil.exe 从我的工作站复制到服务器才能执行此操作?还是有另一种方法? (最好不涉及注册表编辑)

任何建议表示赞赏,谢谢。

最佳答案

如果您具有管理员权限,您应该可以通过使用 Windows 界面来执行此操作,如下所示。

  • 导航到位于 %systemdrive%\Windows\Assembly 的 GAC。
  • 右键单击应用程序中包含的每个程序集文件,单击“卸载”,然后单击"is"以确认

  • 如果您无法通过上述方法卸载 dll,则可以通过打开运行命令并输入下面的路径并按 Enter 来访问 GAC 文件夹,而无需特殊 View 。
    C:\Windows\assembly\GAC_MSIL
    

    这将允许您作为普通文件夹与 GAC 中的所有文件进行交互。

    关于.net - 如何从服务器 GAC 中删除 .NET 程序集 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33355114/

    相关文章:

    c++ - 没有编译的可执行文件

    asp.net web 应用程序启动时间。如何优化?

    ssl - 为 IIS7 使用 BAT 文件注册 SSL 绑定(bind)

    javascript - 如何使用 Visual Studio 2013 和 Node Tools NTVS 调试 node.js 应用程序

    .net - 如何使用 Socket 和 Reactive 扩展(Rx)从连接的客户端套接字获取接收到的消息缓冲区

    c# - 当类型不同但兼容比较值时,如何检查值类型装箱对象的相等性

    c# - 从 C# 代码以编程方式启动/停止 tomcat webapps

    c++ - 计算器的读/写文件 : atof error

    Asp.NET Web API - 405 - 不允许用于访问此页面的 HTTP 动词 - 如何设置处理程序映射

    c# - 为什么我通过 C# 创建的这个 javascript 变量只更新一次?