Skip to content

Second source-only build of VMR introduces different reference packages #4978

@mthalman

Description

@mthalman

There is something that is causing different reference packages to be added to the prereqs/packages/reference directory when a second source-only build occurs on the VMR. This doesn't happen on the first build, only on subsequent builds.

Repro Steps

  1. Checkout the release/10.0.1xx-preview3 branch of the VMR
  2. Make some source change in any repo (except the sdk repo) that will cause a build error.
  3. Run ./prep-source-build.sh && ./build.sh --source-only --online. This will encounter the build error.
  4. Undo your source change.
  5. Run ./build.sh --source-only --online

This will cause the following error in the sdk repo:

    CSC : error CS0006: Metadata file '/repos/dotnet/src/sdk/artifacts/sb/package-cache/microsoft.aspnetcore.app.ref/8.0.0/analyzers/dotnet/cs/Microsoft.AspNetCore.App.Analyzers.dll' could not be found [/repos/dotnet/src/sdk/src/BuiltInTools/BrowserRefresh/Microsoft.AspNetCore.Watch.BrowserRefresh.csproj]
    CSC : error CS0006: Metadata file '/repos/dotnet/src/sdk/artifacts/sb/package-cache/microsoft.aspnetcore.app.ref/8.0.0/analyzers/dotnet/cs/Microsoft.AspNetCore.App.CodeFixes.dll' could not be found [/repos/dotnet/src/sdk/src/BuiltInTools/BrowserRefresh/Microsoft.AspNetCore.Watch.BrowserRefresh.csproj]
    CSC : error CS0006: Metadata file '/repos/dotnet/src/sdk/artifacts/sb/package-cache/microsoft.aspnetcore.app.ref/8.0.0/analyzers/dotnet/cs/Microsoft.AspNetCore.Components.Analyzers.dll' could not be found [/repos/dotnet/src/sdk/src/BuiltInTools/BrowserRefresh/Microsoft.AspNetCore.Watch.BrowserRefresh.csproj]
    CSC : error CS0006: Metadata file '/repos/dotnet/src/sdk/artifacts/sb/package-cache/microsoft.aspnetcore.app.ref/8.0.0/analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll' could not be found [/repos/dotnet/src/sdk/src/BuiltInTools/BrowserRefresh/Microsoft.AspNetCore.Watch.BrowserRefresh.csproj]
    CSC : error CS0006: Metadata file '/repos/dotnet/src/sdk/artifacts/sb/package-cache/microsoft.aspnetcore.app.ref/8.0.0/analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Options.SourceGeneration.dll' could not be found [/repos/dotnet/src/sdk/src/BuiltInTools/BrowserRefresh/Microsoft.AspNetCore.Watch.BrowserRefresh.csproj]

This occurs because it's getting an incorrect version of the Microsoft.AspNetCore.App.Ref.8.0.0 package, one that doesn't contain the fix from dotnet/source-build-reference-packages#1199. Somehow this older version of Microsoft.AspNetCore.App.Ref.8.0.0 is being copied to the prereqs/packages/reference directory and picked up in the build. This is likely coming from the previously source built artifacts? It seems like when the build starts the prereqs/packages/reference directory is populated with the ref packages from PSB artifacts. Then SBRP builds and those get cleared out with the current ones. When the subsequent build occurs, it clears the current ones out and replaces them with the ones from the PSB artifacts. Then it skips SBRP build since that was already built and you're left with incorrect ref packages.

Metadata

Metadata

Assignees

Labels

area-buildImprovements in source-build's own build process

Type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions