c#
  • windows
  • wix
  • windows-installer
  • environment-variables
  • 2013-04-17 57 views 1 likes 
    1

    我使用维克斯为应用程序使用短名称

    的环境变量在AppName.wxs设置创建MSI:

    <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 \客户端\ 2.0.0.0

    我想要做的是设置MYAPP_HOME短叫什么名字如下: C:\ PROGRA〜2 \ MYAPP \客户端\ 2.0.0.0

    我已经看过SHORTFILENAMES财产,但不知道如何适应与.wxs文件。

    可以在Wix中使用程序文件的简称吗?

    感谢

    汤姆

    回答

    1

    您可以设置SHORTFILENAMES的值在您的MSI,这将强制所有内容被安装到短的路径。这是最接近可能的工作,但将有任何你习惯看长的形式的副作用。

    Registry/@Value属性允许您使用语法[!FileId]来获取具有匹配Id属性的File的短路径。不幸的是,这不适用于Environment/@Value属性,它也不适用于目录标识符。

    这意味着你被困在写自定义操作来解决它自己。如果可能的话,我会建议修改读取属性的东西来代替支持长路径。 :)

    相关问题