2011-02-16 80 views
1

我嘗試創建安裝程序,其中也創建了網站。 我用下面的代碼WiX和iis(無法連接到互聯網信息服務器)

.... 
<DirectoryRef Id="WEBFOLDER"> 
    <Component Id="WebLibraries" Guid="77532F98-BF0B-4b9d-98AF-15618691A090" KeyPath="yes"> 
     <iis:WebSite Id="DefaultWebSite" Description="Default Web Site" Directory="WEBFOLDER"> 
      <iis:WebAddress Id="AllUnassigned" Port="80" /> 
     </iis:WebSite> 
    </Component> 
</DirectoryRef> 
.... 
<Feature Id="WebSite" Level="1" Title="Web site"> 
    <ComponentRef Id="WebLibraries" /> 
</Feature> 
.... 

但是當我嘗試機,其中未安裝IIS上安裝創建的包,我有這個消息,即使我不檢查這個功能:

不能連接到互聯網信息服務器

任何人都可以幫助我解決這個問題嗎?

在此先感謝。

回答

2

您正在將安裝包安裝在未安裝IIS的計算機上。你會期待什麼? :)

嚴肅地說,WiX IIsExtension(定義WebSite元素的那個)使用IIS組件的API來實際完成其工作。對於WiX v3.0,它甚至需要在IIS 7中打開IIS 6兼容性才能正常工作。

包含WebSite元素的組件不受限制。這意味着它將始終安裝。安裝後,IIsExtension會嘗試創建一個定義在其中的網站(如果我們簡短地講這個故事)。

所以,我建議你做以下的(如果你願意只跳過這樣的目標計算機的安裝程序的IIS部分):

  • 添加一個啓動條件來檢查IIS組件安裝(可以依賴於IIsExtension本身定義IISMAJORVERSION屬性)
  • 條件您的組件(或功能),這是依賴於IIS與「NOT IISMAJORVERSION」條件

其結果是,在未設置IISMAJORVERSION屬性(IIS是未安裝),您的組件將不會安排安裝,並且IIS自定義操作將不會運行。

P.S.我最初意指的SKIPCONFIGUREIIS屬性是「全有或全無」開關,並不適合您的情況。

+0

我希望,當這個功能未被選中時,IIS擴展不會被執行。在這種情況下,我無法理解iis extension究竟做了什麼? – basilkot 2011-02-16 13:27:56

相關問題