【发布时间】:2018-01-19 11:46:04
【问题描述】:
Windows 10 专业版 1703 64 位上的 WiX 3.11.1。不使用 Visual Studio。使用简单的文本文件如下。
这是我发现的情况的测试用例。
myapp.wxs 是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
<Product Id="*"
Name="MyApp"
Language="1033"
Version="1.0.0.0"
Manufacturer="Me"
UpgradeCode="PUT-GUID-HERE">
<Package InstallerVersion="301"
Compressed="yes"
InstallScope="perMachine"
Manufacturer="Me"
Description="My App"
Keywords=".NET,Installer,MSI" />
<MediaTemplate EmbedCab="yes" />
<UIRef Id="WixUI_Minimal" />
<UIRef Id="WixUI_ErrorProgressText" />
<!-- ****************************************** -->
<WixVariable Id="WixUIDialogBmp"
Value="[CMP_Refresh_file]" />
<!-- ****************************************** -->
<Feature Id="MyFeature"
Title="MyApp Feature"
Description="Installs MyApp"
Level="1">
</Feature>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="TestFolder" Name="TESTfolder" />
</Directory>
<Component Id="CMP_Refresh_file" Guid="*" Directory="TESTfolder">
<File Id="FILE_RefreshPNG" Source= "Refresh.png" KeyPath="yes" />
</Component>
</Fragment>
</Wix>
myapp.bat 是:
"C:\Program Files (x86)\WiX Toolset v3.11\bin\candle.exe" myapp.wxs
"C:\Program Files (x86)\WiX Toolset v3.11\bin\light.exe" myapp.wixobj -ext WixUIExtension -ext WixUtilExtension
@pause
当我运行 .bat 文件时,它找不到 CMP_Refresh_file(错误 LGHT0103:系统找不到文件)。文件夹 TESTfolder 是 .wxs 文件所在文件夹的直接子文件夹。
替换完整的文件路径可以解决问题。但这不是我想要的,因为我将拥有大量文件和文件夹。 (另外,如果我把文件和.wxs文件放在同一个文件夹里,它当然会找到它。)
我怀疑这纯粹是我的无知造成的句法问题。在任何情况下,我都没有高兴地为 WixUIDialogBmp 的 Value 尝试了无穷无尽的语法变化(全名除外)。
帮助解决非常非常感谢。谢谢!
【问题讨论】:
标签: wix windows-installer