在vnext中管理依赖项

时间:2014-08-10 19:42:57

标签: asp.net-core

在我工作的公司,当我们需要在项目中引用第三方dll时,我们会执行以下操作:

  1. 使用nuget获取包
  2. 拉出dll并创建一个“lib”文件夹并在此处添加引用
  3. 将此lib文件夹添加到git中,以便其他团队成员在从git执行拉取时获得所有引用
  4. 参考dll存储在我们项目的lib文件夹中
  5. 我们这样做是为了完全控制并确切知道我们正在使用哪些参考文献。

    我的问题是如何在使用vnext时实现这一点,我们可以继续这样做吗?

    已经看过“介绍:服务器上的.NET的未来”,似乎你列出了project.json文件中的所有依赖项,当你进行k恢复时,它会根据nuget配置文件中的feed进行全部下载

2 个答案:

答案 0 :(得分:2)

您将使用project.json文件。正如您所提到的,您列出了所有依赖项, K Package Manager 将为您解决丢失的软件包。

您会注意到在json文件中,您指定的包在某个键值对package:version中。大多数示例都显示*的版本,这意味着让我获得最新的。但是没有什么可以阻止您指定特定版本或版本的特定部分。例如,project.json file in the Autofac container of the DI project指定了特定版本的Autofac:

"dependencies": {
    "Autofac": "3.3.0",
    "Microsoft.Framework.DependencyInjection": ""
},

The main DI project指定Microsoft.Framework.ConfigurationModel的特定种类版本:

"dependencies": {
    "Microsoft.Framework.ConfigurationModel": "1.0.0-*"
},

那说给我最新版本的1.0.0

此系统允许您根据需要自动获取最新和最佳,但也指定特定版本以确保安全。没有理由将DLL复制到自定义lib文件夹中。

编辑:你激励我发表关于它的博客:http://davidzych.com/2014/08/13/specifying-package-dependency-versions-in-asp-net-vnext/

答案 1 :(得分:0)

注意到" - *"不一定会返回最新版本。它是我的简单测试,它总是返回最低的可用版本。根据此documentation,计算更复杂,并返回"工作的最低版本"。

编辑:添加了文档链接