我们使用visual studio 2013开发了两个不同的应用程序:第一个用于C# .net mvc5的前端,第二个用于C# .net WebApi 2中的web服务。
这两个应用程序都使用newtonsoft.json nuget,但版本不同(前端6.0.8,web 8.0.2 )。
我们使用本地IIS来测试和调试。在IIS中,我们创建两个网站和两个单独的应用程序池。
如果我在前端之后编译web服务,一切都很好。如果我在web服务之后编译前端,web服务就会崩溃,使用6.0.8版本的newtonsoft.json!为什么?
应用程序池共享一些dll?
我在项目中找到了一些带有“特定版本”选项的文章。如果“特定版本”为true,则两个版本都可以并行运行。但我不想那么做。
我还可以更新nuget,使其在两个项目中都具有相同的版本,但这是一个解决办法,问题可能仍然存在于另一个dll中。
我需要理解为什么与两个应用程序池共享dll(与diffé租赁版本).那么你有什么想法吗?
谢谢Whiletrue
发布于 2016-01-14 16:25:38
以下是你的评论-原因很简单,现在。webapi和mvc项目都依赖classlib,而classlib依赖于newtonsoft特定的版本。因此,当您构建任何webapi或mvc项目时,classlib的依赖项也会添加到webapi或mvc项目中。您可以以某种方式打破依赖关系,或者显式地在web config +项目文件中指定版本,并将这两个版本都包含在Bin文件夹中。
https://stackoverflow.com/questions/34790447
复制相似问题