2013-01-23 19 views
1

如果D驅動器(D:\ MyApp)不存在,那麼我想將我的應用程序安裝到E驅動器(E:\ MyApp)中,如果D驅動器也不存在於目標計算機中,那麼我想安裝在C驅動器(C:\ MyApp的)。我應該在預處理器中使用哪個變量來檢查驅動器的存在?誰能幫我?如何檢查WIX中D和E驅動器的存在?

<?if E Drive exists ?> 
<?define varRootDrive = "E:\" ?> 
<?elseif D Drive exists ?> 
<?define varRootDrive = "D:\" ?> 
<?else ?> 
<?define varRootDrive = "C:\" ?> 
<?endif ?> 
<?endif ?> 

<Property Id="TARGETDIR"> $(var.varRootDrive) </Property> 
+0

網絡不好。 http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/How-to-check-the-existence-of-D-and-E-drives-in-WIX-td7583102.html –

回答

1

預處理器語句在構建時評估不安裝時間。您需要自定義操作來檢測是否存在有效的驅動器號並在安裝時動態設置安裝位置。

+0

謝謝克里斯!我在64位開發機器上嘗試了類似下面的情況,當我在同一臺機器上運行安裝程序時,我的安裝路徑是C:\ MyApp,爲什麼它的行爲如此? <如果$(var.Platform)= 64?><限定RootDrive1 = 「d:\」?> <?限定RootDrive1 = 「C:\」?> <資源ID ='ROOTDRIVE'Value ='$(var.RootDrive1)'/> Dev

+2

1)不要理解我對預處理器語句所說的話,2)如果您正在開發機器上運行新的安裝,那麼您正在玩火。獲取虛擬機或者你會被燒燬。 –

相關問題