Установка веб-приложения с помощью Wix - PullRequest
5 голосов
/ 14 сентября 2010

Поэтому я пытаюсь установить веб-приложение и наткнулся на этот вопрос: Использование WiX для создания виртуального каталога IIS .Когда я пытаюсь адаптировать это для своего собственного приложения, я получаю сообщение об ошибке:

W: \ projectlocation \ IssInstallationComponents.wxs (6,0): ошибка LGHT0204: ICE18: KeyPath для компонента: «SiteInstallationComponent» - это каталог: «WEBDIRECTORY»».Пара Каталог / Компонент должна быть указана в таблице CreateFolders.

Я застрял, пытаясь понять это.Вот что у меня в уязвимом файле:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:iis="http://schemas.microsoft.com/wix/IIsExtension">
  <Fragment>
    <DirectoryRef Id="WEBDIRECTORY">
      <Component Id="SiteInstallationComponent" Guid="MY GUID">
          <iis:WebVirtualDir Id="ProductVirtualDirectory" Alias="[PRODUCTVERSION]" Directory="WEBDIRECTORY" WebSite="DefaultWebSite"/>
      </Component>
    </DirectoryRef>

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

Несколько замечаний по моему примеру.Во-первых, я знаю, что GUID неверен, я удалил его из приведенного выше примера, чтобы он не индексировался Google и не использовался кем-то, кто хочет выяснить что-то подобное.В моем коде у меня есть правильный GUID.Я также изменил название продукта на «Продукт», чтобы избежать каких-либо проблем с IP.

Есть идеи о том, что мне нужно сделать, чтобы этот код работал?

Ответы [ 2 ]

12 голосов
/ 14 сентября 2010

вздыхает

Хорошо, я начал копаться в паутине и нашел следующую ветку: http://www.mail-archive.com/wix-users@lists.sourceforge.net/msg03483.html

В основном мне нужно изменить свой компонент так, чтобы он выглядел так:

  <Component Id="SiteInstallationComponent" Guid="MY GUID">
      <CreateFolder />
      <iis:WebVirtualDir Id="ProductVirtualDirectory" Alias="[PRODUCTVERSION]" Directory="WEBDIRECTORY" WebSite="DefaultWebSite"/>
  </Component>

Я люблю Wix, но иногда это сводит меня с ума.

2 голосов
/ 17 января 2011

Думаю, я бы немного добавил к этому.В моем случае мне нужно было изменить файл конфигурации как часть патча с действием XmlConfig.Я столкнулся с исходной проблемой, а также попытался обойти ее, просто вставив туда элемент CreateFolder.Но с этим есть загвоздка.Если ваш компонент является частью патча, размещение там записи CreateFolder делает его не удаляемым .Это означает, что вы не можете откатить патч.

В итоге я создал другую KeyPath для компонента.Я дал ему ключ реестра в качестве KeyPath, и он перестал беспокоить меня по поводу записи CreateFolder.Это означает, что он будет делать все, что вы хотите, чтобы он делал при установке и удалении, и используйте ключ реестра, который вы ему дали, чтобы отслеживать, установлен ли компонент.

<RegistryKey Root="HKLM" Key="[REGISTRYKEY]\Settings\[TITLE]" Action="createAndRemoveOnUninstall">
  <RegistryValue Action="write" Type="integer" Name="MACHINEMEMORYLIMIT" Value="1" KeyPath="yes"/>
</RegistryKey>

(В этом случае REGISTRYKEY and TITLEдва свойства мы передали в установщик)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...