How do you troubleshoot AspNet Core missing dependencies?

10.5k views Asked by At

So I made a change to my project.json which caused a re-restore which is coming up with a bunch of unresolvable dependencies. How do you figure out what is going on here? This was definitely working as I wrote quite a bit of code against this project.json file.

"dependencies": {
    "EntityFramework.Commands": "7.0.0-*",
    "Microsoft.AspNet.Authentication.Cookies": "1.0.0-*",
    "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-*",
    "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-*",
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-*",
    "Microsoft.AspNet.Authentication.JwtBearer": "1.0.0-rc2-*",
    "Microsoft.AspNet.Mvc": "6.0.0-*",
    "Microsoft.AspNet.Hosting": "1.0.0-*",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-*",
    "Microsoft.AspNet.StaticFiles": "1.0.0-*",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-*",
    "AspNet.Security.OAuth.Validation": "1.0.0-*",
    "OpenIddict": "1.0.0-*",
    "System.IdentityModel.Tokens.Jwt": "5.0.0-rc2-301150021",
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc2-15958",
    "Microsoft.Extensions.Logging.Debug": "1.0.0-rc2-15958",
    "EntityFramework.Sqlite": "7.0.0-rc2-*",
    "EntityFramework.Sqlite.Design": "7.0.0-rc1-final",
    "Microsoft.Extensions.PlatformAbstractions": "1.0.0-*"
  }



 NotFound https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.staticfiles/index.json 514ms
  NotFound https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.identity.entityframeworkcore/index.json 498ms
  NotFound https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.hosting.abstractions/index.json 1743ms
  NotFound https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.authentication/index.json 1745ms
  NotFound https://api.nuget.org/v3-flatcontainer/microsoft.extensions.fileproviders.embedded/index.json 1791ms
  NotFound https://api.nuget.org/v3-flatcontainer/microsoft.extensions.fileproviders.composite/index.json 1859ms
  NotFound https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.identity/index.json 1892ms
  NotFound https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.cors/index.json 1901ms
  NotFound https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.mvc/index.json 1875ms
  NotFound https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.hosting/index.json 1887ms

NotFound https://api.nuget.org/v3-flatcontainer/openiddict/index.json 1720ms
2

There are 2 answers

3
Kévin Chalet On BEST ANSWER

OpenIddict and all the aspnet-contrib projects have been updated to use .NET CLI and the new ASP.NET Core 1.0 packages, so if you restored your project recently, you're likely using the latest nightly builds, that require the new ASP.NET and aspnet-contrib packages.

To migrate, install the .NET Core tooling.

You'll also need to update your references to use the ASP.NET Core RC2 packages. Here's an example of an updated project.json:

"dependencies": {
  "AspNet.Security.OAuth.GitHub": "1.0.0-alpha4-final",
  "AspNet.Security.OAuth.Introspection": "1.0.0-alpha1-final",
  "AspNet.Security.OAuth.Validation": "1.0.0-alpha1-final",
  "Microsoft.AspNetCore.Authentication.Google": "1.0.0-rc2-final",
  "Microsoft.AspNetCore.Authentication.Twitter": "1.0.0-rc2-final",
  "Microsoft.AspNetCore.Diagnostics": "1.0.0-rc2-final",
  "Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final",
  "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final",
  "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final",
  "Microsoft.AspNetCore.StaticFiles": "1.0.0-rc2-final",
  "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-final",
  "Microsoft.Extensions.Configuration.CommandLine": "1.0.0-rc2-final",
  "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final",
  "Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final",
  "Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final",
  "Microsoft.Extensions.Logging.Debug": "1.0.0-rc2-final",
  "OpenIddict": "1.0.0-*"
},

"frameworks": {
  "net451": {
    "dependencies": {
      "Microsoft.NETCore.Platforms": "1.0.1-rc2-24027"
    }
  },

  "netcoreapp1.0": {
    "dependencies": {
      "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0-rc2-3002702" }
    },

    "imports": [
      "dnxcore50",
      "portable-net451+win8"
    ]
  }
}

Don't forget to also replace the usings and to use the new WebHostBuilder:

public static class Program {
    public static void Main(string[] args) {
        var configuration = new ConfigurationBuilder()
            .AddEnvironmentVariables()
            .AddCommandLine(args)
            .Build();

        var host = new WebHostBuilder()
            .ConfigureLogging(options => options.AddConsole())
            .ConfigureLogging(options => options.AddDebug())
            .UseConfiguration(configuration)
            .UseIISIntegration()
            .UseKestrel()
            .UseStartup<Startup>()
            .Build();

        host.Run();
    }
}

Good luck.

1
Pawel On

First and foremost - don't mix package versions. Use all rc1 or all rc2 etc. Also don't mix "old" (.AspNet. - rc1 or older) packages with new (.AspNetCore. - rc2 - not released yet) packages. If you decide to use rc2 switch to dotnet from dnx. As pointed by @Pinpoint's answer for now you need to use the aspnetcidev feed. You can find some examples of ASP.Net Core applications running on dotnet in this repo