在wix中使用程序文件的短名称
本文关键字:文件 程序 wix | 更新日期: 2023-09-27 18:09:47
我正在使用Wix为应用程序创建msi
AppName.wxs:中设置了一个环境变量
<Component Id="MyAppEnvVar" Directory="TARGETDIR" Guid="eabcc802-6853-4db8-b827- 985db85683cf">
<Environment Id="MyAppEnv" Action="set"
Name='MyApp_HOME'
Part='all'
System="yes"
Value="[BinDir]"/>
</Component>
BinDir在此处指定:
<Directory Id='ProgramFilesFolder' Name='PFiles'>
<Directory Id='MyAppDir' Name='MyApp'>
<Directory Id='ClientDir' Name='$(env.MyAppDIR)'>
<Directory Id='BinDir' Name='$(var.PRODUCTVERSION)'>
这将环境变量"MyApp_HOME"设置为C:''Program Files(x86(''MyApp''Client''2.0.0.0
我想做的是将MyApp_HOME设置为短名称,如下所示:c: ''Progra~2''MyAPP''Client''2.0.0.0
我已经查看了SHORTFILENAMES属性,但不确定它如何与.wxs文件相匹配。
是否可以在Wix中使用程序文件的短名称?
感谢
Tom
您可以在MSI中将SHORTFILENAMES
设置为一个值,这将强制将所有内容安装到短路径中。这是可能起作用的最接近的东西,但对于你习惯于在长格式中看到的任何路径都会产生副作用。
Registry/@Value
属性允许您使用语法[!FileId]
来获取到具有匹配Id
属性的File
的短路径。不幸的是,这对Environment/@Value
属性不起作用,对目录标识符也不起作用。
这意味着你不得不编写一个自定义操作来自己解决它。如果可能的话,我建议修复读取属性的内容以支持长路径。:(