2010-10-10 64 views
6

我有一个程序集,它有很多旧的注册版本。取消注册.net程序集的旧版本

我唯一的dll是最后一个。

如何取消注册程序集的所有版本?

谢谢。

编辑:我想在运行时执行此操作,所以我想要regasm -u ...或其他脚本-y解决方案。

回答

3

编辑:我假设有关联注册表项,您尝试删除。

Regasm可以输出.reg文件。

您可以使用/ REGFILE选项 生成包含 注册表项,而不是直接使 更改注册表.reg文件。您可以通过导入.reg文件和 注册表编辑器工具(Regedit.exe)来更新注册表 上的注册表。

如果你想在运行时卸载旧版本,想必你可以:

1)创建当前装配一个reg文件(供参考)。

2)编写检查类似钥匙注册表(也许不同的版本号的应用程序?)

3)使用regasm注销匹配组件。如有必要,请使用regsvr32卸载COM实体。

4)小心地以编程方式删除这些键。

5)注册您的新程序集。

6)gacutil新注册的程序集(如果需要)。

我的COM/Interop有点生疏,所以请留下评论,如果这不起作用。

+0

对不起,不清楚。我想在运行时执行此操作。 – 2010-10-10 08:45:53

+2

然后使用一个脚本来做到这一点(枚举该文件夹中的文件,然后在你想删除的文件夹上运行'regasm/u'。 – 2010-10-10 08:50:58

+0

@Allon - 好点...仍然会有COM引用来处理 – 2010-10-10 08:52:20