2013-09-26 56 views
0

我有一个assembly_A依赖NuGet中的* some_framework * v2.1。 然后,我有一些assembly_B取决于assembly_A,但是当我编译解决方案,它的2.0版 - 的* some_framework *所带来assembly_B不是2.1。错误的程序集版本带有依赖关系

我的猜测是该版本选择了v2.0,因为这是我的GAC版本,但我需要v2.1 ...没有其他依赖使用* some_framework *。明显的旁路将使assembly_B取决于* some_framework * v2.1通过NuGet,但这不是很优雅!

有什么想法?

谢谢

回答

0

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

我对发生这样的想法是:

  • 安装在您的depedency assembly_A
  • assembly_B(已经有了参考assembly_A),您使用的依赖的代码安装(添加上的csproj DLL)
  • assembly_A,你从更新您的NuGet依赖,但assembly_B(的csproj),参考继续旧版本

web.config文件>运行> assemblyBinding部分版本设置好的你的依赖

的在后一种情况下,转到目录你的软件包,看看它的依赖包含不同的版本。如果有,请删除旧版本并重新构建您的解决方案以查看项目引用。

+0

感谢您的想法。 其实我认为我的程序集B最初依赖于GAC的v2.0(这是一个在项目创建时初始依赖AzureStorage v2.0的Azure工作者角色),而我的程序集A具有Nuget依赖于AzureStorage v2.1。我检查了一切,但是当我编译工作者角色时,我一直在获取AzureStorage v2.0 ... – ThomasWeiss

+0

尝试在解决方案上“启用软件包恢复”。也许在构建/发布更正问题。 –