我想使用Publish.GacRemove函数从GAC中删除程序集。但是,我不明白我应该通过什么样的道路作为论据。我应该将什么路径作为AssemblyPath参数传递给Publish.GacRemove函数?
它应该是原始DLL的路径(如果在将它安装到GAC中后将其删除,该怎么办?)或GAC中程序集的路径?
UPDATE:
我终于用these API wrappers。
我想使用Publish.GacRemove函数从GAC中删除程序集。但是,我不明白我应该通过什么样的道路作为论据。我应该将什么路径作为AssemblyPath参数传递给Publish.GacRemove函数?
它应该是原始DLL的路径(如果在将它安装到GAC中后将其删除,该怎么办?)或GAC中程序集的路径?
UPDATE:
我终于用these API wrappers。
我正在使用GacInstall
来发布我的程序集,但是一旦安装到gac中,我有时会删除程序集的临时副本。
然后,如果我想从gac卸载程序集,我没有原始路径中的文件。这是导致一个问题,因为我似乎无法得到GacRemove
方法卸载程序集,除非我保留原始文件。
结论:是的,您需要指定原始DLL的路径。 (并且稍后尝试不移动/删除它)。如果删除它,请尝试将该文件从GAC复制到原始路径,并且应该可以使用GacRemove
将其卸载。
我并不完全确定,但我相信GacRemove应该和gacutil/u做同样的事情。所以,它应该是你的DLL的路径。但它不一定是相同的DLL文件。原来的副本应该足够了,因为重要的是DLL的uniqueID。
uniqueID是否随每个编译/版本而变化? – 2008-09-09 20:13:24
所以我需要完全相同的DLL(相同版本?相同的构建?),对吗? – 2008-09-09 20:14:22