1 <Project DefaultTargets="Build">
3 <Import Project="$(MSBuildThisFileDirectory)directories.props" />
5 <!-- Build Properties -->
7 <Configuration Condition="'$(Configuration)' == ''">Release</Configuration>
8 <BuildWithAnalyzer Condition="'$(BuildWithAnalyzer)' == ''">False</BuildWithAnalyzer>
9 <BuildDesignAssembly Condition="'$(BuildDesignAssembly)' == ''">False</BuildDesignAssembly>
12 <!-- Projects to build -->
14 <ProjectToBuild Include="$(ProjectSrcDir)\$(Project)\$(Project).csproj"
15 Condition="'$(Project)' != '' And Exists('$(ProjectSrcDir)\$(Project)\$(Project).csproj') " />
16 <ProjectToBuild Include="$(InternalProjectSrcDir)\$(Project)\$(Project).csproj"
17 Condition="'$(Project)' != '' And Exists('$(InternalProjectSrcDir)\$(Project)\$(Project).csproj') " />
18 <ProjectToBuild Include="$(ProjectSrcDir)**\*.csproj" Condition="'$(Project)' == ''" />
19 <ProjectToBuild Include="$(InternalProjectSrcDir)**\*.csproj" Condition="'$(Project)' == '' " />
20 <DesignProject Include="$(ProjectSrcDir)**\*.Design.csproj" />
21 <DesignProject Include="$(InternalProjectSrcDir)**\*.Design.csproj" />
22 <ProjectToBuild Remove="@(DesignProject)" Condition="'$(BuildDesignAssembly)' != 'True' " />
25 <!-- Nuspec files to pack -->
27 <NuspecFiles Include="$(ProjectRootDir)pkg\**\*.nuspec" />
34 including the Artifacts/ directory and the obj and bin directories of all projects.
39 <ProjectIntermediateAllFiles Include="$(ProjectSrcDir)**\obj\**" />
40 <ProjectIntermediateAllFiles Include="$(ProjectSrcDir)**\bin\**" />
41 <ProjectIntermediateAllFiles Include="$(InternalProjectSrcDir)**\obj\**" />
42 <ProjectIntermediateAllFiles Include="$(InternalProjectSrcDir)**\bin\**" />
43 <ProjectIntermediateDir Include="@(ProjectIntermediateAllFiles->'%(RootDir)%(Directory)'->Distinct())" />
47 <DirToRemove Include="$(OutputBaseDir)" />
48 <DirToRemove Include="@(ProjectIntermediateDir)" />
51 <RemoveDir Directories="@(DirToRemove)" />
60 <Target Name="Restore">
62 <MSBuild Projects="@(ProjectToBuild)"
63 Properties="Configuration=$(Configuration);RestoreSources=$(RestoreSources);BuildWithAnalyzer=$(BuildWithAnalyzer)"
64 BuildInParallel="false"
76 <MSBuild Projects="@(ProjectToBuild)"
77 Properties="Configuration=$(Configuration);BuildWithAnalyzer=$(BuildWithAnalyzer)"
78 BuildInParallel="true"
79 UseResultsCache="true"
82 <MSBuild Projects="@(ProjectToBuild)"
83 Properties="Configuration=$(Configuration)"
84 BuildInParallel="false"
85 Targets="CopyToArtifactsDirectory" />
92 Generate nuget packages.
96 <MSBuild Projects="$(MSBuildThisFileDirectory)pack.csproj"
97 Properties="NoBuild=True"
100 <MSBuild Projects="$(MSBuildThisFileDirectory)pack.csproj"
101 Properties="NoBuild=True;Version=$(Version);NuspecFile=%(NuspecFiles.Identity)"
109 Generate dummy assemblies of all projects.
111 <Target Name="Dummy">
114 <APIToolPath>$(MSBuildThisFileDirectory)..\tools\bin\APITool.dll</APIToolPath>
117 <MakeDir Directories="$(OutputDummyDir)" />
118 <Exec Command="dotnet $([System.IO.Path]::GetFullPath('$(APIToolPath)')) dummy $(OutputPublicDir)ref $(OutputDummyDir) " />