Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
wix 3安装程序:未解析的绑定时间变量!(bind.fileVersion.Name.exe)_Wix_Windows Installer_Wix3_Wix3.8 - Fatal编程技术网

wix 3安装程序:未解析的绑定时间变量!(bind.fileVersion.Name.exe)

wix 3安装程序:未解析的绑定时间变量!(bind.fileVersion.Name.exe),wix,windows-installer,wix3,wix3.8,Wix,Windows Installer,Wix3,Wix3.8,我正在尝试使用Wix3中的绑定“bind.fileVersion”。(即:3.11.1) 由于某些原因,我收到以下错误消息: 未解析的绑定时间变量!(bind.fileVersion.TestWix3.exe)。 我的目标是填写“产品Id”行。尤其是Version=“$(var.Version)”信息 以下是我的“Product.wxs”文件的内容: 以下是我在VS2017社区中的解决方案截图。 以下是错误: 知道(bind.fileVersion)的绑定为什么不起作用吗?语法是!(bi

我正在尝试使用Wix3中的绑定“bind.fileVersion”。(即:3.11.1)

由于某些原因,我收到以下错误消息:

未解析的绑定时间变量!(bind.fileVersion.TestWix3.exe)。

我的目标是填写“产品Id”行。尤其是Version=“$(var.Version)”信息

以下是我的“Product.wxs”文件的内容:


以下是我在VS2017社区中的解决方案截图。

以下是错误:


知道(bind.fileVersion)的绑定为什么不起作用吗?

语法是
!(bind.fileVersion.FileId)
--注意小写的
f

bind变量的FileId部分表示
Id。即:

!(bind.fileVersion.TestWix3.exe)

...

<Component Id="MainProduct">
    <File Id="TestWix3.exe" KeyPath="yes" Source="$(var.TestWix3.TargetPath)"/>
    ... other stuff maybe ...
</Component>
!(bind.fileVersion.TestWix3.exe)
...
... 其他的东西可能。。。

当前您的组件和文件定义是
TODO
,因此您还不能使用这种类型的绑定变量。

您的定义?define MAINEXE=$(var.TestWix3.TargetFileName)? 翻译为: 创建一个名为MAINEXE的变量,并将其设置为另一个变量的值

没有定义变量TestWix3.TargetFileName 第二个define创建了一个名为VERSION的变量,并使用未定义的MAINEXE

使用这样的定义来代替
?定义MAINEXE=sample.exe
?定义版本=“!(bind.fileVersion.$(var.MAINEXE))”? 没问题


我在之前和之后使用了>?

谢谢,但它没有解决问题。小写字母f仍然存在相同的问题。谢谢。它解决了这个问题。我不知道我需要文件Id。我定义了文件Id,错误仍然存在。是否还有其他原因?@XtianGIS如果您的组件是在片段中定义的,请确保该片段与ComponentRef、ComponentGroupRef或FeatureRef一起引入主产品,具体取决于安装的结构。您还可以尝试进行一个小的测试安装,将所有内容都包含在一个文件中,以查看是否能够以这种方式工作。有时,您可能会处于中间文件未重建但需要重建的状态,因此也可以尝试清理和构建。如果这些都不起作用,你可能会在SOI上提出你自己的问题,我用我的exe名(TestWix3.exe)试过。它不起作用。(同样的错误)正确的解决方案似乎是布赖恩·萨瑟兰给出的
!(bind.fileVersion.TestWix3.exe)

...

<Component Id="MainProduct">
    <File Id="TestWix3.exe" KeyPath="yes" Source="$(var.TestWix3.TargetPath)"/>
    ... other stuff maybe ...
</Component>