2017-05-24 1 views
0

Ich habe versucht, meine NuGet-Pakete zu aktualisieren, um neuere ASP-Versionen zu erhalten .net-Baugruppen (5.2.3). Nach dem Upgrade bekomme ich diesen Fehler beim Kompilieren.Der Typ 'ApiController' existiert sowohl in 'System.Web.Http, Version = 4.0.0.0' als auch 'System.Web.Http, Version = 5.2.3.0'

Ich habe Pakete Ordner gelöscht und neu aufgebaut, ich habe alle Pakete neu installiert, ich habe meine bin gelöscht usw. Nach dem Upgrade auf 5.2.3 kann ich nicht bauen, weil ich diesen Fehler immer wieder bekomme. Die Version der System.Web.Http.dll in meinem bin ist die richtige Version. Diese DLL ist nicht in meinem GAC. Ich bin nicht sicher, wo sonst der Compiler Version 4.0.0.0 dieser DLL findet. Ich habe eine bindingRedirect in meiner web.config.

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

Ich lief auch Update-Package -ProjectName [ProjectName] -Reinstall

+1

Aufgrund des Vorhandenseins einer anderen referenzierten Assembly mit demselben Namen in Ihrem Projekt ist ein mehrdeutiger Paketname vorhanden. Verwenden Sie 'Update-Paket [Paketname] -Projektname [Projektname] -Reinstall 'in der Package Manager-Konsole. –

+0

Überprüfen Sie Ihre .config-Dateien, um festzustellen, ob dort noch Referenz vorhanden ist. VS wurde möglicherweise nicht richtig bereinigt. – rolls

Antwort

0

ich an die Wurzel meiner Frage endlich. Die .csproj-Datei verweist immer noch auf die ältere DLL, obwohl beim Durchsuchen der Referenzen im VS-Lösungsexplorer nur die richtige Version vorhanden war. Ich habe diese älteren Verweise aus der .csproj-Datei gelöscht und diesen Fehler jetzt behoben.

Verwandte Themen