c# - 两个依赖项的两个包版本

标签 c# .net nuget structuremap nuget-package

在我的项目中,我有两个依赖项引用了同一程序集的两个不同版本(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/

相关文章:

c# - .Net 中的位图保存是否以不正确的格式保存图像?

c# - Nest Elasticsearch match_phrase查询引发解析异常

c# - 我可以在方法范围内用 C# 或 VB.NET 创建别名吗?

C#计算打开文件的MD5?

nuget - 如何使用 Visual Studio 2017 创建 Nuget 包

c# - 使用不同的 Thread.sleep() 持续时间来控制播放器速度?

c# - 如何在 Xamarin.Forms 上更改页面时禁用 ListView 重新加载项目?

c# - 如何从 Windows 服务发送电子邮件?

visual-studio-2017 - VS2017 nuget 包文件被视为链接而不是实际文件

c# - 为什么 MathNet.Numerics NuGet 包这么大?