C#.Net Dll引用依赖项

我编写了一个DLL库MyLIB.dll (版本1.0.0 ),它依赖于第三方DLL库OtherLIB.dll (版本1.0.0 )。 库可以在NuGet上使用OtherLIB.dll ,我将通过NuGet包管理器将其添加到MyLIB.dll项目中。

现在让我们说我正在编写一个新的应用程序,比如MyAspNetMvcApp ,我正在通过NuGet向它添加MyLIB.dll (版本1.0.0 )。 它会自动添加OtherLIB.dll (版本1.0.0 ),因为它依赖于它。 一切都很好,但……

一个月后,发布了新版本的OtherLIB.dll – 版本1.0.1 。 我正在通过NuGet更新它。

现在,我的ASP.NET MVC应用程序停止工作,因为MyLIB.dll引发了exception。 它期望版本1.0.0中的 OtherLIB.dll ,但已经使用了更新的版本。

MyLIB.dll项目引用中,我可以看到OtherLIB.dll的 “特定版本”标志被设置为“False”,所以我不知道这里发生了什么……

除了在web.config文件中提供程序集绑定之外,是否有可能以其他方式解决此问题? 我如何为MyLIB.dll添加对OtherLIB.dll的引用,以便在将OtherLIB.dll更新为较新版本时不会出现exception?

我昨天遇到了使用Oracle.DataAccess.dll的visual studio web开发人员。

我的解决方案

右键单击您的项目解决方案(* .csproj)并进行编辑。

正下方:

 

地点

 true 

然后重建您的解决方案。 在包含它们时(必需),必须将两个版本dll分离到项目中的两个不同目录中。

我做到了

ora11 >> Oracle.DataAccess.dll(版本11)

ora9 >> Oracle.DataAccess.dll(版本9)

这样做允许您的IDE使用两个版本的DLL。

您的MyLIB.dll可能设置为使用特定版本的OtherLIB.dll 。 进入MyLIB项目并单击对OtherLIB.dll的引用。 检查属性以查看“特定版本”是否设置为true。