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>
10 <BuildPublicOnly Condition="'$(BuildPublicOnly)' == ''">False</BuildPublicOnly>
13 <!-- Projects to build -->
15 <DesignProject Include="$(ProjectSrcDir)**\*.Design.csproj" />
16 <DesignProject Include="$(InternalProjectSrcDir)**\*.Design.csproj" />
18 <PublicProject Include="$(ProjectSrcDir)**\*.csproj" Condition="'$(Project)' == ''" />
19 <PublicProject Include="$(ProjectSrcDir)\$(Project)\$(Project).csproj"
20 Condition="'$(Project)' != '' And Exists('$(ProjectSrcDir)\$(Project)\$(Project).csproj') " />
21 <PublicProject Remove="@(DesignProject)" />
23 <InternalProject Include="$(InternalProjectSrcDir)**\*.csproj" Condition="'$(Project)' == '' " />
24 <InternalProject Include="$(InternalProjectSrcDir)\$(Project)\$(Project).csproj"
25 Condition="'$(Project)' != '' And Exists('$(InternalProjectSrcDir)\$(Project)\$(Project).csproj') " />
26 <InternalProject Remove="@(DesignProject)" />
28 <ProjectToBuild Include="@(DesignProject)" Condition="'$(BuildDesignAssembly)' == 'True' " />
29 <ProjectToBuild Include="@(PublicProject)" Condition="'$(BuildDesignAssembly)' != 'True' " />
30 <ProjectToBuild Include="@(InternalProject)" Condition="'$(BuildDesignAssembly)' != 'True' And '$(BuildPublicOnly)' != 'True'" />
33 <!-- Nuspec files to pack -->
35 <NuspecFiles Include="$(ProjectRootDir)pkg\**\*.nuspec" />
42 including the Artifacts/ directory and the obj and bin directories of all projects.
47 <ProjectIntermediateAllFiles Include="$(ProjectSrcDir)**\obj\**" />
48 <ProjectIntermediateAllFiles Include="$(ProjectSrcDir)**\bin\**" />
49 <ProjectIntermediateAllFiles Include="$(InternalProjectSrcDir)**\obj\**" />
50 <ProjectIntermediateAllFiles Include="$(InternalProjectSrcDir)**\bin\**" />
51 <ProjectIntermediateDir Include="@(ProjectIntermediateAllFiles->'%(RootDir)%(Directory)'->Distinct())" />
55 <DirToRemove Include="$(OutputBaseDir)" />
56 <DirToRemove Include="@(ProjectIntermediateDir)" />
59 <RemoveDir Directories="@(DirToRemove)" />
68 <Target Name="Restore">
70 <MSBuild Projects="@(ProjectToBuild)"
71 Properties="Configuration=$(Configuration);RestoreSources=$(RestoreSources);BuildWithAnalyzer=$(BuildWithAnalyzer)"
72 BuildInParallel="false"
84 <MSBuild Projects="@(ProjectToBuild)"
85 Properties="Configuration=$(Configuration);BuildWithAnalyzer=$(BuildWithAnalyzer)"
86 BuildInParallel="true"
87 UseResultsCache="true"
90 <MSBuild Projects="@(ProjectToBuild)"
91 Properties="Configuration=$(Configuration)"
92 BuildInParallel="false"
93 Targets="CopyToArtifactsDirectory" />
100 Generate nuget packages.
104 <MSBuild Projects="$(MSBuildThisFileDirectory)pack.csproj"
105 Properties="NoBuild=True"
108 <MSBuild Projects="$(MSBuildThisFileDirectory)pack.csproj"
109 Properties="NoBuild=True;Version=$(Version);NuspecFile=%(NuspecFiles.Identity)"
117 Generate dummy assemblies of all projects.
119 <Target Name="Dummy">
122 <APIToolPath>$(MSBuildThisFileDirectory)..\tools\bin\APITool.dll</APIToolPath>
125 <MakeDir Directories="$(OutputDummyDir)" />
126 <Exec Command="dotnet $([System.IO.Path]::GetFullPath('$(APIToolPath)')) dummy $(OutputPublicDir)ref $(OutputDummyDir) " />