Windows安装程序XML(WiX)
问题描述:
我的应用程序需要.Net Framework 3.5,Crystal Report 10.5和SQLServer Express 2005作为先决条件。为此,我创建了一个wix安装项目并为先决条件添加了msbuild任务。 我目前的问题 在将套件安装到用户机器时,Crystal报表试图安装.NET Framework 3.5之前。 如何更改先决条件的顺序?Windows安装程序XML(WiX)
我目前的msbuild任务代码如下:
<ItemGroup>
<BootstrapperFile Include="Microsoft.Net.Framework.3.5">
<ProductName>.NET Framework 3.5</ProductName>
</BootstrapperFile>
<BootstrapperFile Include="Microsoft.Windows.Installer.3.1">
<ProductName>Windows Installer 3.1</ProductName>
</BootstrapperFile>
<BootstrapperFile Include="BusinessObjects.CrystalReports.10.5">
<ProductName>Crystal Reports Basic for Visual Studio 2008 (x86, x64)</ProductName>
</BootstrapperFile>
<BootstrapperFile Include="Microsoft.Sql.Server.Express.9.2">
<ProductName>SQL Server 2005 Express Edition SP2 (x86)</ProductName>
</BootstrapperFile>
<Target Name="AfterBuild">
<GenerateBootstrapper ApplicationFile="$(TargetFileName)"
ApplicationName="Business Software"
BootstrapperItems="@(BootstrapperFile)"
ComponentsLocation="Relative"
CopyComponents="True"
OutputPath="$(OutputPath)\en-us\"
Path="C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\" />
答
此问题是由CrystalReports10_5 \ products.xml更换DependsOnProduct标签整流如下
<RelatedProducts>
<!--<DependsOnProduct Code="Microsoft.Net.Framework.2.0" />-->
<DependsOnProduct Code="Microsoft.Net.Framework.3.5.SP1" />
答
尝试使用dotnetinstaller。
这是一个免费的工具和使用dotnetinstaller的好处是你可以合并你的MSI,并可以生成一个EXE,可以执行一个管理员不像MSI文件。
在dotnetinstaller中,您可以定义前提条件等等。
看来,你没有格式化代码,代码块,这就是为什么在XML您的示例是隐形的... – 2011-01-12 16:42:22
看起来像http://stackoverflow.com/questions/471405/bootstrapper-prerequisite-ordering – wimh 2011-01-13 07:45:43