0

我的应用程序需要 .Net Framework 3.5、Crystal Report 10.5 和 SQLServer Express 2005 作为先决条件。为此,我创建了一个 wix 设置项目并为先决条件添加了 msbuild 任务。我当前的问题将套件安装到用户计算机时,水晶报告试图在 .net framework 3.5 之前安装。如何更改先决条件的顺序?

我当前的 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\" />

4

2 回答 2

1

此问题通过替换 CrystalReports10_5\products.xml 中的 DependsOnProduct 标签解决,如下

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

于 2012-04-26T10:19:03.153 回答
0

尝试使用dotnetinstaller

它是一个免费工具,使用 dotnetinstaller 的好处是你可以将你的 msi 与它合并,并且可以生成一个 exe,它可以像 msi 文件那样由管理员执行。

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

于 2011-01-13T13:14:18.490 回答