Wpf Wix引导程序自定义gui未显示

Wpf Wix引导程序自定义gui未显示,wpf,wix,Wpf,Wix,我一直在努力使一个安装程序的基础上,我似乎遇到了一个点的症结。我开发的示例安装程序正确编译并按其应该的方式安装,但是当我创建更高级别的引导程序和安装程序时,我遇到了一个障碍—WPF UI没有正确连接 当我运行安装程序时,它会给我一个带有红色磁盘的通用安装程序,其标题是安装程序安装所需的Microsoft.NET Framework。运行此操作会导致为Windows的安装/卸载创建一个无法卸载的条目-它似乎也没有删除有效负载,只是尝试安装.Net Framework 下面是顶级wix文件,感谢您的

我一直在努力使一个安装程序的基础上,我似乎遇到了一个点的症结。我开发的示例安装程序正确编译并按其应该的方式安装,但是当我创建更高级别的引导程序和安装程序时,我遇到了一个障碍—WPF UI没有正确连接

当我运行安装程序时,它会给我一个带有红色磁盘的通用安装程序,其标题是安装程序安装所需的Microsoft.NET Framework。运行此操作会导致为Windows的安装/卸载创建一个无法卸载的条目-它似乎也没有删除有效负载,只是尝试安装.Net Framework

下面是顶级wix文件,感谢您的关注

Bundle.wxs-引导程序设置的一部分

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">
    <Bundle Name="Jeremiah's Test Installer" Version="1.0.0.0" Manufacturer="Starkey" UpgradeCode="5a714642-7857-4582-8bae-80fd6d8ec77a">
    <BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost">
      <Payload SourceFile="..\TestWPF003\bin\Release\TestWPF003.dll"/>
      <Payload SourceFile="..\TestWPF003\bootstrapper.config"/>
      <Payload SourceFile="C:\Program Files (x86)\WiX Toolset v3.9\SDK\Microsoft.Deployment.WindowsInstaller.dll"/>
    </BootstrapperApplicationRef>

        <Chain>
            <!-- TODO: Define the list of chained packages. -->
            <!-- <MsiPackage SourceFile="path\to\your.msi" /> -->
      <PackageGroupRef Id='Netfx4Full' />      
      <MsiPackage SourceFile="..\beta\bin\Release\beta.msi"  Id="BetaInstallId" Cache="yes" Visible="no"/>
      <MsiPackage SourceFile="..\alpha\bin\Release\alpha.msi"  Id="AlphaInstallId" Cache="yes" Visible="yes"/>
        </Chain>
    </Bundle>

  <Fragment>
    <!-- Managed bootstrapper requires .NET as a dependency, since it was written in .NET.
       WiX provides a Bootstrapper for the bootstrapper. The fragment below includes .NET.
       For more information or examples see Heath Stewart's blog or the WiX source:
       http://blogs.msdn.com/b/heaths/archive/2011/10/28/introducing-managed-bootstrapper-applications.aspx
       -->

    <WixVariable Id="WixMbaPrereqPackageId" Value="Netfx4Full" />
    <WixVariable Id="WixMbaPrereqLicenseUrl" Value="NetfxLicense.rtf" />

    <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" Cache="no" Compressed="yes" PerMachine="yes" Permanent="yes" Vital="yes"
                  SourceFile="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\DotNetFX40\dotNetFx40_Full_x86_x64.exe"
                  DetectCondition="Netfx4FullVersion AND (NOT VersionNT64 OR Netfx4x64FullVersion)" />
    </PackageGroup>
  </Fragment>

</Wix>

我认为这是因为您缺少
BootstrapperCore.config
文件,因此无法将其重命名为任何其他文件

  <Payload SourceFile="..\TestWPF003\BootstrapperCore.config"/>


编辑:我认为name属性不是问题所在,但具体来说,文件名必须是BootstrapperCore.config,请尝试使用我在上面指定的行:)

我假设您没有使用MvvmLight,这就是为什么您没有有效负载条目的原因?除此之外,bundle.wxs似乎与链接到的示例中的bundle.wxs几乎相同。也许可以尝试使用winmerge来比较代码?我建议使用虚拟机来测试安装程序,这样您就可以在需要时拍摄快照并将其还原到干净的状态。您是对的-我没有使用MvvmLight。您在虚拟机方面提出了一个很好的观点。如果我能弄到一个,我将开始使用它进行测试。我移除了你展示的名称标签,但它并没有改变结果。我编辑了我的原始帖子来反映这一点。好吧,让我失去理智。好极了,先生!好极了!