c#
  • windows
  • wix
  • windows-installer
  • environment-variables
  • 2013-04-17 70 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屬性,它也不適用於目錄標識符。

    這意味着你被困在寫自定義操作來解決它自己。如果可能的話,我會建議修改讀取屬性的東西來代替支持長路徑。 :)

    相關問題