我想为使用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