【发布时间】:2008-09-05 12:58:57
【问题描述】:
我想使用 Publish.GacRemove 函数从 GAC 中删除程序集。但是,我不明白我应该通过什么路径作为参数。
它应该是原始 DLL 的路径(如果我在 GAC 中安装后将其删除怎么办?)还是 GAC 中程序集的路径?
更新:
我终于用these API wrappers了。
【问题讨论】:
我想使用 Publish.GacRemove 函数从 GAC 中删除程序集。但是,我不明白我应该通过什么路径作为参数。
它应该是原始 DLL 的路径(如果我在 GAC 中安装后将其删除怎么办?)还是 GAC 中程序集的路径?
更新:
我终于用these API wrappers了。
【问题讨论】:
我正在使用GacInstall 发布我的程序集,但是一旦安装到 gac 中,我有时会删除我的“临时”程序集副本。
然后,如果我想从 gac 中卸载程序集,我在原始路径中没有文件。这导致了一个问题,因为除非我保留原始文件,否则我似乎无法获得 GacRemove 方法来卸载程序集。
结论:是的,你需要指定原始DLL的路径。 (并尽量不要稍后移动/删除它)。如果您删除它,请尝试将文件从 GAC 复制到您的原始路径,您应该可以使用 GacRemove 将其卸载。
【讨论】:
我不太确定,但我相信 GacRemove 应该和 gacutil /u 做同样的事情。所以,它应该是你的 DLL 的路径。但是,它不必是同一个 DLL 文件。原件的副本就足够了,因为重要的是 DLL 的唯一 ID。
【讨论】: