我想爲使用WIX的下列虛擬Web目錄啓用「目錄瀏覽」。如何使用wix爲虛擬Web目錄啓用目錄瀏覽?
<iis:WebVirtualDir Id="LogsVirDir" Alias="Logs" Directory="ESGLOGFILES" />
如何使用WIX來完成此操作?
我想爲使用WIX的下列虛擬Web目錄啓用「目錄瀏覽」。如何使用wix爲虛擬Web目錄啓用目錄瀏覽?
<iis:WebVirtualDir Id="LogsVirDir" Alias="Logs" Directory="ESGLOGFILES" />
如何使用WIX來完成此操作?
根據我的研究,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>
使用下面的代碼
<Control Id="Browse" Type="PushButton" X="304" Y="210" Width="56" Height="17" Text="!(loc.CustomizeDlgBrowse)">
<Publish Event="SelectionBrowse" Value="BrowseDlg">1</Publish>
</Control>
利用這個值在你想要的變量,並使用它。
那不是一個簡單的解決方案是使用在web.config system.webserver像財產:使用
<directoryBrowse enabled="true"/>
有時候,是的。按照優先順序的三種技術是: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
僅供參考 - directoryBrowse元素是在IIS 7.0中引入的,因此如果這是某個給定項目的關注點,則此解決方案不適用於IIS 6.0。 – 2015-12-10 13:59:16
林威克斯V3.8
嘗試在功能
加入ConfigurableDirectoryex:<Feature Id='TestName' Title='Test Web' ConfigurableDirectory='INSTALLDIR' Level='1'>
不回答問題。 – 2015-12-10 13:56:18
只是爲了澄清,您的答案將使我enabl e目錄瀏覽IIS上的虛擬目錄? – Ahmad 2011-06-13 11:20:44
你的意思是你有一個虛擬目錄說雅虎,你想映射它到某個目錄? – 2011-06-14 05:10:07
是的,我指的是IIS中的虛擬目錄。我已經能夠使用WIX創建它們,我想爲這些虛擬目錄啓用「目錄瀏覽」。 – Ahmad 2011-06-14 05:12:46