ASP.NET 5和MVC6

时间:2015-07-02 20:07:42

标签: asp.net-core asp.net-core-mvc

当我查看MVC6的教程时,我对project.json的使用感到困惑。据我了解,此文件用于指定项目依赖项。

在ASP.NET 5之前,我们使用nuget来管理依赖项。但是从一些有限的MVC6样本中我看到我不再看到人们提到package.config了。

请帮助我理解:

  • 我们是否仍然使用nuget升级所有依赖组件?
  • 或者我们必须手动修改project.json

3 个答案:

答案 0 :(得分:10)

  

根据我的理解,[project.json]用于指定项目依赖项。

是。 project.json的主要功能之一是管理服务器端依赖项。 (它还指定了其他项目特定设置。)有关详细信息,请参阅the project.json file

  

在ASP.NET 5之前,我们使用nuget来管理依赖项。

是的。而且,ASP.NET 5仍然使用NuGet来管理依赖项。但配置有所不同。我们使用packages.config>而不是project.jsondependencies列出我们项目的NuGet包(以及其他本地依赖项。)

  

...从一些有限的MVC6样本中我看到我不会再看到人们提到package.config了。

是的再次。 ASP.NET 5在package.config>中列出了所有依赖项,包括NuGet包,而不是project.jsondependencies。这些依赖项可以是NuGet包,本地程序集或本地项目。

为了对此进行扩展,在Visual Studio中,References文件夹反映了我们的project.json> dependencies部分。我们添加到另一个中的内容将出现在另一个中。 See server-side dependency management

在某些方面,您可以将References文件夹视为project.json>的GUI视图。 dependencies。例如,这是我的一个项目与References文件夹一起的dependencies部分。

  • 请注意project.json和References文件夹中列出的内容之间的一对一对应关系(忽略fx/中不属于dependencies的内容。
  • 请注意引用列出的项目旁边的图标。这些指示引用是项目,NuGet包(蓝色)还是程序集。

Dependencies correspond to References

  

我们是否仍然使用nuget升级所有依赖组件?

即可。我们只是用不同的方式。如果我们将一个NuGet包添加到我们的project.json - 手动或通过GUI的包管理器 - 那么我们将使用NuGet提要恢复/更新那些包。

  

或者[我们]必须手动修改project.json吗?

即可。您可以手动修改project.json,但有两种主要方法可以添加NuGet包。您使用的是个人偏好。

  1. 手动编辑project.json文件。
  2. 使用Visual Studio GUI。
  3. 使用Visual Studio代码GUI。
  4. 重要的是,您通过GUI执行的操作将反映在project.json文件中,以及您对project.json>所做的操作dependencies将反映在GUI中。

答案 1 :(得分:3)

  

我们是否仍然使用nuget升级所有依赖组件?

简短的回答是肯定的。

  

我们必须手动修改project.json吗?

你也可以这样做。

你真的可以做任何你想要的事情:

  • 您可以使用nuget包管理器UI。

  • 您可以通过Package Manager Console

  • 使用nuget CLI
  • 或者,您甚至可以通过修改project.json来添加,删除,更改依赖关系,Package Manager Console具有非常好的自动完成功能,如*.csproj

现在唯一的区别是项目文件中没有提及已安装的软件包(之前为packages.config),因此您不必像我们一样手动添加引用有{{1}}。

答案 2 :(得分:1)

  

我们是否仍然使用nuget升级所有依赖组件

不,您只需手动添加版本即可。大多数IDE和代码编辑器都支持在project.json文件中自动完成nuget依赖。

有关project.json文件的更多信息:https://github.com/aspnet/Home/wiki/Project.json-file(可能有点过时)。

有关DNX依赖关系的更多信息:http://docs.asp.net/en/latest/dnx/overview.html?highlight=project#dependencies