msbuild wix proj file - PullRequest
       37

msbuild wix proj file

0 голосов
/ 26 июня 2011

У меня есть текущая сборка с использованием teambuild / msbuild, в которую мне нужно интегрировать компиляцию wix.

Проект Wix не является частью создаваемого решения, вместо этого он живет с различными инструментами, которые получаютподключился к каталогу TFSBuild.proj.

Прежде чем я смогу построить проект установки, я должен использовать Heat, чтобы собрать пару каталогов, которые были созданы во время цели после компиляции.У меня это работает нормально, но теперь я не уверен, как скомпилировать мой проект wix

Цель после компиляции выглядит следующим образом

 <Target Name="AfterCompile" DependsOnTargets="CopyOutputFiles;BuildMsi;BuildZip" />

Где выходные файлы копирования скопировали скомпилированные файлы вопределенный каталог и выполняет с ним немного больше работы, и это вывод, который мне нужно включить в мой проект Wix.

Цель BuildMsi в настоящее время выглядит следующим образом.

 <Target Name="BuildMsi" >
    <Message Text="Start harvesting Website files for Wix compliation" />
    <HeatDirectory
                  ToolPath="$(WixToolPath)"
                  Directory="$(DropLocation)\Latest\x86\Release\_PublishedWebsites\IFMA.MasterPlan.Web"
                  GenerateGuidsNow="yes"
                  ComponentGroupName="MasterPlanWeb"
                  OutputFile="$(MSBuildProjectDirectory)\Setup\Product\Fragments\wwwfiles.wxs"
                  SuppressFragments="yes"
                  DirectoryRefId="WEBROOT"
                  KeepEmptyDirectories="yes"
                  PreprocessorVariable="var.WebRoot"
                  SuppressRegistry="yes"
                  SuppressRootDirectory="yes"
                  SuppressCom="yes" />

    <Message Text="Finished harvesting Website files for Wix compliation" />

    <Message Text="Start harvesting database files for Wix compliation" />
    <HeatDirectory
                  ToolPath="$(WixToolPath)"
                  Directory="$(DropLocation)\Latest\x86\Release\Database"
                  GenerateGuidsNow="yes"
                  ComponentGroupName="MasterPlanWeb"
                  OutputFile="$(MSBuildProjectDirectory)\Setup\Product\Fragments\dbfiles.wxs"
                  SuppressFragments="yes"
                  DirectoryRefId="WEBROOT"
                  KeepEmptyDirectories="yes"
                  PreprocessorVariable="var.WebRoot"
                  SuppressRegistry="yes"
                  SuppressRootDirectory="yes"
                  SuppressCom="yes" />
<Message Text="Finished harvesting database files for Wix compliation" />  
  </Target>

Итактеперь каталог Wix $ (MSBuildProjectDirectory) \ Setup содержит нужные ему фрагменты, и мне просто нужно скомпилировать проект wix "$ (MSBuildProjectDirectory) \ Setup \ Setup.proj".

Нужно ли сначала вызыватьзадайте свечу и задайте различные свойства, а затем передайте вывод этой задачи в легкую задачу, или я могу как-то просто скомпилировать файл .proj напрямую, поскольку он уже содержит всю необходимую информацию (например, библиотеки, на которые ссылаются и т. д.).

1 Ответ

1 голос
/ 25 июля 2011

Я бы создал .wixproj со списком элементов Compile для вашего продукта, поместил цель BuildMsi выше в этот .wixproj и запланировал его BeforeCompileAndLink.Затем укажите TFS для MSBuild .wixproj.

Таким образом, ваша сборка установки будет полностью сохранена.

...