如何解析Wix Toolset 3.11中的BootstrapperApplicationRef?

问题描述 投票:0回答:2

我收到与我的

BootstrapperApplicationRef
相关的错误消息,我不明白这些错误消息,因为这些消息来自基于众所周知的wix书以及这个示例的示例。也许是因为我使用的是3.11版本的工具集(本书是基于3.6的)?我的安装程序需要安装一些软件才能下载。

这是我的wxs:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Bundle Name="Awesome Software"
Version="1.0.0.0"
Manufacturer="Awesome Company"
UpgradeCode="c352f5c7-1dbe-416c-820d-685b058270d5">
<BootstrapperApplicationRef
Id="WixStandardBootstrapperApplication.RtfLicense" />
  
<Chain>
  <ExePackage Id="DymoLabelSoftware"
       SourceFile="DLS8Setup.8.5.1.exe"
       DownloadUrl="http://download.dymo.com/dymo/Software/Win/DLS8Setup.8.5.1.exe" />
</Chain>

</Bundle>
</Wix>

编译结果出现以下错误消息:

未解决的符号引用 'WixBootstrapperApplication:WixStandardBootstrapperApplication.RtfLicense'

按照此处所述更改此元素,会产生以下消息:

未解决的符号引用 'WixBootstrapperApplication:WixNetFxExtension'

删除

BootstrapperApplicationRef
会导致另一条错误消息:

未解决的符号引用 'WixBootstrapperApplication:WixNetFxExtension'

我可以理解有些问题尚未解决,但找到的解决它的示例根本不起作用。我该如何解决这个问题?如何解决此引用而不收到错误消息?

更新1

我尝试使用引导程序项目来实现此目的。这部分解决了我的问题。

我刚刚收到另一条错误消息。

系统找不到文件“DLS8Setup.8.5.1.exe”。

这真的很奇怪。编译器不应该在编译时尝试找到它。它是在运行时下载的东西。 我尝试通过添加一个虚拟的

DLS8Setup.8.5.1.exe
来完成这项工作。

但是,当在 bin\Debug 文件夹中查找结果时,我得到的应用程序在双击时不显示用户界面。这种方法并没有真正解决我的问题,它改变了我的问题。

它只是想要一个安装程序,在启动时显示一些用户界面并执行下载。仅此而已。

enter image description here

更新2

使用其他示例下载也只是给出其他错误。

enter image description here

wix wix3.11
2个回答
1
投票

这是基于您的更新的工作示例:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Bundle Name="DLS8SetupBootstrapper" Version="1.0.0.0" Manufacturer="me" UpgradeCode="ada71964-11c8-4877-9544-f72fe65579c0">
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
    <Chain>
      <ExePackage Id="DymoLabelSoftware"
        Name="DLS8Setup.8.5.1.exe"
        Compressed="no"
        DownloadUrl="http://download.dymo.com/dymo/Software/Win/DLS8Setup.8.5.1.exe">
          <RemotePayload Description="MyRemoteApp" ProductName="DLS8Setup.8.5.1.exe" Size="119087088" Version="8.5.1.0" Hash="204ecb5296290527418693f3a464b59a8801808f"/>
      </ExePackage>
    </Chain>
  </Bundle>
</Wix>

请注意,您需要知道文件的字节大小和 sha1 哈希值。另外“名称”也是重要的属性。

为了检查哈希,我使用了此资源

尚未找到如何在线获取尺寸,因此这里是 C# 示例:

var sizeInBytes = new FileInfo("D:\\DLS8Setup.8.5.1.exe").Length;

因此只需更新文件的变量即可获得安装程序。

附注它将显示 DLS8Setup 安装程序 GUI。如果您需要静默进行,这将取决于每个安装程序。据我所知,您想使用自己的文件,而不是示例中的文件,所以没有您的文件我无法做任何事情。


0
投票

要解决

WixStandardBootstrapperApplication.RtfLicense
添加到wixproj文件中

<ItemGroup>
  <WixExtension Include="WixBalExtension">
    <HintPath>$(WixExtDir)\WixBalExtension.dll</HintPath>
    <Name>WixBalExtension</Name>
  </WixExtension>
</ItemGroup>

并进入wxs文件

xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"
© www.soinside.com 2019 - 2024. All rights reserved.