Вопрос

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

Пример:

TFSBuild.проект

<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 Файл 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?

Ваккано

Это было полезно?

Решение 2

Это делается с помощью метаданных свойств в теге 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>

Другие советы

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

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

Вариант 1

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

Вариант 2

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top