C#.Net Dll引用依赖项

时间:2013-10-24 20:51:55

标签: c# .net dll reference nuget

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

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

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

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

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

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

2 个答案:

答案 0 :(得分:3)

我昨天遇到了使用Oracle.DataAccess.dll的Visual Studio Web开发人员。

我的解决方案,

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

正下方:

<PropertyGroup>

放置

<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>

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

我做了

  

ora11&gt;&gt; Oracle.DataAccess.dll(版本11)

     

ora9&gt;&gt; Oracle.DataAccess.dll(版本9)

执行此操作允许IDE使用两个版本的DLL。

答案 1 :(得分:0)

您的MyLIB.dll可能设置为使用特定版本的OtherLIB.dll。转到MyLIB项目,然后点击OtherLIB.dll的引用。检查属性以查看“特定版本”是否设置为true。