Ich versuche, Objekt sofort in das unmittelbare Fenster zu serialisieren, indem ich
benutze %Vor%Allerdings bekomme ich folgenden Fehler
Der Typ 'Newtonsoft.Json.JsonConvert' existiert sowohl in 'Newtonsoft.Json.dll' als auch 'NuGetApi2.dll'
Dies passiert, wenn .dll
, auf das im Projekt nicht verwiesen wird, in den Ordner bin
neben anderen .dll
gestellt wird, auf die in diesem Projekt verwiesen wird und die dieselbe Bibliothek enthält (in diesem Fall Newtonsoft.Json
in NuGetApi2.dll
was nicht im Projekt referenziert wird)
Warum bekomme ich diese Ausnahme nur, wenn ich das / debug window benutze und nicht wenn es kompilierter Code ist? (Wenn es kompiliert wird, funktioniert es gut, da der Compiler dll verwendet, auf das im Projekt verwiesen wird)
Wie sage ich Visual Studio, welches .dll
verwendet werden soll (vorzugsweise ohne das Programm zu stoppen)?
Ein offensichtlicher Weg ist, .dll
zu löschen, auf das im Projekt nicht verwiesen wird. ... Nach was ich frage: Gibt es eine Möglichkeit, ihm zu sagen, welche dll
über den Code von Immediate window
....
UPDATE: Lösung, um Fehler zu reproduzieren, finden Sie hier:
Lösung ist gezippt in WebApplication1.7z
, ich benutzte MVC app, um add breakpoint in HomeController
, Index
Methode zu reproduzieren, und wenn es getroffen wird, fügen Sie Newtonsoft.Json.JsonConvert.SerializeObject("sfdsdfsdf");
in das unmittelbare Fenster in Visual Studio ein.
Der Code im Projekt sieht folgendermaßen aus:
%Vor%Standardmäßig laden Web-Sites von .Net beim Start alle Assemblys im Ordner bin. Sie können dieses Verhalten ändern, indem Sie die Datei web.config ändern. In diesem Fall müssen Sie stattdessen die zu ladenden Assemblys auflisten.
Hier ist ein Beispiel, das nur Version 1.0.0.0 von MySite.dll
Wenn Sie nur die benötigten Baugruppen laden und nicht die NuGetApi2-Baugruppe laden, sollte dies Ihr Problem lösen
Tags und Links .net c# dll nuget visual-studio-2013