Передать значение из TeamBuild в MSBuild - PullRequest
0 голосов
/ 09 мая 2009

У меня есть сборка, которая работает в TFS TeamBuild. Я хочу передать свойство из этого в MSBuild, который запускается для каждого проекта, созданного TFSBuild.proj.

Пример:

TFSBuild.proj

<PropertyGroup>
   <Version>0.0.0.0</Version>
</PropertyGroup>

<Target Name="BuildNumberOverrideTarget" 
        DependsOnTargets="AfterInitializeWorkspace">

  <!--Code that loads the version from a file (removed).-->

  <PropertyGroup>
    <!--Save off the version.-->
    <Version>$(TxCompleteVersion)</Version>
</PropertyGroup>

MyWIXProjectFile.wixproj

<Target Name="BeforeBuild">
<PropertyGroup>
  <!--If Version is defined then use that.  
   Else just use all zeros to show that this is a developer built version-->
  <CurrentVersion Condition="'$(Version)' == ''" >0.0.0.0</CurrentVersion>
  <CurrentVersion Condition="'$(Version)' != ''" >$(Version)</CurrentVersion>
</PropertyGroup>
<Message Condition="'$(Version)' == ''" 
         Text="Version info is empty (i.e. a developer build).  Version set to $(CurrentVersion)"/>

</Target>

Когда MyWixProjectFile.wixproj создается, сообщение о том, что $ (Version) пусто, печатается каждый раз.

Есть ли способ получить файл проекта для просмотра свойств TFSBuild.proj?

Vaccano

Ответы [ 3 ]

0 голосов
/ 11 мая 2009

Это делается с помощью метаданных свойств в теге SolutionToBuild. Например:

  <ItemGroup>
    <SolutionToBuild Include="$(BuildProjectFolderPath)\ChangeThisOne.sln">
      <Targets></Targets>
      <Properties>Change=True</Properties>
    </SolutionToBuild>
    <SolutionToBuild Include="$(BuildProjectFolderPath)\ChangeThisToo.sln">
      <Targets></Targets>
      <Properties>Change=True</Properties>
    </SolutionToBuild>
    <SolutionToBuild Include="$(BuildProjectFolderPath)\DontChangeThis.sln">
      <Targets></Targets>
      <Properties>Don'tChange=False</Properties>
    </SolutionToBuild>
  </ItemGroup>
0 голосов
/ 16 мая 2009

Вариант 1

Используйте MSBuild для прямого вызова MyWIXProjectFile.wixproj и передачи Version в качестве свойства

Вариант 2

Абстрагируйте сборку wix в свой собственный скрипт, а затем используйте MSBuild для прямого вызова и передачи всех необходимых свойств. У меня есть блог с полной реализацией, делающий это на http://blog.newagesolution.net/2008/06/how-to-use-msbuild-and-wix-to-msi.html, который может вас заинтересовать.

0 голосов
/ 09 мая 2009

Я не эксперт по Wix, но я нашел это и подумал, что вы можете попробовать.

Настройка свойств для WiX в MSBuild

...