如何使用Wix安装.NET Framework的可再发行组件包?

时间:2011-01-21 12:37:10

标签: c# deployment windows-services wix

我有一项常规任务:在设置产品期间安装.NET Framework 3.5。

我执行以下操作:

  1. 我创建了一个自定义操作X
  2. 自定义操作X通过Process.Start()
  3. 启动可执行文件Y.
  4. 可执行文件Y终止msiexec进程并运行.NET Framework安装程序包
  5. 这里出现了一些问题:.NET Framework安装程序说无法访问Windows Installer服务并要求终止所有其他安装!

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

    我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

以下是如何引导.NET框架。

1)确保在构建计算机上安装了.NET 3.5和Windows Installer 3.1 boostrappers。它们应该与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&amp; msi应该安装框架。

斯科特

相关问题