在我的项目中,我有两个依赖项,引用了同一个程序集的两个不同版本(structuremap v2.6.4 vs v3.1.4.1),有没有办法用nugget正确解决这个问题?
答案 0 :(得分:1)
解决此问题的一种方法是使用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中。
我希望这有帮助!如果您有任何问题,请告诉我们!