两个依赖项的两个包版本

时间:2016-09-29 16:06:18

标签: c# .net nuget structuremap nuget-package

在我的项目中,我有两个依赖项,引用了同一个程序集的两个不同版本(structuremap v2.6.4 vs v3.1.4.1),有没有办法用nugget正确解决这个问题?

1 个答案:

答案 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中。

我希望这有帮助!如果您有任何问题,请告诉我们!