2011-01-12 203 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中,您可以定義前提條件等等。