在我的项目中,我有两个依赖项引用了同一程序集的两个不同版本(structuremap v2.6.4 与 v3.1.4.1),有什么方法可以使用 nugget 正确解决这个问题?
最佳答案
解决此问题的一种方法是使用 NuGet 包 Costura.Fody
- 它基本上捆绑了所有不同版本的 .dll 供您在项目中使用。
第一步是安装包
安装包后,您将在解决方案资源管理器中看到一个“FodyWeavers.xml”。可以对其进行编辑以包含或排除某些 .dll,但每次我使用它时,我都只保留默认值,最终成为...
<?xml version="1.0" encoding="utf-8"?>
<Weavers>
<Costura/>
</Weavers>
这使您能够做的是将其中一个 .dll 放入您的解决方案(或其他地方)的 Libraries
文件夹中,然后 Costura.Fody 会将您解决方案中的所有 .dll 捆绑到一个大的dll(在创建您的 XML 的项目中)。
这样做你应该能够引用两个版本 - 因为我最近必须这样做才能让一个项目使用两个不同版本的 .dll。
要验证它是否正常工作,您可以在添加 NuGet 包之前查看项目的 .dll 的大小,之后它的大小应该会增加以添加所有其他捆绑的 .dll。
希望对您有所帮助!如果您有任何问题,请告诉我!
关于c# - 两个依赖项的两个包版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39775131/