Msbuild用于将程序集复制到几个应用程序文件夹?

时间:2014-08-15 01:25:42

标签: c# visual-studio msbuild ar

我有一个VS解决方案,其中包含一些应用程序和公共API以及共享库。我在制作像这样的msbuild文件方面有一些浅薄的经验。

    <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"  DefaultTargets="Build">
<PropertyGroup>
  <Configuration>Release</Configuration>
  <Platform>Any CPU</Platform>
  <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>


  <TPath>C:\Program Files (x86)\MSBuild\ExtensionPack\4.0\MSBuild.ExtensionPack.tasks</TPath>
  <ETPath>C:\Program Files (x86)\MSBuild\ExtensionPack\4.0\</ETPath>

</PropertyGroup>

<ItemDefinitionGroup />
<ItemGroup>

  <SolutionFile Include="MyApplications.sln" />

</ItemGroup>


<Target Name="Build" Outputs="@(CollectedBuildOutput)">
  <MSBuild Projects="@(SolutionFile)" Targets="Rebuild" BuildInParallel="True"
         Properties="BuildingSolutionFile=true; Configuration=$(Configuration); Platform=$(Platform); TargetFrameworkVersion=$(TargetFrameworkVersion); WarningLevel=3"
         SkipNonexistentProjects="%(ProjectReference.SkipNonexistentProjects)">
  <Output TaskParameter="TargetOutputs" ItemName="CollectedBuildOutput"/>

</MSBuild>

</Target>


</Project>

然后我跑

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe MyProjects.msbuild /p:outdir=C:\VSProjectsRelease\MyApplications\Release\

因此所有程序集都将转到同一目录。到现在为止还挺好。但是,如果我想为每个应用程序压缩文件,或者为Wix安装项目收集文件,则会出现问题。

例如,在MyApplications.sln中,我有10个项目,其中3个是AppA,AppB和AppC等应用程序。

我想运行一个msbuild文件,该文件将创建3个应用程序文件夹,并将程序集复制到那里而不显式定义依赖项,因为Sln和csproj文件已经具备了这些知识。我希望msbuild只构建一次每个项目。这该怎么做?

0 个答案:

没有答案