我有一个很大的.NET源代码树(185个C和VB项目,其中60个是应用程序或网站),我想为其创建Wix设置。一般的想法是有1个安装MSI,使每个可执行文件都成为一个功能,并将每个应用程序安装在一个单独的目录中。喜欢
%progfiles%/company/app1
/app2
/app3
到目前为止,我已经用特性树创建了一个wix产品文件,并让heat工具为每个.NET项目生成片段文件。它们看起来像这样:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="Client.Binaries">
...component definitions...
</DirectoryRef>
<DirectoryRef Id="Client.Content">
...etc...
</DirectoryRef>
</Fragment>
<Fragment>
<ComponentGroup Id="Client.Binaries">
...ComponentRefs referencing components defined under
the DirectoryRef with the same id...
</ComponentGroup>
...etc...
但是这两者之间的联系给我带来了麻烦,
功能可以引用组件组,
组件组引用组件,
组件包含在DirectoryRef中。
定义DirectoryRef元素要引用的目录元素会给我带来麻烦。
一些库被多个应用程序使用,因此directoryRef必须指向多个目录,
并且多个directoryrefs(具有不同的ID)必须指向同一个目录
(
找到目录别名技巧
,这两个似乎都不可能。
我有一个明显的印象,我是以错误的方式进行的,或者我缺少一些更深的洞察力。(我的妻子已经满3天了,所以我一点也不吃惊)
有人能告诉我如何在这个黑暗和邪恶的问题上点燃蜡烛吗(没有双关语的意图…)