NuGet - 如何打包为多个版本的依赖项构建的程序集?

时间:2014-01-02 22:09:04

标签: nuget nuget-package

我协调了一个项目(Fluent Assertions.MVC),该项目具有MVC 34的单独构建。目前它是通过两个NuGet包分发的。

这是最好的(仅限?)方式,还是可以发送一个包并让NuGet在目标项目中引用正确的.dll?

2 个答案:

答案 0 :(得分:3)

解决方案非常简单:

  • 您将所有支持的MVC版本的DLL添加到您的包中 (在你的情况下为3和4);
  • 然后编写install.ps1脚本来查找 在目标项目中使用什么版本的MVC并删除 来自项目引用的不必要的DLL。

在这里您可以找到更详细的说明和install.ps1脚本的示例:    http://blogs.korzh.com/2013/12/nuget-package-different-mvc-versions.html

答案 1 :(得分:2)

目前NuGet可以按目标框架安装单独的参考dll集,例如.net40,net45,netcore45等。有关详细信息,请参阅http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package

对于MVC3与MVC4,我能想到的最好的方法是在你的包中安装install.ps1并尝试使用DTE对象来确定项目正在使用哪个版本的MVC(可能通过检查MVC程序集版本)和然后相应地安装引用。