我正在将文件复制到目录,然后设置环境变量以指向该文件。这是有效的,但是,我必须硬编码文件的名称(我不能重用我已经拥有的)。这是一个例子:
<Directory Id="CUSTOM_DIRECTORY" Name="Directory">
<Component Id="Framework" Guid="YOURGUIDIDHERE">
<File Id="FrameworkJAR" Name="framework.jar" DiskId="1" Source="framework.jar" KeyPath="yes" />
<Environment Id="FrameworkVar" Name="CLASSPATH" Action="set" Permanent="no" Part="last" System="yes" Value="[CUSTOM_DIRECTORY]framework.jar" />
</Component>
</Component>
</Directory>
正如您所看到的,在Value属性中,我可以输入[CUSTOM_DIRECTORY],它将为我提供目录的完整路径,但我仍然需要手动输入framework.jar。是否可以使用 Value =“[FrameworkJAR]”之类的东西来获取JAR文件的完整安装路径?
谢谢。
答案 0 :(得分:3)
是的,它是:)
请参阅Formatted数据类型的文档。只需使用......
Value="[#FrameworkJAR]"
来自文档:
...如果形式为[ #filekey ]的子字符串 被发现,它被全部取代 文件的路径,带有值 filekey 用作File table的密钥。 [ #filekey ]的值仍然存在 空白并且不会被路径替换 直到安装程序运行 CostInitialize action,FileCost action和CostFinalize action。 ......