我一直想弄清楚为什么我的病情不适用于我的SetDirectory。根据WiX文档,我无法找到任何实际执行此操作的任何示例,只是可以这样做。
我尝试了以下内容:
<SetDirectory Id="INSTALLLOCATION" Value="TEST">ComputerName=LJPRESCOTT1</SetDirectory>
这会编译,但会在运行时被忽略。这些文件最终直接安装在C:\ Drive上,而不是像我瞄准的那样在C:\ TEST中安装。
和
<SetDirectory Id="INSTALLLOCATION" Value="TEST">[ComputerName]=LJPRESCOTT1</SetDirectory>
这不会编译并抛出“错误的条件字符串”错误。
如果我这样做,它会按预期创建一个名为LJPRESCOTT1的目录:
<SetDirectory Id="INSTALLLOCATION" Value="[ComputerName]" />
所以我知道Comp Name是正确的。
我在这里做错了什么,或者这是不可能的?
谢谢!
答案 0 :(得分:1)
仅在进行格式化或使用类型为[ComputerName]
的值时才使用语法Formatted
,因此在第二个示例中出现语法错误。
但是在第一个例子中,你正在做的是将ComputerName
属性的值与LJPRESCOTT1
(public)属性的值进行比较,我想这总是评估为false。如果您想将ComputerName
与硬字符串值进行比较,则需要一些引号:
ComputerName="LJPRESCOTT1"