Skip to content

Make Source-Build Portable Build Compatible #4418

Open
@ellahathaway

Description

@ellahathaway

Based on dotnet/sdk#40843, it's clear that while the VMR is configured to be portable, source build does not work in a portable state due to bugs.

For example, while certain OSs build successfully with PortableBuild=true (centos9 for example), the produced SDK does not work. An example is the following run of the scenario tests with a source-build SDK that was built using the PortableBuild=true property:

System.InvalidOperationException : Failed to execute /vmr/artifacts/obj/extracted-dotnet-sdk/dotnet new console --name SdkTemplateTestsComplex_Console_CSharp --output /vmr/artifacts/scenario-tests/artifacts/SdkTemplateTestsComplex_Console_CSharp --language "C#"
    Exit code: 145
    9.0.100-preview.5.24266.1 [/vmr/artifacts/obj/extracted-dotnet-sdk/sdk]
    The command could not be loaded, possibly because:
      * You intended to execute a .NET application:
          The application 'new' does not exist.
      * You intended to execute a .NET SDK command:
          A compatible .NET SDK was not found.

Another example of source-build being portable build incompatible is the fact that aspnetcore fails to build on alpine:

/vmr/src/aspnetcore/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj : error NU1100: Unable to resolve 'Microsoft.NETCore.App.Crossgen2.linux-x64 (>= 9.0.0-preview.5.24262.2)' for 'net9.0'. PackageSourceMapping is enabled, the following source(s) were not considered: prebuilt, previously-source-built, reference-packages, source-built-command-line-api, source-built-emsdk, source-built-msbuild, source-built-nuget-client, source-built-roslyn, source-built-roslyn-analyzers, source-built-runtime, source-built-source-build-externals, source-built-symreader, source-built-transport-arcade, source-built-transport-cecil, source-built-transport-emsdk, source-built-transport-msbuild, source-built-transport-roslyn, source-built-transport-runtime, source-built-transport-xdt. [/vmr/.dotnet/sdk/9.0.100-preview.5.24257.1/NuGet.targets]

In the above error message, aspnetcore fails to build because it is looking for the linux-x64 version of crossgen. Earlier, this package was built and outputted as Microsoft.NETCore.App.Crossgen2.linux-musl-x64. See dotnet/sdk#40843 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-upstream-fixNeeds a change in a contributing repo

    Type

    No type

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions