繁体   English   中英

在 Visual Studio 2017 中更改项目的 nuget 包搜索和安装文件夹

[英]Change nuget packages search&install folder for a project in Visual Studio 2017

我在 VS2017 中用一个项目创建了一个解决方案。 它是一个 .Net C# Winforms 应用程序。 我希望该项目将其他项目之前下载的 nuget 包加载到我计算机上的某个文件夹中,并将它们添加到其引用中。

包文件夹位于解决方案目录后面的一个目录中。

我怎么能做到这一点?

我已经尝试将nuget.config文件添加到包含以下 XML 代码的解决方案位置:

<?xml version="1.0" encoding="utf-8"?>

<configuration>

  <config>
    <add key="globalPackagesFolder" value="..\packages" />
    <add key="repositoryPath" value="..\packages" />
  </config>

</configuration>

即使将它包含在 VS 解决方案资源管理器中,我的解决方案似乎也完全忽略了它。

我还读到globalPackagesFolderNUGET_PACKAGES (或类似的东西)环境变量覆盖,那么在.config文件中设置它有什么意义? 还是我没有正确理解某些东西?

另外,有点离题,但是,我真的很好奇。 当我在我的项目上单击“管理 nuget 包”并下载一些东西时,这些包被放置在我项目的.csproj文件之前的一个目录中。 我可以更改该特定项目的这些包的下载位置(并从我的项目引用中提取)吗?

在 Visual Studio 2017 中更改项目的 nuget 包搜索和安装文件夹

要回答这个问题,我们需要明确两个概念, Package sourceRepository 很明显, Package source用于下载nuget 包, Repository用于存储解决方案的nuget 包。 简单来说,Nuget 管理包就是从package source下载包,将包添加到项目中并将nuget 包存储在Repository

因此,如果您希望 Winforms 应用程序将其他项目先前下载的那些包加载到某个文件夹中并将它们添加到其引用中,您需要做两件事(如果我理解正确的话)。

一种是将其他项目之前下载的那些包添加到您的 Winforms 应用程序中,另一种是将这些包添加到某个文件夹中。

要解决第一件事,它需要下载包,因此我们必须将其他项目之前下载的nuget包所在的文件夹创建到包源中。 进入options->Tools->NuGet Package Manager->Package Sources,添加存放其他项目之前下载的包的文件夹,然后你可以通过nuget包管理器UI将这些包添加到Winforms应用程序中:

检查此线程:将位于本地包存储库中的 NuGet 包安装到新的 Visual Studio 解决方案中

要解决第二个问题,就像您所做的一样,将nuget.config文件添加到包含以下 XML 代码的解决方案位置:

<?xml version="1.0" encoding="utf-8"?>
<configuration>

  <config>
    <add key="repositoryPath" value="..\packages" />
  </config>

</configuration>

在此处输入图片说明

不需要globalPackagesFolder的设置,即用于全局包文件夹C:\\Users\\<UserName>\\.nuget\\packages

注意:添加nuget.config ,记得重启Visual Studio,然后添加nuget包,包会存放在我的解决方案的.sl文件之前的目录中(因为你设置了repositoryPath..\\packages )。

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM