不同项目中相同dll的两个版本

dev*_*747 11 .net

在此输入图像描述

我有一个包含多个项目的解决方案.我需要在两个不同的项目中引用同一组件的不同版本.到目前为止,发生的事情是只有最新版本的dll被复制到bin文件夹中.所以依赖于旧版本的DLL失败并出现错误

Could not load file or assembly xxxx or one of its dependencies.
The located assembly's manifest definition does not match the 
assembly reference.
Run Code Online (Sandbox Code Playgroud)

有没有办法让应用程序根据项目使用特定版本的DLL?

Rus*_*ure 4

是的,您可以让每个项目引用同一 dll 的特定版本。我建议将两个版本的 dll 都放入 GAC 中。在您的引用项目中,设置 Copy Local = false 和 Specific Version = true。

您可以在没有 GAC 的情况下通过使用配置文件和程序集绑定指令来完成此操作(因为共享 dll 不能位于同一文件夹中,因为它们具有相同的名称),但这是 GAC 旨在解决的主要问题之一。所以我建议利用它。