...如果是,为什么我不能使用SelfRegCost="0"
?
所以这可能有点哲学;)
基本问题是:我必须在安装过程中注册一个 ShellExtension DLL。当使用普通的旧 VS2008 部署时,我有一个自定义操作,它在我的 dll 上运行 regsvr32。然后在我的 WiX 设置中,我做了同样的事情,即使在卸载时使用了取消注册 (/u)。这工作正常。
直到前几天,我遇到了一些第三方 DLL 在卸载 Visual Studio 安装程序后失去注册的问题。我发现安装已经覆盖了 DLL 的默认位置。Register
我发现了将属性从更改为的可能性vsdrfCOMSelfReg
,vsdrfDoNotRegister
现在我的设置不再覆盖默认位置。
这让我想到我可以使用相同的属性来注册我的 ShellExtension DLL。因此,让我们在 VS 设置上使用 dark 并查看它的翻译vsdrfCOMSelfReg
是什么。我发现唯一的区别是标签SelfRegCost="0"
中的属性。File
但是根据这篇文章(How do you register a Win32 COM DLL file in WiX 3?)使用 SelfRegCost 是不好的,很多事情都出错了。可能。
现在我的理由是:要么
a) dark.exe 不是从 MSI 中提取信息的可靠方法,或者
b) 的使用SelfRegCost="0"
并不像大家想象的那么糟糕,因为 Visual Studio 一直以来都是这样吗?