【问题标题】:How to install redistributable package of .NET Framework with Wix?如何使用 Wix 安装 .NET Framework 的可再发行包?
【发布时间】:2011-01-21 12:37:10
【问题描述】:

我有一个常规任务:在我的产品设置过程中安装 .NET Framework 3.5。

我执行以下操作:

  1. 我创建了一个自定义操作 X
  2. 自定义操作 X 通过 Process.Start() 启动可执行文件 Y
  3. 可执行文件 Y 杀死 msiexec 进程并运行 .NET Framework 安装包

这里出现了一些问题:.NET Framework 安装程序说 Windows Installer 服务不可访问并要求终止所有其他安装!

我认为,其原因是 Process.Kill() 方法终止进程不正确。当我通过 Kill() 杀死 msiexec 进程时,msiserver 服务不会停止,但如果我通过单击取消按钮完成设置,msiserver 服务会停止。

我该如何解决这个问题?

【问题讨论】:

标签: c# deployment windows-services wix


【解决方案1】:

这里是如何引导 .NET 框架。

1) 确保您的构建机器上有 .NET 3.5 和 Windows Installer 3.1 助推器。它们应该与 VS 一起安装。它们可能位于:C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\DotNetFX35。

2) 编辑 wix 项目文件。 - 右键单击​​项目,选择卸载 - 再次右击,编辑wixproj

3) 添加以下项目组:

<ItemGroup>
  <BootstrapperFile Include="Microsoft.Windows.Installer.3.1">
    <ProductName>Windows Installer 3.1</ProductName>
  </BootstrapperFile>
  <BootstrapperFile Include="Microsoft.Net.Framework.3.5.SP1">
    <ProductName>.NET Framework 3.5</ProductName>
  </BootstrapperFile>

4) 在项目文件末尾添加以下内容

    <Target Name="AfterBuild">
  <GenerateBootstrapper ApplicationFile="$(TargetFileName)" ApplicationName="My Application Name" BootstrapperItems="@(BootstrapperFile)" ComponentsLocation="Relative" CopyComponents="True" OutputPath="$(OutputPath)" Path="C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Bootstrapper\" /></Target>

5) 现在构建。生成的 setup.exe 和 msi 应该会安装框架。

斯科特

【讨论】:

    猜你喜欢
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 2014-04-14
    相关资源
    最近更新 更多