2009-11-11 22 views
3

如果您想安全使用默認網站(安全地指安裝程序不會在卸載時刪除默認網站),Wix WebSite操作has to be specified outside of a Component當沒有選擇網頁功能時,如何禁用Wix中的網站操作?

<Fragment> 
    <iis:WebSite Id="DefaultWebSite" Description="Default Web Site" Directory="INSTALLDIR"> 
     <iis:WebAddress Id="AllUnassigned" Port="80" /> 
    </iis:WebSite> 
</Fragment> 

我的安裝程序有一堆功能,有些功能只在安裝IIS時啓用。基於條件禁用功能工作正常,沒有虛擬目錄或網站創建的,但在安裝MSI仍嘗試IIS接觸。由於該網站的行動和失敗沒有IIS安裝在計算機上:

"Cannot connect to Internet Information Server. (-2137221164  )" 

我發現一些關於SKIPCONFIGUREIIS,但這似乎並沒有在維克斯3工作。

回答

1

我設法解決這個在WIX 3使用自定義操作條件支持InstallExecuteSequence。這個例子假設功能「網絡」是唯一一個需要我們進行IIS操作:

<InstallExecuteSequence> 
    <!-- Disable ConfigureIIS if we don't need it: --> 
    <Custom Action="ConfigureIIs" After="InstallFiles">(&amp;Web = 3)</Custom> 
</InstallExecuteSequence> 
+1

啊,維克斯的無窮奧祕。 – Cheeso 2009-11-25 20:52:09

+0

「產品:*」部分中未解決對符號「CustomAction:ConfigureIIS」的引用。 – 2016-09-07 10:09:50

+0

@NineTails它是區分大小寫的,所以它的'ConfigureIIs'不是'ConfigureIIS' – brendonparker 2018-01-10 23:03:34

0

我剛剛看了一下,發現,在維克斯生成​​的微星,在InstallExecuteSequence關聯到ConfigureIis行的條件NOT SKIPCONFIGUREIIS AND VersionNT > 400表。

換句話說,你也可以使用自定義操作是這樣的:

<InstallExecuteSequence> 
    <!-- Disable the ConfigureIIs action if we don't need it: --> 
    <Custom Action="CA.SkipConfigureIIs" 
      After="InstallFiles">NOT &amp;F.IisFeature = 3</Custom> 
</InstallExecuteSequence> 


<CustomAction Id="CA.SkipConfigureIIs" 
       Property="SKIPCONFIGUREIIS" 
       Value="1" 
       Return="check" /> 
+0

謝謝,我認爲SKIPCONFIGUREIIS位是Wix 2? – 2009-11-26 10:33:26

+0

它仍然在我的MSI,我使用3.0.5419.0。 – Cheeso 2009-11-26 14:29:45

3

這救了我從很多痛苦!只是想補充說,無論安裝狀態如何,上述都會在卸載時跳過IIS配置。 I.E.如果安裝了該功能,則在卸載時不會從IIS中刪除虛擬目錄。

這似乎爲我工作:

<InstallExecuteSequence> 
    <!-- Disable ConfigureIIS if we don't need it: --> 
    <Custom Action="ConfigureIIs" After="InstallFiles"><![CDATA[&Web=3 OR !Web=3]]></Custom> 
</InstallExecuteSequence> 
+0

謝謝阿德里安,我想我需要再次檢查我的卸載! – 2010-02-16 12:10:53

相關問題