Skip to content

Consider making native build more fine-grained #59865

Closed
@wtgodbe

Description

@wtgodbe

Today, we either build all of the native projects, or none of them:

<!-- BuildNative -->
<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>

We should consider making this more fine-grained - today in the VMR, BuildPass 1 builds all of the native projects, then BuildPass2 builds the Hosting Bundle, which re-builds projects like https://github.com/dotnet/aspnetcore/blob/main/src/Servers/IIS/AspNetCoreModuleV2/IISLib/IISLib.vcxproj. It may be possible to save the ANCM-specific native builds for just pass 2, which would cut a couple minutes of build time in the VMR.

Metadata

Metadata

Assignees

Labels

area-infrastructureIncludes: MSBuild projects/targets, build scripts, CI, Installers and shared frameworkarea-unified-build

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions