2009-02-02 32 views
2

遵循wcoenen的建议,我决定尝试使用免注册的COM。这当然是完美的,除了XP之前的机器。一个我认为会很整齐的想法是添加一些文件,SelfRegCost='[var]'。很有可能这不是The Right Thing™但我仍然想知道如何去做,只是为了满足我自己的好奇心。我假设,也许不正确,如果var是一个空字符串,SelfRegCost='[var]'不会导致自注册。但这可能是错误的。Wix:根据操作系统更改参数

这与"WIX: How can the registry key be changed based on the OS on which the installer is running ?"类似,但在我的情况下,我意识到我可以(也可能应该)使用不同的组件,只是不在乎。

很可能我最终可能最终会使用不同的组件,但请满足我的好奇心。

回答

1

您需要使用条件组件以不同的方式安装到不同的操作系统。

你的建议是让部分安装失败,但希望可以默默地进行。

使用自定义操作,您可以做到这一点!

<CustomAction Id="YourId" Directory="INSTALLDIR" ExeCommand='regsvr32.exe /s "[INSTALLDIR]YourCOM.dll"' Return="ignore" /> 

这当然不建议Rob Mensching提供的原因。

2

我还没有用WiX做COM安装(谢天谢地)。但从文档和this thread,这听起来像SelfRegCost只是为了让MSI知道需要多少空间来验证是可用的。我猜空白会是一个错误,或被视为零,仍然安装DLL。

我肯定会去与多个组件。

+0

当然,我应该去与多个组件。但我很好奇如何只用一个组件来做到这一点,而不管这样做的可怕性如何。 – Brian 2009-02-04 21:27:01

+0

副手,我猜你不能。组件是条件安装的单位,所以我不相信你可以安装一个组件,但不是所有的组件,也不相信你会想要。 – 2009-02-04 23:39:24

相关问题