2017-04-06 5 views
7

Ich migrieren eine Lösung mit .NET Core SDK 1.0.0-preview2-1-003177 gebaut, weil ich es in Visual Studio 2017 verwenden möchte. Ich verwende die dotnet migrieren Befehl von .NET Core SDK 1.0.1, es geht gut, kompiliert es. Wenn ich den Web-Teil mit IIS Express dem klassischen Program.cs enthältWebHostBuilder.Build() MissingMethodException in .NET Core migrierte Lösung

var host = new WebHostBuilder() 
    .UseKestrel() 
    .UseContentRoot(Directory.GetCurrentDirectory()) 
    .UseIISIntegration() 
    .UseStartup<Startup>() 
    .Build(); 

host.Run(); 

Abstürze bei Build() mit dieser Ausnahme

System.MissingMethodException laufen: ‚Methode nicht gefunden: 'System.IServiceProvider Microsoft.Extensions.DependencyInjection.ServiceCollectionContainerBuilderExtensions.BuildServiceProvider (Microsoft.Extensions.DependencyInjection.IServiceCollection)'. '

Ich kann den Grund überhaupt nicht finden.

Antwort

5

Es sieht aus wie einige Ihrer Abhängigkeiten, nicht auf die richtige Version aktualisiert. Es kann alte Version oder neue Version sein. Sie können ein neues Projekt erstellen (dotnet new) und die Paketversion in Ihrer csproj-Datei validieren. 99% des Fehlers verursacht durch Versionskonflikt.

+0

Ich dachte, das könnte der Grund sein, danke für die Bestätigung. Kopieren und verwenden Sie den '.nuget/packages'-Ordner von meinem Kollegen PC die Lösung funktioniert, jetzt ist die Aufgabe zu finden, welche Abhängigkeiten falsch sind, wenn ich in einer leeren Umgebung starte. Können Sie erklären, wie Sie das tun, was Sie vorschlagen (ich bin neu in VS, .NET & Co.)? Vielen Dank. – oskarnrk

+0

Sure :) Wenn installiert .NET CLI-Tools neueste Version verwenden, können Sie ein neues Projekt mit einfachem Typ dotnet neue NAME erstellen und es wird ein neues Projekt mit sauberen csproj erstellen. Wenn Sie Windows verwenden, können Sie den Assistenten für neue Projekte einfach verwenden, um das neue Projekt zu erstellen. Kopieren Sie einfach den Abhängigkeitsteil von diesem csproj auf Ihren aktuellen. – Chrissx

+0

Ich bin in das gleiche Problem hineingesprungen und habe meine .csproj-Datei wie vorgeschlagen mit einem neuen Projekt abgeglichen, ohne dass ein Fehler gefunden wurde. Ich habe auch versucht, das neue (leere) Projekt auszuführen, und das hat nicht die Ausnahme ausgelöst. Gibt es andere Dinge, die diesen Fehler erscheinen lassen könnten? –

1

Das passierte für mich, weil ich zu eifrig war und zu viele EntityFrameworkCore-Pakete installiert habe.

hatte ich

Microsoft.EntityFrameworkCore 2.0.0-preview1-final 
Microsoft.EntityFrameworkCore.SqlServer 1.1.2 

ich die erste entfernt, so war ich links mit

Microsoft.EntityFrameworkCore.SqlServer 1.1.2 

Und dann der Fehler verschwunden.