0

我一直在试图弄清楚为什么我的状况不适用于我的 SetDirectory。根据 WiX 文档,我还没有找到任何人实际这样做的例子,只是有可能这样做。

我尝试了以下方法:

<SetDirectory Id="INSTALLLOCATION" Value="TEST">ComputerName=LJPRESCOTT1</SetDirectory>

这会编译,但在运行时会被忽略。这些文件最终直接安装在 C:\ 驱动器上,而不是像我想要的那样安装在 C:\TEST 中。


<SetDirectory Id="INSTALLLOCATION" Value="TEST">[ComputerName]=LJPRESCOTT1</SetDirectory>

这不会编译并引发“错误的条件字符串”错误。


如果我这样做,它会按预期创建一个名为 LJPRESCOTT1 的目录:

<SetDirectory Id="INSTALLLOCATION" Value="[ComputerName]" />

所以我知道 Comp Name 是正确的。

我在这里做错了什么,还是这不可能?

谢谢!

4

1 回答 1

1

[ComputerName]仅在进行格式化或使用 type 的值时才使用语法Formatted,因此第二个示例中的语法错误。

但是在第一个示例中,您正在做的是将ComputerName属性的值与LJPRESCOTT1(公共)属性的值进行比较,我想它总是评估为假。如果要与ComputerName硬字符串值进行比较,则需要一些引号:

ComputerName="LJPRESCOTT1"
于 2012-09-28T12:01:37.970 回答