繁体   English   中英

MSBuild可以同时构建Release和QA?

[英]MSBuild to build Release and QA at same time?

我在TeamCity中有一个正常的msbuild脚本,用于构建Release配置。 我还需要它来构建“ QA”配置并将其复制到QA文件夹。 可以在一个脚本中完成此操作,还是需要多脚本?

<?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>

如果只是QA的配置属性值不同,则可以在teamcity构建中添加另一步骤,并使用QA配置值调用相同的MSBUild脚本。 就像是:

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

另外,您可以尝试将脚本编辑为以下内容:

<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 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM