如何解决 Wix Toolset 3.11 中的 BootstrapperApplicationRef?
How to resolve BootstrapperApplicationRef in Wix Toolset 3.11?
我收到与我的 BootstrapperApplicationRef
相关的错误消息,我不理解这些消息来自基于众所周知的 and also this example 的示例。可能是因为我用的是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>
编译结果出现以下错误消息:
Unresolved reference to symbol
'WixBootstrapperApplication:WixStandardBootstrapperApplication.RtfLicense'
按照 所述更改此元素会导致以下消息:
Unresolved reference to symbol
'WixBootstrapperApplication:WixNetFxExtension'
删除 BootstrapperApplicationRef
会导致另一条错误消息:
Unresolved reference to symbol
'WixBootstrapperApplication:WixNetFxExtension'
我能理解有些事情尚未解决,但找到的解决问题的示例根本不起作用。我怎样才能解决这个问题?如何在不收到错误消息的情况下解析此引用?
更新 1
我尝试使用引导程序项目来完成这项工作。这部分解决了我的问题。
我刚收到另一条错误消息。
The system cannot find the file 'DLS8Setup.8.5.1.exe'.
这真是奇怪。编译器不应在编译时尝试查找它。它是在运行时下载的东西。
我尝试通过添加虚拟 DLS8Setup.8.5.1.exe
.
来完成这项工作
但是,当在我的 bin\Debug 文件夹中查找我的结果时,我得到一个应用程序,当双击时,它不显示用户界面。这种方法并没有真正解决我的问题,它改变了我的问题。
它只是想要一个在启动时显示一些用户界面并执行下载的安装程序。就这些了。
更新 2
使用 other example to download 也只是给出其他错误。
下面是基于您的更新的工作示例:
<?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 哈希值。 “名称”也是重要的属性。
为了检查哈希,我使用了 this resource
还没有找到如何在线获取尺寸的方法,所以这里是 C# 示例:
var sizeInBytes = new FileInfo("D:\DLS8Setup.8.5.1.exe").Length;
因此,只需更新文件的变量即可获得安装程序。
P.S。它将显示 DLS8Setup 安装程序 GUI。如果您需要静默执行,它将取决于每个安装程序。据我所知,你想使用你自己的,而不是示例中的那个,所以没有你的文件我什么也做不了。
我收到与我的 BootstrapperApplicationRef
相关的错误消息,我不理解这些消息来自基于众所周知的
这是我的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>
编译结果出现以下错误消息:
Unresolved reference to symbol 'WixBootstrapperApplication:WixStandardBootstrapperApplication.RtfLicense'
按照
Unresolved reference to symbol 'WixBootstrapperApplication:WixNetFxExtension'
删除 BootstrapperApplicationRef
会导致另一条错误消息:
Unresolved reference to symbol 'WixBootstrapperApplication:WixNetFxExtension'
我能理解有些事情尚未解决,但找到的解决问题的示例根本不起作用。我怎样才能解决这个问题?如何在不收到错误消息的情况下解析此引用?
更新 1
我尝试使用引导程序项目来完成这项工作。这部分解决了我的问题。
我刚收到另一条错误消息。
The system cannot find the file 'DLS8Setup.8.5.1.exe'.
这真是奇怪。编译器不应在编译时尝试查找它。它是在运行时下载的东西。
我尝试通过添加虚拟 DLS8Setup.8.5.1.exe
.
但是,当在我的 bin\Debug 文件夹中查找我的结果时,我得到一个应用程序,当双击时,它不显示用户界面。这种方法并没有真正解决我的问题,它改变了我的问题。
它只是想要一个在启动时显示一些用户界面并执行下载的安装程序。就这些了。
更新 2
使用 other example to download 也只是给出其他错误。
下面是基于您的更新的工作示例:
<?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 哈希值。 “名称”也是重要的属性。
为了检查哈希,我使用了 this resource
还没有找到如何在线获取尺寸的方法,所以这里是 C# 示例:
var sizeInBytes = new FileInfo("D:\DLS8Setup.8.5.1.exe").Length;
因此,只需更新文件的变量即可获得安装程序。
P.S。它将显示 DLS8Setup 安装程序 GUI。如果您需要静默执行,它将取决于每个安装程序。据我所知,你想使用你自己的,而不是示例中的那个,所以没有你的文件我什么也做不了。