2013-07-15 3 views
2

Я создаю установку MSI с WIX для своего веб-приложения. Это работает правильно. Единственное, что я не получаю, это включить преобразование конфигурации стандартного метода публикации веб-приложений.Преобразование конфигурации в настройке WIX

Я понимаю, что вы можете добавить тег использования для существующих целевых файлов. Я попытался добавить TransformXml в объект AfterBuild в файле проекта установщика WIX, но это не работает.

<TransformXml Source="Web.Config" Transform="Web.$(Configuration).config" Destination="Web.Config" /> 

Может кто-нибудь мне помочь?

Я создал тестовый проект для этого называется WebApplicationWix

ответ

2

я не видел ни одного упоминания о TransformXml в вашем примере проекта.

Вам нужны коды, подобные этому:

<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll" /> 
<Target Name="AfterCompile"> 
    <CallTarget Targets="TransformWebConfiguration" Condition="Exists('web.$(Configuration).config')"/> 
</Target> 

<Target Name="TransformWebConfiguration"> 
    <!-- Generate transformed web configuration --> 
    <TransformXml Source="web.config" Destination="web.transformed.config" Transform="web.$(Configuration).config" /> 
</Target> 

несколько вещей, чтобы отметить:

  1. Проверьте путь к Microsoft.Web.Publishing.Tasks.dll в элементе UsingTask (изменение для ваша версия Visual Studio)
  2. В вашем примере источник и пункт назначения были одинаковыми; вы должны убедиться, что пункт назначения - это другой файл, так что у вас нет проблем с блокировкой файлов или перезаписывается файл web.config, который вы пытаетесь преобразовать с преобразованным.
  3. В Visual Studio 2010 были проблемы с блокировкой файлов с TransformXml, поэтому будьте осторожны, если вы используете 2010.
Смежные вопросы