0

我有一个依赖于 NuGet 的 *some_framework* v2.1的assembly_A 。然后我有一些依赖于assembly_A的assembly_B,但是当我编译解决方案时,它是 2.0 版,而不是随assembly_B带来的 *some_framework* 的 2.1 版。

我的猜测是构建选择了 v2.0,因为这是我的 GAC 中的版本,但我需要 v2.1...没有其他依赖项使用 *some_framework*。明显的绕过方法是通过 NuGet 使assembly_B依赖于 *some_framework* v2.1,但这不是很优雅!

有什么想法吗?

谢谢

4

1 回答 1

0

您有独特的解决方案吗?如果没有,请尝试使用nuget 配置文件为您的项目保留相同的包文件夹。

我的想法是:

  • 您在 assembly_A 上安装了您的依赖
  • assembly_B(已经引用了assembly_A)上,您使用您安装的依赖项的代码(在 csproj 上添加 dll)
  • assembly_A上,您从 nuget 更新了依赖项,但在assembly_B (csproj) 上,引用继续旧版本

查看web.config > runtime > assemblyBinding部分设置依赖项的版本

在后一种情况下,进入你的包的目录,看看它的依赖是否包含不同的版本。如果有,请删除旧版本并重建您的解决方案以检查项目引用。

于 2013-09-26T05:58:36.860 回答