| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 |
- <Project>
- <Import Project="Common.props" />
- <!--
- @(RequiresDelayedBuild) projects can be extended many ways but this isn't fully automated because the new
- projects likely aren't referenced initially. To add new projects, edit RequiresDelayedBuildProjects.props
- manually, update the $(BuildMainlyReferenceProviders)' == 'true' item group near the bottom of this file,
- or edit BuildAfterTargetingPack.csproj. Then run GenerateProjectList.ps1 (even for the first option to ensure
- the format is correct) and undo any temporary changes. When complete, only BuildAfterTargetingPack.csproj and
- other @(RequiresDelayedBuild) projects should mention projects listed in RequiresDelayedBuildProjects.props.
- -->
- <Import Project="RequiresDelayedBuildProjects.props" />
- <!-- These projects are always excluded, even when -projects is specified on command line. -->
- <ItemGroup>
- <!-- Explicitly excluded projects -->
- <ProjectToExclude Include="$(ProjectToExclude)" />
- <!-- These projects use 'legacy' csproj, which is not supported by dotnet-msbuild. -->
- <ProjectToExclude Include="
- $(RepoRoot)src\Servers\HttpSys\samples\TestClient\TestClient.csproj;
- $(RepoRoot)src\Middleware\WebSockets\samples\TestServer\WebSockets.TestServer.csproj;
- "
- Condition=" '$(MSBuildRuntimeType)' == 'Core' " />
- <!-- Exclude the websockets samples for now because they use classic .csproj, which is not yet supported in our build. -->
- <ProjectToExclude Include="$(RepoRoot)src\Middleware\WebSockets\samples\**\*.csproj" />
- <!-- These projects are meant to be referenced only by tests or via BuildAfterTargetingPack.csproj. -->
- <ProjectToExclude
- Include="$(RepoRoot)src\**\testassets\**\*.*proj;
- @(RequiresDelayedBuild);
- "
- Exclude="$(RepoRoot)src\Components\WebAssembly\testassets\WasmLinkerTest\*.*proj;
- $(RepoRoot)src\Components\WebView\Samples\PhotinoPlatform\testassets\PhotinoTestApp\*.*proj;
- $(RepoRoot)src\Http\Routing\test\testassets\RoutingSandbox\*.*proj;
- $(RepoRoot)src\Security\Authentication\Negotiate\test\testassets\Negotiate.Client\*.*proj;
- $(RepoRoot)src\Security\Authentication\Negotiate\test\testassets\Negotiate.Server\*.*proj;
- " />
- <!-- These projects are not meant to be built in this repo. In the Installers case, must explicitly opt in. -->
- <ProjectToExclude Include="
- $(RepoRoot)src\submodules\googletest\**\*.*proj;
- $(RepoRoot)src\submodules\MessagePack-CSharp\**\*.*proj;
- $(RepoRoot)src\Components\Web.JS\node_modules\**\*.*proj;
- $(RepoRoot)src\Installers\**\*.*proj;
- $(RepoRoot)src\ProjectTemplates\Web.ProjectTemplates\content\**\*.*proj;
- $(RepoRoot)src\SignalR\clients\ts\**\node_modules\**\*.*proj;
- " />
- <!-- Exclude the benchmarks because they use <PackageReference>. -->
- <ProjectToExclude Include="
- $(RepoRoot)src\Components\benchmarkapps\BlazingPizza.Server\**\*.csproj;
- $(RepoRoot)src\Mvc\perf\**\*.csproj;
- $(RepoRoot)src\Servers\Kestrel\perf\PlatformBenchmarks\**\*.csproj;
- $(RepoRoot)src\SignalR\perf\benchmarkapps\**\*.csproj;
- " />
- </ItemGroup>
- <Choose>
- <!-- Project selection can be overridden on the command line by passing in -projects. -->
- <When Condition="'$(ProjectToBuild)' != ''">
- <ItemGroup>
- <ProjectToBuild Include="$(ProjectToBuild)"
- Exclude="@(ProjectToExclude);$(RepoRoot)**\bin\**\*;$(RepoRoot)**\obj\**\*">
- <BuildInParallel Condition=" '%(Extension)' == '.nodeproj' OR '%(Extension)' == '.vcxproj' ">false</BuildInParallel>
- <RestoreInParallel Condition=" '%(Extension)' == '.nodeproj' ">false</RestoreInParallel>
- <!-- Also do not build in parallel w/in npm projects. -->
- <AdditionalProperties Condition=" '%(Extension)' == '.nodeproj' OR '%(Extension)' == '.vcxproj' ">BuildInParallel=false</AdditionalProperties>
- </ProjectToBuild>
- </ItemGroup>
- </When>
- <Otherwise>
- <ItemGroup Condition=" '$(BuildInstallers)' == 'true' AND '$(TargetOsName)' == 'win' AND ('$(TargetArchitecture)' == 'x86' OR '$(TargetArchitecture)' == 'x64' OR '$(TargetArchitecture)' == 'arm64') ">
- <!-- Build the ANCM custom action -->
- <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\AspNetCoreModule-Setup\CustomAction\aspnetcoreCA.vcxproj" AdditionalProperties="Platform=x64" />
- <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\AspNetCoreModule-Setup\CustomAction\aspnetcoreCA.vcxproj" AdditionalProperties="Platform=Win32" />
- <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\AspNetCoreModule-Setup\CustomAction\aspnetcoreCA.vcxproj" AdditionalProperties="Platform=ARM64" />
- <!-- Build the ANCM msis -->
- <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\AspNetCoreModule-Setup\ANCMIISExpressV2\AncmIISExpressV2.wixproj" AdditionalProperties="Platform=x64" />
- <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\AspNetCoreModule-Setup\ANCMIISExpressV2\AncmIISExpressV2.wixproj" AdditionalProperties="Platform=x86" />
- <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\AspNetCoreModule-Setup\ANCMIISExpressV2\AncmIISExpressV2.wixproj" AdditionalProperties="Platform=arm64" />
- <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\AspNetCoreModule-Setup\ANCMV2\ANCMV2.wixproj" AdditionalProperties="Platform=x64" />
- <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\AspNetCoreModule-Setup\ANCMV2\ANCMV2.wixproj" AdditionalProperties="Platform=x86" />
- <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\AspNetCoreModule-Setup\ANCMV2\ANCMV2.wixproj" AdditionalProperties="Platform=arm64" />
- <!-- Build the targeting pack installers -->
- <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\TargetingPack\TargetingPack.wixproj" AdditionalProperties="Platform=x64" />
- <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\TargetingPack\TargetingPack.wixproj" AdditionalProperties="Platform=x86" />
- <!-- This really shouldn't be here, but instead of harvesting from the intermediate/output directories, the targeting pack installer logic
- harvests from a zip of the reference assemblies. Producing it in each leg ends up with multiple targeting packs
- getting produced and the BAR will reject the build. Centralize building the targeting pack in the x86/x64 leg. -->
- <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\TargetingPack\TargetingPack.wixproj" AdditionalProperties="Platform=arm64" />
- <!-- Build the SharedFramework installers -->
- <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\SharedFrameworkBundle\SharedFrameworkBundle.wixproj" AdditionalProperties="Platform=x64" />
- <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\SharedFrameworkBundle\SharedFrameworkBundle.wixproj" AdditionalProperties="Platform=x86" />
- <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\SharedFrameworkBundle\SharedFrameworkBundle.wixproj" AdditionalProperties="Platform=arm64" />
- <!-- Build the SharedFramework wixlib -->
- <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\SharedFrameworkLib\SharedFrameworkLib.wixproj" AdditionalProperties="Platform=x64" />
- <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\SharedFrameworkLib\SharedFrameworkLib.wixproj" AdditionalProperties="Platform=x86" />
- <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\SharedFrameworkLib\SharedFrameworkLib.wixproj" AdditionalProperties="Platform=arm64" />
- <!-- Windows hosting bundled -->
- <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\WindowsHostingBundle\WindowsHostingBundle.wixproj" AdditionalProperties="Platform=x86" />
- </ItemGroup>
- <ItemGroup Condition="'$(BuildInstallers)' == 'true' AND ('$(TargetRuntimeIdentifier)' == 'linux-x64' OR '$(TargetRuntimeIdentifier)' == 'linux-arm64')">
- <ProjectToBuild Condition=" '$(LinuxInstallerType)' == 'deb' "
- Include="$(RepoRoot)src\Installers\Debian\**\*.*proj" />
- <ProjectToBuild Condition=" '$(LinuxInstallerType)' == 'rpm' "
- Include="$(RepoRoot)src\Installers\Rpm\**\*.*proj" />
- </ItemGroup>
- <ItemGroup Condition=" '$(TargetOsName)' == 'win' AND ('$(TargetArchitecture)' == 'x86' OR '$(TargetArchitecture)' == 'x64' OR '$(TargetArchitecture)' == 'arm64') ">
- <NativeProjects Include="$(RepoRoot)src\**\*.vcxproj" Exclude="@(ProjectToExclude)" AdditionalProperties="Platform=x64" />
- <NativeProjects Include="$(RepoRoot)src\**\*.vcxproj" Exclude="@(ProjectToExclude)" AdditionalProperties="Platform=Win32" />
- <NativeProjects Include="$(RepoRoot)src\**\*.vcxproj" Exclude="@(ProjectToExclude)" AdditionalProperties="Platform=arm64" />
- </ItemGroup>
- <ItemGroup>
- <ProjectToBuild Condition=" $(BuildNative) " Include="@(NativeProjects)" Exclude="@(ProjectToExclude)" />
- <ProjectToExclude Condition=" !$(BuildNative) " Include="@(NativeProjects)" />
- <NodeJsProjects
- Include="$(RepoRoot)eng\Npm.Workspace.nodeproj;
- $(RepoRoot)eng\Npm.Workspace.FunctionalTests.nodeproj;"
- AdditionalProperties="BuildInParallel=false"
- BuildInParallel="false"
- RestoreInParallel="false"
- Exclude="@(ProjectToExclude)" />
- <ExplicitRequiresDelay Include="$(RepoRoot)eng\Npm.Workspace.FunctionalTests.nodeproj" />
- <ProjectToBuild Condition=" '$(BuildNodeJS)' == 'true'" Include="@(NodeJsProjects)" Exclude="@(ProjectToExclude)" />
- <ProjectToExclude Condition=" '$(BuildNodeJS)' != 'true'" Include="@(NodeJsProjects)" />
- <JavaProjects Include="$(RepoRoot)src\SignalR\**\*.javaproj"
- Exclude="@(ProjectToExclude)" />
- <ProjectToBuild Condition=" '$(BuildJava)' == 'true'" Include="@(JavaProjects)" Exclude="@(ProjectToExclude)" />
- <ProjectToExclude Condition=" '$(BuildJava)' != 'true'" Include="@(JavaProjects)" />
- <!--
- Use caution to avoid deep recursion. If the globbing pattern picks up something which exceeds MAX_PATH,
- the entire pattern will silently fail to evaluate correctly.
- -->
- <DotNetProjects Include="
- $(RepoRoot)src\Framework\App.Ref\src\Microsoft.AspNetCore.App.Ref.csproj;
- $(RepoRoot)src\Framework\App.Ref.Internal\src\Microsoft.AspNetCore.App.Ref.Internal.csproj;
- $(RepoRoot)src\Framework\AspNetCoreAnalyzers\test\Microsoft.AspNetCore.App.Analyzers.Test.csproj;
- $(RepoRoot)src\Framework\test\Microsoft.AspNetCore.App.UnitTests.csproj;
- $(RepoRoot)src\Caching\**\*.*proj;
- $(RepoRoot)src\DefaultBuilder\**\*.*proj;
- $(RepoRoot)src\Features\JsonPatch\**\*.*proj;
- $(RepoRoot)src\DataProtection\**\*.*proj;
- $(RepoRoot)src\Antiforgery\**\*.*proj;
- $(RepoRoot)src\Hosting\**\*.*proj;
- $(RepoRoot)src\Http\**\*.*proj;
- $(RepoRoot)src\HttpClientFactory\**\*.*proj;
- $(RepoRoot)src\Html.Abstractions\**\*.*proj;
- $(RepoRoot)src\Identity\**\*.*proj;
- $(RepoRoot)src\Servers\**\*.csproj;
- $(RepoRoot)src\Security\**\*.*proj;
- $(RepoRoot)src\SiteExtensions\Microsoft.Web.Xdt.Extensions\**\*.csproj;
- $(RepoRoot)src\SiteExtensions\LoggingAggregate\test\**\*.csproj;
- $(RepoRoot)src\Shared\**\*.*proj;
- $(RepoRoot)src\Tools\**\*.*proj;
- $(RepoRoot)src\Logging.AzureAppServices\**\src\*.csproj;
- $(RepoRoot)src\Middleware\**\*.csproj;
- $(RepoRoot)src\Razor\**\*.*proj;
- $(RepoRoot)src\Mvc\**\*.*proj;
- $(RepoRoot)src\Azure\**\*.*proj;
- $(RepoRoot)src\SignalR\**\*.csproj;
- $(RepoRoot)src\StaticAssets\**\*.csproj;
- $(RepoRoot)src\Components\**\*.csproj;
- $(RepoRoot)src\Analyzers\**\*.csproj;
- $(RepoRoot)src\FileProviders\**\*.csproj;
- $(RepoRoot)src\Configuration.KeyPerFile\**\*.csproj;
- $(RepoRoot)src\Localization\**\*.csproj;
- $(RepoRoot)src\ObjectPool\**\*.csproj;
- $(RepoRoot)src\JSInterop\**\*.csproj;
- $(RepoRoot)src\WebEncoders\**\*.csproj;
- $(RepoRoot)src\HealthChecks\**\*.csproj;
- $(RepoRoot)src\Testing\**\*.csproj;
- $(RepoRoot)src\Grpc\**\*.csproj;
- $(RepoRoot)src\ProjectTemplates\**\*.csproj;
- $(RepoRoot)src\Extensions\**\*.csproj;
- $(RepoRoot)src\BuildAfterTargetingPack\*.csproj;
- $(RepoRoot)src\OpenApi\**\*.csproj;
- $(RepoRoot)eng\tools\HelixTestRunner\HelixTestRunner.csproj;
- "
- Exclude="
- @(ProjectToBuild);
- @(ProjectToExclude);
- $(RepoRoot)**\node_modules\**\*;
- $(RepoRoot)**\bin\**\*;
- $(RepoRoot)**\obj\**\*;"
- Condition=" '$(BuildMainlyReferenceProviders)' != 'true' " />
- <DotNetProjects Include="
- $(RepoRoot)src\Caching\**\src\*.csproj;
- $(RepoRoot)src\DefaultBuilder\**\src\*.csproj;
- $(RepoRoot)src\Features\JsonPatch\**\src\*.csproj;
- $(RepoRoot)src\DataProtection\**\src\*.csproj;
- $(RepoRoot)src\Antiforgery\**\src\*.csproj;
- $(RepoRoot)src\Hosting\**\src\*.csproj;
- $(RepoRoot)src\Http\**\src\*.csproj;
- $(RepoRoot)src\HttpClientFactory\**\src\*.csproj;
- $(RepoRoot)src\Html.Abstractions\src\*.csproj;
- $(RepoRoot)src\Identity\**\src\*.csproj;
- $(RepoRoot)src\Servers\**\src\*.csproj;
- $(RepoRoot)src\Security\**\src\*.csproj;
- $(RepoRoot)src\SiteExtensions\**\src\*.csproj;
- $(RepoRoot)src\Tools\**\src\*.csproj;
- $(RepoRoot)src\Logging.AzureAppServices\**\src\*.csproj;
- $(RepoRoot)src\Middleware\**\src\*.csproj;
- $(RepoRoot)src\Razor\**\src\*.csproj;
- $(RepoRoot)src\Mvc\**\src\*.csproj;
- $(RepoRoot)src\Azure\**\src\*.csproj;
- $(RepoRoot)src\SignalR\**\src\*.csproj;
- $(RepoRoot)src\StaticAssets\src\*.csproj;
- $(RepoRoot)src\Components\**\src\*.csproj;
- $(RepoRoot)src\FileProviders\**\src\*.csproj;
- $(RepoRoot)src\Configuration.KeyPerFile\**\src\*.csproj;
- $(RepoRoot)src\Localization\**\src\*.csproj;
- $(RepoRoot)src\ObjectPool\**\src\*.csproj;
- $(RepoRoot)src\JSInterop\**\src\*.csproj;
- $(RepoRoot)src\WebEncoders\**\src\*.csproj;
- $(RepoRoot)src\HealthChecks\**\src\*.csproj;
- $(RepoRoot)src\Testing\**\src\*.csproj;
- $(RepoRoot)src\Extensions\**\src\*.csproj;
- $(RepoRoot)src\BuildAfterTargetingPack\*.csproj;
- $(RepoRoot)src\OpenApi\**\src\*.csproj;
- "
- Exclude="
- @(ProjectToBuild);
- @(ProjectToExclude);
- $(RepoRoot)**\node_modules\**\*;
- $(RepoRoot)**\bin\**\*;
- $(RepoRoot)**\obj\**\*;"
- Condition=" '$(BuildMainlyReferenceProviders)' == 'true' " />
- <ProjectToBuild Condition=" '$(BuildManaged)' == 'true'" Include="@(DotNetProjects)" Exclude="@(ProjectToExclude)" />
- <ProjectToExclude Condition=" '$(BuildManaged)' != 'true'" Include="@(DotNetProjects)" />
- </ItemGroup>
- </Otherwise>
- </Choose>
- </Project>
|