我有web应用程序,这是我要安装IIS。 此应用程序支持的插件架构。 它包括:
- 核心部分
- Plugin的一个
- 插件的使用b
我想有2个安装程序(MSI)。 一个用于插件A和其他的插件B.每个安装程序还应该安装核心部分。 所以,如果我的插件运行安装程序应该安装核心部分和Plugin的一个二进制文件。 然后,如果我在插件的使用b安装程序应该只安装插件的使用b二进制文件。 但是,如果插件去运行安装程序为首先它应该安装核心部分和插件的使用b二进制文件。
我用维克斯合并模块项目的核心部分,并创造了2个WiX的项目,每个安装。 但是,因为我想不工作。
这是如何工作的:
- 我运行安装程序插件A(正常工作)
- 我运行安装程序插件B,其检测产品已安装,显示删除,修复,变更页
- 我选择更改,我看到“插件A”上树的特点,而不是“插件B”
你可以在这里看到样品溶液: https://github.com/bwojdyla/wixplugins工程在调试配置。 维克斯3.9,VS2012
我的合并模块(核心部分):
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Module Id="CoreModule" Language="1033" Version="1.0.0.0">
<Package Id="751e70eb-cf76-413b-b8c8-231a31f9c946" Manufacturer="test" InstallerVersion="200" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="INSTALLFOLDER" Name="PluginInstaller">
<Component Id="CoreComp" Guid="{161F78E1-0ABD-4FCD-92FC-6095A45F78B3}">
<File Id="CoreFile" KeyPath="yes" Source=".\Core.txt" />
</Component>
</Directory>
</Directory>
</Module>
</Wix>
插件答:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="{8E93D1E7-C05F-40A0-B737-C053C1EE3E0A}" Name="PluginInstaller" Language="1033" Version="1.0.0.0" Manufacturer="test" UpgradeCode="eed33233-e773-45c2-87a1-ab349191a30a">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" Id="{9C7D28B4-FBAD-4FE6-A204-8F6A11D89792}"/>
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<Media Id="1" Cabinet="Cab1.cab" EmbedCab="yes" />
<UIRef Id="WixUI_FeatureTree"/>
<FeatureRef Id="ProductFeature">
<Feature Id="PluginA" Title="Plugin A" Level="1" AllowAdvertise="no">
<ComponentGroupRef Id="ProductComponents" />
</Feature>
</FeatureRef>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="PluginInstaller" />
<Merge Id="CoreModule" Language="1033" SourceFile="..\CoreModule\bin\Debug\CoreModule.msm" DiskId="1" />
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<Component Id="PluginAComp" Guid="{7641AF10-B2EF-4639-A0B4-34AE819CAD38}">
<File Id="PluginAFile" KeyPath="yes" Source=".\PluginA.txt" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
插件B:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="{8E93D1E7-C05F-40A0-B737-C053C1EE3E0A}" Name="PluginInstaller" Language="1033" Version="1.0.0.0" Manufacturer="test" UpgradeCode="eed33233-e773-45c2-87a1-ab349191a30a">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" Id="{9C7D28B4-FBAD-4FE6-A204-8F6A11D89792}"/>
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<Media Id="1" Cabinet="Cab1.cab" EmbedCab="yes" />
<UIRef Id="WixUI_FeatureTree"/>
<FeatureRef Id="ProductFeature">
<Feature Id="PluginB" Title="Plugin B" Level="1" AllowAdvertise="no">
<ComponentGroupRef Id="ProductComponents" />
</Feature>
</FeatureRef>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="PluginInstaller" />
<Merge Id="CoreModule" Language="1033" SourceFile="..\CoreModule\bin\Debug\CoreModule.msm" DiskId="1" />
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<Component Id="PluginBComp" Guid="{D11704D9-9911-483A-B204-B2171DCB0E67}">
<File Id="PluginBFile" KeyPath="yes" Source=".\PluginB.txt" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
或者,也许还有其他WiX的功能,我应该使用,来实现这一目标?