0
X <= nuget package A <= DLL version 1
X <= nuget package B <= DLL version 2
所以我的项目X引用了两个第三方nuget软件包A和B.这两个软件包引用相同的DLL但具有不同的版本。现在问题似乎是在构建时,DLLv1被binv文件夹中的DLLv2覆盖。并且在运行时,A中的代码抱怨DLLv1未找到。无法加载文件或程序集或其某个依赖项。系统找不到指定的文件
我已经在bin文件夹中添加了一个程序集绑定配置文件来绑定到DLLv2。但是这似乎没有改变任何东西。
这是一个使用msbuild构建的CSharp项目。
问题:
- 是AssemblyBinding解决这个问题的正确工具吗?
- 解决此问题的正确方法是什么?
简单...不要这样做。您应该让解决方案中的所有项目都引用相同版本的软件包。 –
nuget包是第三方,我无法控制他们使用的DLL版本。 – Lee
除非第三方库已固定特定版本,否则应该可以在整个消费项目中管理和安装共享依赖项。您的箱中只能有一个文件名实例。如果这不起作用,则需要将项目拆分为多个入口点,每个入口点都具有特定版本的公共库 –