如何提供可以使用多个版本的依赖项的NuGet包

时间:2016-05-12 14:35:13

标签: c# .net nuget

我有一个我想通过NuGet提供的类库。它依赖Microsoft.AspNet.Mvc。我的库与版本兼容> 4.0,我在.nuspec文件中概述了。

<dependencies>
    <dependency id="Microsoft.AspNet.Mvc" version="4.0" />
</dependencies>

为了开发我的项目,我必须通过NuGet安装Microsoft.AspNet.Mvc

Install-Package Microsoft.AspNet.Mvc

这导致版本5.2.3.0在发布我的NuGet包之前不会出现问题,并尝试将其与安装了版本4.0.0.1的应用程序一起使用。我收到以下错误: -

Error   1   Assembly 'xxxxx, Version=0.0.2.22155, Culture=neutral, PublicKeyToken=null' uses 'System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' which has a higher version than referenced assembly 'System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

如何构建一个NuGet包,它将与我在Microsoft.AspNet.Mvc文件中规定的.nuspec的所有版本一起使用?

1 个答案:

答案 0 :(得分:0)

nuget 3.4发生了重大变化。确保至少使用v3.4。您可以通过在命令行上运行“where nuget”来实现。 根据v3.4,您的依赖版本告诉nuget使用大于或等于Microsoft.AspNet.Mvc的v4.0的任何版本。 所以,是的,你做得对。 您可以在http://docs.nuget.org/Create/Versioning

找到有关版本控制的更多信息