C# 在wix中使用程序文件的短名称
我正在使用Wix为应用程序创建msi AppName.wxs中设置了一个环境变量:C# 在wix中使用程序文件的短名称,c#,windows,wix,windows-installer,environment-variables,C#,Windows,Wix,Windows Installer,Environment Variables,我正在使用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="ye
<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\u HOME”设置为C:\Program Files(x86)\MyApp\Client\2.0.0
我要做的是将MyApp_HOME设置为短名称,如下所示:
c:\Progra~2\MyAPP\Client\2.0.0.0
我已经查看了SHORTFILENAMES属性,但不确定它如何与.wxs文件相匹配
可以在Wix中使用程序文件的短名称吗
谢谢
Tom您可以将
短文件名
设置为MSI中的值,这将强制将所有内容安装到短路径。这是可能起作用的最接近的东西,但对你习惯于看到的任何路径都会产生副作用
Registry/@Value
属性允许您使用语法[!FileId]
获取具有匹配Id
属性的文件的短路径。不幸的是,这不适用于Environment/@Value
属性,也不适用于目录标识符
这意味着您必须自己编写自定义操作来解决它。如果可能的话,我建议修复读取属性的东西,以支持长路径 您可以将短文件名
设置为MSI中的值,这将强制将所有内容安装到短路径。这是可能起作用的最接近的东西,但对你习惯于看到的任何路径都会产生副作用
Registry/@Value
属性允许您使用语法[!FileId]
获取具有匹配Id
属性的文件的短路径。不幸的是,这不适用于Environment/@Value
属性,也不适用于目录标识符
这意味着您必须自己编写自定义操作来解决它。如果可能的话,我建议修复读取属性的东西,以支持长路径