2017-10-03 2 views
0

wir von Visual Studio Gemeinschaft 2013 Gemeinschafts 2017. Mein REST-Service vor kurzem ein Upgrade-Projekt gestartet, nachdem es zu brechen beginnen (Build-Pässe). Dies geschieht nur auf einer von drei Maschinen. Wir verwenden Microsoft.AspNet.WebApi.Owin zum Erstellen unserer REST-Endpunkte.Konnte Datei oder Assembly ‚System.Web.Http, Version = 4.0.0.0‘ nach der Aktualisierung von vs2013 laden vs2017

Das Problem scheint beim Laden von System.Web.Http zu sein, die Bibliothek verweist auf {solution_folder} /packages/Microsoft.AspNet.WebApi.Core.5.2.3/lib/net45/System.Web.Http. DLL.

Die referenzierte dll ist in referenzierten Ordner und auch Kopien Binärordner wenn wieder aufzubauen. Interessant ist, dass, wenn ich das Projekt mit VS2013 Wiederaufbau ich den Dienst manuell starten kann, von vs2013 oder vs2017, aber wenn ich das Projekt mit vs2017 wieder aufbauen und starten Sie es mir folgende Fehlermeldung erhalten:

Inner Exception 1: FileLoadException: Could not load file or assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Stacktrace:

System.Reflection.TargetInvocationException occurred
HResult=0x80131604 Message=Exception has been thrown by the target of an invocation. Source=mscorlib StackTrace: at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Owin.Loader.DefaultLoader.<>c__DisplayClass12.b__b(IAppBuilder builder) at Owin.Loader.DefaultLoader.<>c__DisplayClass1.b__0(IAppBuilder builder) at Microsoft.Owin.Hosting.Engine.HostingEngine.ResolveApp(StartContext context) at Microsoft.Owin.Hosting.Engine.HostingEngine.Start(StartContext context) at Microsoft.Owin.Hosting.Starter.DirectHostingStarter.Start(StartOptions options) at Microsoft.Owin.Hosting.Starter.HostingStarter.Start(StartOptions options) at Microsoft.Owin.Hosting.WebApp.StartImplementation(IServiceProvider services, StartOptions options) at Microsoft.Owin.Hosting.WebApp.Start(StartOptions options) at Microsoft.Owin.Hosting.WebApp.Start[TStartup](StartOptions options)
at Microsoft.Owin.Hosting.WebApp.Start[TStartup](String url) at PNX.REST.Service.ServiceAdapter.Initialize() in C:\Projects\peaknx\PNX.OS\PNX.REST.Service\ServiceAdapter.cs:line 32
at PNX.REST.Service.PNXRESTService.StartAdapter(Object state) in C:\Projects\peaknx\PNX.OS\PNX.REST.Service\PNXRESTService.cs:line 85
at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() at System.Threading.ThreadPoolWorkQueue.Dispatch() at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

Inner Exception 1: FileLoadException: Could not load file or assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Update:

es scheint, dass nur auf meinem Rechner die Build-Kopien app.config-Datei als ProjectName.Service.exe.config, wo, wie bei allen anderen ist es Web.config verwendet.

Grundsätzlich bekomme ich nie meine Abhängigkeitsumleitung und es sucht immer nach System.Web.Http 4.0.0.0 statt 5.2.3.0, da dieser Teil der Konfiguration nicht in ProjectName.Service.exe.config ist.

<dependentAssembly> <assemblyIdentity name="System.Web.Http" 
publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> 
</dependentAssembly> 
+0

Diese Maschine würde ich hat eine falsche Version von .Net Wette oder asp.net ist nicht korrekt registriert. Sie sind die einzige Person, die dieses Problem praktisch lösen kann – Liam

+0

Ich hatte ein ähnliches Problem. System.net.http wurde in eine Nuget-Datei verschoben. Gehen Sie in jedes Ihrer Projekte in der Lösung. Gehe zu nuget, suche nach der system.net.http nuget Datei. und rüste alle auf, um die neueste Version zu verwenden. Sehen Sie, ob das hilft –

+0

Hey danke für die Antworten, kleines Update: Es scheint, dass nur auf meinem Rechner die Datei app.config als ProjectName.Service.exe.config anstelle der Datei web.config kopiert, so dass ich im Grunde nie meine Abhängigkeit bekomme Umleitung gehen und es sucht immer nach System.Web.Http 4.0.0.0 anstelle von 5.2.3.0 < bindingRedirect oldversion = "0.0.0.0-5.2.3.0" newVersion = "5.2.3.0" /> ivke

Antwort

0

GELöST: Das Problem war, dass, wenn VS2017 Installation müssen Sie „ASP.NET und Web-Entwicklung“ in Auslastungen, um den Check für VS das Projekt als Web-Projekt und verwendet Web.config statt app.config zu erkennen

Leider, wenn Sie diesen Schritt dort vermissen wird keine nützliche Fehlerbericht, hoffen, dass dies jemand danke für die Antworten hilft.

Verwandte Themen