我正在尝试使用
将对象即时序列化为即时窗口Newtonsoft.Json.JsonConvert.SerializeObject(myObj);
但是我收到了以下错误
类型' Newtonsoft.Json.JsonConvert'存在于“Newtonsoft.Json.dll”和#39;和' NuGetApi2.dll'
当项目中未引用的.dll
被放入该项目中引用的其他bin
旁边的.dll
文件夹并且其中包含相同的库时(在这种情况下{在Newtonsoft.Json
{1}}中未在项目中引用的内容
为什么我在使用立即/调试窗口时才会出现此异常,而不是在编译代码时?(当编译它时工作正常,因为编译器正在使用项目中引用的dll)
如何告诉Visual Studio NuGetApi2.dll
使用哪个(最好不必停止程序运行)?
一个显而易见的方法是删除项目中没有引用的.dll
,......我要求的是:有没有办法告诉它.dll
使用来自dll
的代码{1}} ...
更新:可以在此处找到重现错误的解决方案:
我在Immediate window
中使用MVC应用程序压缩了解决方案,以便在WebApplication1.7z
,HomeController
方法中重现添加断点,并在遇到粘贴时将Index
粘贴到即时窗口中视觉工作室。
项目代码如下:
Newtonsoft.Json.JsonConvert.SerializeObject("sfdsdfsdf");
答案 0 :(得分:-1)
默认情况下,.Net网站会在启动时加载bin文件夹中的所有程序集。您可以通过修改web.config文件来更改此行为,在这种情况下,您需要列出要加载的程序集。
以下是仅加载MySite.dll
<system.web>
<compilation>
<assemblies>
<remove assembly="*" />
<add assembly="MySite, Version=1.0.0.0, Culture=neutral />
</assemblies>
</compilation>
</system.web>
如果你只加载你需要的组件而不加载NuGetApi2组件,这应该可以解决你的问题