【问题标题】:Windows Azure SDK 2.0 and old runtime assemblies in GACGAC 中的 Windows Azure SDK 2.0 和旧运行时程序集
【发布时间】:2013-05-03 17:02:50
【问题描述】:

我已经安装了 Windows Azure SDK 2.0 并开始迁移我的项目。安装 2.0 后,我从程序和功能(我的环境是 Win8 Pro + VS2012 SP2)中卸载了 2012-10(以前的版本)的所有项目。

我预计,当我打开引用旧版本 Microsoft.WindowsAzure.ServiceRuntime 的项目时,我会看到损坏的引用,因此我可以轻松找到它们并替换为最新版本。但是,旧版本的 Microsoft.WindowsAzure.ServiceRuntime 仍保留在 GAC(1.7 和 1.8)中,因此项目仍可编译。尝试从 GAC 卸载旧程序集时,访问被拒绝。

我相信我能够以某种方式移除它们,但我的问题是 - 它们是故意留在那里的吗?我需要这些旧版本吗?

【问题讨论】:

    标签: azure sdk gac


    【解决方案1】:

    如果您没有依赖旧版本的项目,请随意删除。您是否尝试过卸载旧的 SDK。如果你有,并且旧的程序集仍然存在,那么:

    您应该能够通过执行以下操作来删除旧版本:

    1. 打开提升的 cmd 提示符(以管理员身份运行)
    2. gacutil.exe -u microsoft.WindowsAzure.ServiceRuntime.dll

    【讨论】:

    • 正如我所写的,我卸载了在“程序和功能”中找到的与以前版本的 Azure 相关的所有内容。但是,程序集 1.7 和 1.8 留在 GAC 中。尝试在命令行中从 GAC 卸载它们会报告 无法卸载:一个或多个应用程序需要程序集。由于我找不到任何相关的安装程序,我想我可以按照KB8873195 中的说明清除注册表,然后从 GAC 中删除它们。只是想知道为什么没有使用以前的 SDK 卸载它们?
    • 它们可能没有被安装删除,原因与您无法卸载它们的原因相同,它们正被一个或多个应用程序使用。您找到的链接可能是进行此链接的正确方法。从提升的提示符运行是否绕过“拒绝访问”?
    • 实际上这些程序集没有被另一个应用程序使用。它们已由安装程序(Azure SDK 1.7,resp.1.8)安装,这增加了它们的引用计数,并且在卸载期间引用计数器没有减少。可能是安装顺序(首先安装了较新版本,然后删除了以前的版本)或安装程序中的一些错误..“拒绝访问”来自资源管理器,因此使用 cmd 作为管理员有所帮助。我的问题不是如何删除程序集,而是它是否安全(或者新 SDK 是否有某些理由保留它)。无论如何,我删除了它。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    相关资源
    最近更新 更多