不使用Package.Config如何安装Nuget包?

5
我遇到了一个解决方案(.Net完整框架),其中解决方案中没有package.config,而是来自内部Nuget服务器的Feeds。
如果不在Package.Config中维护包列表,该怎么办?

2
https://learn.microsoft.com/en-us/nuget/consume-packages/package-references-in-project-files - Dan Wilson
1
有些项目只使用project.json列出软件包清单。如果您无法向我们展示相关的配置文件,则我们只能猜测其中的许多可能性。最好是自己查看所有文件,如有可能可以向同事请教。 - Jon Skeet
1
现在已经有一年时间在VS2017中引入了,正如@DanWilson所指出的那样。如果您在编辑器中打开项目文件,您应该能够看到是否使用了包引用功能。 - Lex Li
@JonSkeet,在 .Net 全框架中也使用 Prject.Json 吗? - Abhijeet
@Abhijeet,那么你现在的问题是什么?你在项目文件中找不到任何package.config和PackageReference吗? - Leo Liu
2个回答

6
如果在Package.Config中没有维护软件包列表,那么它们是在哪里维护的呢?
首先,您应该确保已经安装了nuget软件包。一旦您安装了软件包,NuGet会将Package.Config文件添加到您的项目中,以记录依赖项,要么在您的项目文件中,要么在packages.config文件中。
如果您确认您的解决方案已经安装了nuget软件包,但是没有Package.Config文件,那么您的nuget软件包应该使用另一种管理方法:PackageReference 编辑您的项目,您将找到以下PackageReference列表:
<ItemGroup>
    <PackageReference Include="Contoso.Utility.UsefulStuff" Version="3.6.0" />
</ItemGroup>

请参阅NuGet现已完全集成到MSBuild中,以获取更多详细信息:
过去,NuGet包的管理有两种不同的方式——packages.config和project.json,每种方式都有其自身的优缺点。随着Visual Studio 2017和.NET Core的推出,我们通过在MSBuild中引入PackageReference功能来改进NuGet包管理体验。PackageReference带来了新的和改进的功能,如深度MSBuild集成、改进的日常任务(如安装和还原)性能、多重目标等。

1

packages.config文件可能在其他地方吗?如果是这种情况,请查看您的msbuild项目文件(即*.csproj,*.vbproj,*.vcxproj),并查看对该NuGet程序集的引用来自哪里。然后在该目录中查找packages.config文件。可能会更加复杂,在这种情况下,有用的方法是在存储库中全局搜索packages.config,以查看它们所在的位置(如果它们存在)。

这是一个常见的做法:让一个项目指定NuGet包,让所有其他项目借用它。正如Jon所说,这确实取决于您公司和部门设置构建和依赖项的方式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接