문제

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