Official Windows builds are delayed by ~15 minutes due to unset SdkLayoutOutputDirectory property
See original GitHub issueIn the official Windows x64 builds, running the ExtractEngineFromSdkBundle
and ReattachEngineToSdkBundle
steps is significantly delayed because the SdkLayoutOutputDirectory
property is unset when computing the GenerateSdkMsiInputs
, causing the code at https://github.com/dotnet/cli/blob/c740fa8f439db39a3460d0afdeab47b8b98879c3/build/package/Microsoft.DotNet.Cli.Installer.MSI.targets#L31 to include every single file on the build agent in an item group. With verbose logging enabled on the x64 builds, this takes a long time to log. Additionally, these log files are so large (about 100-200 MB) that they cannot be displayed on VSTS.
There are a couple potential fixes:
- Make the
MsiTargetsSetupInputOutputs
target depend onSetupLayoutInputsOutputs
, which is where theSdkLayoutOutputDirectory
property is set. - Remove the incremental build functionality of the
GenerateSdkMsi
target. TheGenerateSdkMsiInputs
item type is only used as the Inputs toGenerateSdkMsi
, so it could be removed if it’s not necessary forGenerateSdkMsi
to be built incrementally.
This primarily only affects the x64 builds, because the x86 build definitions specify /v:normal
, whereas the x64 build definitions don’t specify the verbosity and thus use diagnostic verbosity as specified in run-build.ps1. So, a related consideration is what MSBuild verbosity the official builds should be using.
/cc @piotrpMSFT
Issue Analytics
- State:
- Created 7 years ago
- Comments:6 (6 by maintainers)
Top GitHub Comments
@naamunds we’ll fix this in the master branch. Targets hoisting has caused some unexpected issues in the past. We’re making all of these paths static in the master branch so the issue should get resolved as a side effect of that work.
This got fixed as part of a recent PR.