2014-10-28 92 views
0

我想知道如何通過使用屬性來設置複製文件的安裝路徑。所以,請讓任何人解釋答案。如何使用屬性來設置安裝路徑?

+0

你不想使用** InstallDirDlg **?基本上它只是''元素和它自己的子元素,所以如果你想在_c:/ programfiles/sample_中安裝你的簡單創建結構:'<目錄ID = 「APPLICATIONROOTDIRECTORY」 NAME = 「樣品」> '你應該閱讀[這可怎麼](http://wixtoolset.org/documentation/manual/v3/howtos/files_and_registry/add_a_file.html )。您在** Directory Id =「APPLICATIONROOTDIRECTORY」中添加組件** :) – Buzka91 2014-10-28 13:19:17

+0

您究竟在尋找什麼?您是否想在運行MSI時通過安裝路徑?或者你是否試圖通過從註冊表中讀取或類似的東西來設置安裝路徑? – Isaiah4110 2014-10-28 17:43:50

+0

我需要在屬性中設置安裝路徑。然後想要在自定義操作中引用該屬性。這就是我要的.. – Kathir 2014-10-29 03:35:52

回答

0

如果您使用的是引導程序,您可以定義一個變量那樣:

<Variable Name="INSTALLFOLDER" 
      bal:Overridable="yes" 
      Type="string" 
      Value="[ProgramFilesFolder]"/> 

這個變量的ProgramFilesFolder爲默認值,但它可以被覆蓋。 您可以在Process.Start(當引導程序由EXE調用時)中將它設置爲參數,或者 - 如果您已經編寫了您自己的引導程序GUI - 您可以在GUI代碼中設置該變量。

在MsiPackage中您必須將該變量設置爲MsiProperty INSTALLLOCATION,您可以在MSI項目的Product.wxs中定義該變量。 希望它可以幫助你。

 <MsiPackage Id='SetupPackage' 
        SourceFile='.\Resources\Setup.msi' 
        Permanent='no' 
        Cache='yes' 
        DisplayInternalUI='no' 
        Vital='yes' 
        Compressed='yes' 
        EnableFeatureSelection='no' 
        DisplayName='MySetup'> 
      <MsiProperty Name="INSTALLLOCATION" 
         Value="[INSTALLFOLDER]" /> 
     </MsiPackage> 
0

我知道這可能來不及回答,但有人會覺得它有用。在維克斯項目中定義

每個目錄元素可以作爲一個屬性使用ID來訪問:

例如,如果您有:

<Fragment> 
    <Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="ProgramFilesFolder"> 
      <Directory Id="INSTALLFOLDER" Name="My Directory" /> 
     </Directory> 
    </Directory> 
</Fragment> 

你將有一個屬性命名INSTALLFOLDER,你會能夠從您的自定義操作中訪問它。

看看我的回答here,這將給你如何將參數傳遞給你的自定義動作和使用它們的想法。

相關問題