2011-01-12 212 views
0

我的应用程序需要.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\" /> 

+0

看来,你没有格式化代码,代码块,这就是为什么在XML您的示例是隐形的... – 2011-01-12 16:42:22

+0

看起来像http://stackoverflow.com/questions/471405/bootstrapper-prerequisite-ordering – wimh 2011-01-13 07:45:43

回答

1

此问题是由CrystalReports10_5 \ products.xml更换DependsOnProduct标签整流如下

<RelatedProducts> 
<!--<DependsOnProduct Code="Microsoft.Net.Framework.2.0" />--> 
<DependsOnProduct Code="Microsoft.Net.Framework.3.5.SP1" /> 

0

尝试使用dotnetinstaller

这是一个免费的工具和使用dotnetinstaller的好处是你可以合并你的MSI,并可以生成一个EXE,可以执行一个管理员不像MSI文件。

在dotnetinstaller中,您可以定义前提条件等等。