0

我的 wix 引导程序有一个问题,无法安装 .Net 4 和我的应用程序(使用 wix 3.7 生成的 .msi)。当我编译我的解决方案时,一切正常,并且生成的 exe 具有正确的大小(不确定是否重要,当我使用 winrar 打开 exe 时,其中只有几个文件,而不是我要安装的文件)。当我双击我的 exe 时,什么也没有发生(有和没有管理员)。

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
  <Bundle Name="Bootstrapper" Version="1.0.0.0" Manufacturer="asdf"
          UpgradeCode="{D188D758-2913-4BA8-B9BA-FEC5B4BCCBD7}">
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
    <Chain>
      <!-- TODO: Define the list of chained packages. -->
      <PackageGroupRef Id="Netfx4Full"/>
      <MsiPackage Id="Myapp" SourceFile="$(var.Myapp.TargetPath)"/>
    </Chain>
  </Bundle>
  <Fragment>
    <!-- Check for .NET 4.0 -->
    <util:RegistrySearch Root="HKLM"
                         Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full"
                         Value="Version"
                         Variable="Netfx4FullVersion" />
    <util:RegistrySearch Root="HKLM"
                         Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full"
                         Value="Version"
                         Variable="Netfx4x64FullVersion"
                         Win64="yes" />
    <PackageGroup Id="Netfx4Full">
      <ExePackage Id="Netfx4Full"
                  DisplayName="Microsoft .NET Framework 4.0"
                  DownloadUrl="http://download.microsoft.com/download/5/6/2/562A10F9-C9F4-4313-A044-9C94E0A8FAC8/dotNetFx40_Client_x86_x64.exe"
                  Compressed="no"
                  Cache="yes"
                  PerMachine="yes"
                  Permanent="yes"
                  Protocol="netfx4"
                  Vital="yes"
                  SourceFile=".\dotNetFx40_Full_x86_x64.exe"
                  InstallCommand="/passive /norestart"
                  DetectCondition="Netfx4FullVersion AND (NOT VersionNT64 OR Netfx4x64FullVersion)" />
    </PackageGroup>
  </Fragment>
</Wix>

Myapp.msi 作为引导程序项目中的参考导入。

如果有任何代码我应该发布请让我知道

非常感谢

4

1 回答 1

0

您是否尝试过为您的 MSIPackage 条目包含“压缩”属性?例如:

<Chain>
      <!-- TODO: Define the list of chained packages. -->
      <PackageGroupRef Id="Netfx4Full"/>
      <MsiPackage Id="Myapp" SourceFile="$(var.Myapp.TargetPath)" Compressed="yes" Vital="yes" />
</Chain>

“压缩”属性告诉 Burn 将您的 msi 包含在生成的引导程序包中。“Vital”属性告诉 Burn 你的 msi 是必需的。

此外,烧包将日志写入您的临时文件。目录。所以看看那里,如果它仍然失败。

于 2013-09-06T19:00:41.237 回答