目标:在不保存或将工件添加到存储库的情况下控制输出 dll。
主要问题是我的解决方案中有两个第 3 方包(.net 框架 4.6.1):rabbitMQClient V6.0.0 使用 - system.memory (>= 4.5.4) -> System.Runtime.CompilerServices.Unsafe ( >= 4.5.3)
使用 System.Runtime.CompilerServices.Unsafe (>= 5.0.0) 的 MongoBson v2.12.1(例如)
每个包都提供以下具有不同版本的 System.Runtime.CompilerServices.Unsafe.dll,并且由于它们是不同的项目,因此它们中的每一个都覆盖输出目录中的另一个。
我尝试了什么:如果我尝试降级“CompilerServices.Unsafe”,则 mongoDb 连接因异常而失败 - 'MongoDB.Driver.Core.Misc.DnsClientWrapper 的类型初始化程序...”
如果我升级,那么兔子将无法连接 - 内部异常:无法加载文件或程序集。
我尝试使用重定向,但似乎它不起作用(如果是新版本的 dll,rabbitMq 异常)
解决方案起作用的唯一可能性是,如果我在所有项目中将本地副本设置为 false,但使用旧版本的项目除外,但由于在 NuGet 更新时它将设置为 true,我需要更稳定的解决方案。