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>
有帮助吗?

解决方案

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>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top