4

我编写了一个 DLL 库MyLIB.dll(版本1.0.0),它依赖于第三方 DLL 库OtherLIB.dll(版本1.0.0)。库OtherLIB.dll在 NuGet 上可用,我通过 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引发了异常。它需要版本1.0.0中的OtherLIB.dll ,但已经使用了较新的版本。

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

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

4

2 回答 2

3

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

我的解决方案,

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

正下方:

<PropertyGroup>

地方

<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>

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

我做了

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

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

这样做可以让您的 IDE 使用这两个版本的 DLL。

于 2013-10-24T21:13:58.890 回答
0

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

于 2013-10-24T21:08:30.440 回答