Pergunta

I have a working msbuild script in TeamCity which builds the Release configuration. I also need it to build the "QA" configuration and copy it to the QA folder. Can this be done in one script, or do I need multplie scripts?

<?xml version="1.0" encoding="utf-8" ?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
 <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
 <SolutionName>AOP</SolutionName>
 <SolutionFile>AOP.sln</SolutionFile>
 <ProjectName>AOP.Web</ProjectName>
 <ProjectFile>AOP.Web\AOP.Web.csproj</ProjectFile>
</PropertyGroup>

 <Target Name="Build" DependsOnTargets="BuildPackage;CopyOutput" />

<Target Name="BuildPackage">
 <MSBuild Projects="$(SolutionFile)" ContinueOnError="false" Targets="Rebuild" Properties="Configuration=$(Configuration)" />
 <MSBuild Projects="$(ProjectFile)" ContinueOnError="false" Targets="Package" Properties="Configuration=$(Configuration)" />
</Target>

 <Target Name="CopyOutput">
 <ItemGroup>
  <PackagedFiles Include="$(ProjectName)\obj\$(Configuration)\Package\PackageTmp\**\*.*"/>
   </ItemGroup>
   <Copy SourceFiles="@(PackagedFiles)" DestinationFiles="@(PackagedFiles->'c:\devDeploy\AOP\$(Configuration)\%(RecursiveDir)%(Filename)%(Extension)')"/>
  </Target>
</Project>
Foi útil?

Solução

If its just the value of configuration property which is different for QA, may be you can add another step in the teamcity build and call the same MSBUild script with the QA configuration value. Something like:

msbuild.exe YourScript.proj /p:Configuration=DEBUG

Alternatively you can try editing your script to something like:

<PropertyGroup>
   <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
   <QAConfiguration Condition=" '$(Configuration)' == '' ">QAConfig</QAConfiguration>
   <SolutionName>AOP</SolutionName>
   <SolutionFile>AOP.sln</SolutionFile>
   <ProjectName>AOP.Web</ProjectName>
   <ProjectFile>AOP.Web\AOP.Web.csproj</ProjectFile>
</PropertyGroup>  

<Target Name="Build" DependsOnTargets="BuildPackage;CopyOutput;BuildQAPackage;CopyQAOutput" />
<Target Name="BuildPackage">
 <MSBuild Projects="$(SolutionFile)" ContinueOnError="false" Targets="Rebuild" Properties="Configuration=$(Configuration)" />
 <MSBuild Projects="$(ProjectFile)" ContinueOnError="false" Targets="Package" Properties="Configuration=$(Configuration)" />
</Target>

<Target Name="CopyOutput">
  <ItemGroup>
    <PackagedFiles Include="$(ProjectName)\obj\$(Configuration)\Package\PackageTmp\**\*.*"/>
  </ItemGroup>
  <Copy SourceFiles="@(PackagedFiles)" DestinationFiles="@(PackagedFiles->'c:\devDeploy\AOP\$(Configuration)\%(RecursiveDir)%(Filename)%(Extension)')"/>
</Target>

<Target Name="BuildQAPackage">
  <MSBuild Projects="$(SolutionFile)" ContinueOnError="false" Targets="Rebuild" Properties="Configuration=$(QAConfiguration)" />
  <MSBuild Projects="$(ProjectFile)" ContinueOnError="false" Targets="Package" Properties="Configuration=$(QAConfiguration)" />
</Target>

<Target Name="CopyQAOutput">
  <ItemGroup>
    <PackagedFiles Include="$(ProjectName)\obj\$(QAConfiguration)\Package\PackageTmp\**\*.*"/>
  </ItemGroup>
  <Copy SourceFiles="@(PackagedFiles)" DestinationFiles="@(PackagedFiles->'c:\devDeploy\AOP\$(QAConfiguration)\%(RecursiveDir)%(Filename)%(Extension)')"/>
</Target>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top