Windows 安装程序 XML (WiX)

发布于 2024-10-11 18:56:47 字数 1340 浏览 6 评论 0原文

我的应用程序需要 .Net Framework 3.5、Crystal Report 10.5 和 SQLServer Express 2005 作为先决条件。为此,我创建了一个 wix 安装项目并添加了 msbuild 任务作为先决条件。 我目前的问题 将套件安装到用户计算机时,Crystal Report 尝试安装 .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\" />

My application needs .Net Framework 3.5, Crystal Report 10.5 and SQLServer Express 2005 as pre-requisites. For this purpose I created a wix setup project and added the msbuild task for prerequisites.
My current problem
When installing the kit to an user machine, crystal report trying to install before .net framework 3.5.
How can I change the order of the prerequisites?

My current msbuild task code is given below;

  <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\" />

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

软甜啾 2024-10-18 18:56:47

通过替换 CrystalReports10_5\products.xml 中的 DependsOnProduct 标记可以解决此问题,如下所示

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

This problem is rectified by replacing the DependsOnProduct tag in CrystalReports10_5\products.xml as follows

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

放低过去 2024-10-18 18:56:47

尝试使用 dotnetinstaller

它是一个免费工具,使用 dotnetinstaller 的好处是您可以将您的 msi 与其合并,并生成一个可由管理员执行的 exe,这与 msi 文件不同。

在 dotnetinstaller 中,您可以定义先决条件等等。

Try using dotnetinstaller.

It is a free tool and the benefit of using dotnetinstaller is you can merge your msi with that and can generate an exe which can be executed an administrator unlike msi file.

In dotnetinstaller you can have pre-conditions defined and much more.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文