dotnet / arcade

Tools that provide common build infrastructure for multiple .NET Foundation projects.
MIT License
671 stars 346 forks source link

Inconsistent .nuget.dgspec.json #2694

Closed fuocor closed 5 years ago

fuocor commented 5 years ago

With SDK version 3.0.100-preview6-011752 installed the restore function is failing with the corresponding Microsoft.NETCore.Platforms not being found.

The issue appears to be at line 111 in DefaultVersions.props. <RestoreSources Condition="'$(UsingToolXliff)' == 'true' and $(XliffTasksVersion.Contains('-'))">$(RestoreSources);https://dotnet.myget.org/F/dotnet-core/api/v3/index.json</RestoreSources>

which results in myget being added to the .nuget.dgspec.json where it does not exist. it exists in https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json

although https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json is in NuGet.config it is not in Versions.props and the onboarding does not indicate that it is needed. By adding it to the Versions.props the package references were found.

This appears to be an issue only when myget and the dotnetfeed get out of sync.

fuocor commented 5 years ago

Follow-up. While the workaround gets it past the build, at runtime it results in

  - Check application dependencies and target a framework version installed at:
      C:\ossiaco\dotnet\artifacts\bin\Chorus.Cosmos\Debug\netcoreapp3.0\shared\Microsoft.NETCore.App
  - Alternatively, install the framework version '3.0.0-preview6-27705-02'.

There is no shared directory and it is installed globally in C:\Program Files\dotnet\shared but is not found. The sdk is also installed in the <solution>\.dotnet\sdk directory.

> dotnet --info
.NET Core SDK (reflecting any global.json):
 Version:   3.0.100-preview6-011752
 Commit:    c4ffa07b32

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.17763
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\3.0.100-preview6-011752\

Host (useful for support):
  Version: 3.0.0-preview6-27705-02
  Commit:  71ef9eea28

.NET Core SDKs installed:
  2.1.202 [C:\Program Files\dotnet\sdk]
  2.1.500 [C:\Program Files\dotnet\sdk]
  2.1.503 [C:\Program Files\dotnet\sdk]
  2.1.600 [C:\Program Files\dotnet\sdk]
  2.1.601 [C:\Program Files\dotnet\sdk]
  2.1.602 [C:\Program Files\dotnet\sdk]
  2.1.700-preview-009601 [C:\Program Files\dotnet\sdk]
  3.0.100-preview6-011734 [C:\Program Files\dotnet\sdk]
  3.0.100-preview6-011752 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.0.0-preview6-19254-04 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.0.0-preview6-27705-02 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 3.0.0-preview6-27705-02 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
markwilkie commented 5 years ago

Sharing w/ the wider arcade working group as we're about to move to 3.0 globally....

mmitche commented 5 years ago

We should remove the myget feed from the onboarding docs if possible. That feed doesn't contain any new packages.

fuocor commented 5 years ago

It seems to have been a bad drop of the SDK. Version 3.0.0-preview6-27702-72 seems to build and run fine, but still requires the dotnetfeed

markwilkie commented 5 years ago

@chcosta - what's the right feed we should reference in https://github.com/dotnet/arcade/blob/master/Documentation/Onboarding.md?

fuocor commented 5 years ago

mine has the following

  <PropertyGroup Label="RestoreSources">
    <RestoreSources>
      $(RestoreSources);
      https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json;
      https://dotnetfeed.blob.core.windows.net/dotnet-windowsdesktop/index.json;
      https://dotnetfeed.blob.core.windows.net/aspnet-aspnetcore/index.json;
      https://dotnetfeed.blob.core.windows.net/aspnet-aspnetcore-tooling/index.json;
      https://dotnetfeed.blob.core.windows.net/aspnet-entityframeworkcore/index.json;
      https://dotnetfeed.blob.core.windows.net/aspnet-extensions/index.json;
      https://www.myget.org/F/applicationinsights/api/v3/index.json;
      https://dotnet.myget.org/F/rx/api/v3/index.json;
      https://dotnet.myget.org/F/open-xml-sdk/api/v3/index.json;
      https://www.myget.org/F/aad-clients-nightly/api/v3/index.json;
      https://dotnet.myget.org/F/orleans-ci/api/v3/index.json;
      https://www.myget.org/F/azure-cosmos/api/v3/index.json;
    </RestoreSources>
  </PropertyGroup>

the dotnetfeed.blob.core.windows.net are as per the preview 5/6 SDK recommendations

chcosta commented 5 years ago

It really depends on what packages you need. As a (new) baseline, I set it to the same values as we have in Arcade. The key one is generally "https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json" and then you can add to that for one-off packages that your solution needs to pull in.

NuGet.config is used to restore your custom MSBuild SDK's, eng/Versions.props is used to restore packages for your solution. It is intended (optimistically) that in the future a props file could be used for both, but MSBuild doesn't currently support that for SDK's.

markwilkie commented 5 years ago

@fuocor - do you need anything else?

markwilkie commented 5 years ago

Closing since it looks we're good given the staleness of the thread.