作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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 值的语法变体,但没有任何乐趣(全名除外)。
帮助解决非常非常感谢。谢谢!
最佳答案
查看您的 WiX 代码,我发现您对 MSI 目标文件夹路径和源文件夹路径感到困惑。 Directory 标签用于在运行 MSI 的机器上创建一个文件夹(您要部署应用程序的地方)——它与您打包文件的源文件夹无关。
将您的文件路径替换为:
<File Id="FILE_RefreshPNG" Source= "\TESTfolder\Refresh.png" KeyPath="yes"/>
如您所见,文件-> 源属性路径应引用您的WXS 文件路径编写。
如果您计划在客户端计算机上的测试文件夹下部署 refresh.png,那么您必须关闭 </Directory>
在您的 <File>
之后标记标签
关于WiX 3.11.1——错误 LGHT0103 : The system cannot find the file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48340386/
我是一名优秀的程序员,十分优秀!