2011-06-09 91 views

回答

2

根據我的研究,Wix目前不具備使用標準操作集啓用Directory Browsing的功能。我發現這樣做的一種方式是使用Wix自定義操作和IIS的Appcmd.exe的組合。請注意,如果文件不存在,該命令將創建一個web.config文件。

<CustomAction Id="EnableDirectoryBrowsing" 
       Execute="deferred" 
       ExeCommand='[WindowsFolder]system32\inetsrv\APPCMD.EXE set config "ESG Website/logs" /section:directoryBrowse /enabled:true' 
       Directory="TARGETDIR" 
       Return="check" 
       Impersonate="no"/> 


<InstallExecuteSequence> 
    <Custom Action="EnableDirectoryBrowsing" Before="InstallFinalize">Not Installed</Custom> 
</InstallExecuteSequence> 
-1

使用下面的代碼

<Control Id="Browse" Type="PushButton" X="304" Y="210" Width="56" Height="17" Text="!(loc.CustomizeDlgBrowse)"> 
      <Publish Event="SelectionBrowse" Value="BrowseDlg">1</Publish> 
</Control> 

利用這個值在你想要的變量,並使用它。

+0

只是爲了澄清,您的答案將使我enabl e目錄瀏覽IIS上的虛擬目錄? – Ahmad 2011-06-13 11:20:44

+0

你的意思是你有一個虛擬目錄說雅虎,你想映射它到某個目錄? – 2011-06-14 05:10:07

+0

是的,我指的是IIS中的虛擬目錄。我已經能夠使用WIX創建它們,我想爲這些虛擬目錄啓用「目錄瀏覽」。 – Ahmad 2011-06-14 05:12:46

3

那不是一個簡單的解決方案是使用在web.config system.webserver像財產:使用

<directoryBrowse enabled="true"/> 
+0

有時候,是的。按照優先順序的三種技術是:1)開發人員維護web.config 2)wix iis擴展3)web.config xpath更新4)appcmd自定義操作。在舊版本的IIS#1和#3中不可用。如果應用程序具有固定的變化點,則可以使用互斥的web.config組件(web.config-qa,web.config-prod)。如果變化點是可變的,則可以在具有屬性的installtime中使用選項2或3。 #4是最後的手段,因爲它沒有進程和非事務性。 – 2015-12-10 13:55:29

+0

僅供參考 - directoryBrowse元素是在IIS 7.0中引入的,因此如果這是某個給定項目的關注點,則此解決方案不適用於IIS 6.0。 – 2015-12-10 13:59:16

0

林威克斯V3.8

嘗試在功能

加入ConfigurableDirectory

ex:<Feature Id='TestName' Title='Test Web' ConfigurableDirectory='INSTALLDIR' Level='1'>

+0

不回答問題。 – 2015-12-10 13:56:18