簡體   English   中英

將單獨目錄中的多個Web.config文件添加到WIX安裝程序

[英]Adding multiple Web.config files in separate directories to WIX installer

我正在為ASP.net應用程序創建Wix安裝程序包,但是即使嘗試添加多個Web.config文件(即使它們位於不同目錄中)也遇到錯誤。

到目前為止,我的代碼如下所示:

<Directory Id="INSTALLLOCATION" Name="Site" >
  <Component Id="Web.Config" Guid="F9D6C6E5-887E-4D90-BDEB-5D16AAA8F194">
    <File DiskId="1" KeyPath="yes" Source="$(var.SolutionDir)\publish\Web.config" />
  </Component>
  <Directory Id="Account.Dir" Name="Account">
    <Component Id="Account.Web.Config" Guid="53FC1820-3ADD-41C0-92D6-9A66348C33A4">
      <File DiskId="1" KeyPath="yes" Source="$(var.SolutionDir)\publish\Account\Web.config" />
    </Component>
  </Directory>
</Directory>

<Feature Id="DefaultFeature" ConfigurableDirectory="TARGETDIR" Level="1">
  <ComponentRef Id="Web.Config"/>
  <ComponentRef Id="Account.Web.Config"/>
<Feature>

我收到的錯誤消息是: "Duplicate symbol 'File:Web.config' found. This typically means that an Id is duplicated. Check to make sure all your identifiers of a given type (File, Component, Feature) are unique."

據我所知,您不能使用WIX兩次安裝相同的文件,但是這些文件在不同的位置具有相同的名稱,但它們是不同的文件。 當我重命名其中一個文件時,安裝程​​序將按預期工作,但這無濟於事,因為兩個文件都需要命名為Web.config。 我認為ID或GUID並不是問題,因為它們是唯一的並且更改文件名是可行的。

有人有想法嗎?

錯誤消息正確,但不確認WiX正在生成ID。 為了減少混亂,WiX的后續版本越來越多地允許省略某些屬性,因為通常不需要在創作的其他部分中引用它們。

根據架構文檔,文件/ @ Id必須唯一。

此File元素的唯一標識符。 如果省略Id,則默認為Source屬性的文件名部分(如果已指定)。 通過指定[#value]可以引用為屬性。

您只需要為一個或兩個File元素賦予Id屬性,以便分配和生成的File / @ Id元素是唯一的。

為每個文件元素賦予唯一的ID屬性:

<File Id="Web" DiskId="1" KeyPath="yes" Source="$(var.SolutionDir)\publish\Web.config" />

   <File Id="Account" DiskId="1" KeyPath="yes" Source="$(var.SolutionDir)\publish\Account\Web.config" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM