2011-06-09 84 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