通过 .NET 5 CLI 自定义 nuget.config globalPackagesFolder?

Custom nuget.config globalPackagesFolder via .NET 5 CLI?

最近我一直在为我的公司使用 VSCode 编写一些 .NET 5 培训课程,并且之前使用过 nuget.config(与我的解决方案文件在同一文件夹中) :

<?xml version="1.0" encoding="utf-8"?>
 <configuration>
  <config>
    <add key="globalPackagesFolder" value="..\lib\nuget" />
  </config>
  <solution>
    <add key="disableSourceControlIntegration" value="true" />
  </solution>
</configuration>

这允许该解决方案的所有已恢复包保留在解决方案文件夹结构中。这对于这些临时培训项目非常有用,但是,虽然我可以通过 dotnet CLI 创建一个 nuget.config 使用:

dotnet new nugetconfig --output ../src/

CLI 似乎没有提供向文件添加 configsolution 项的方法。它确实为我提供了一种添加 packageSources 项目的方法,但我对我的包裹来自哪里并不真正感兴趣,而是对它们要去哪里感兴趣。

这只是我们需要继续手动完成的事情,还是我遗漏了什么。这可以通过 CLI 以某种方式完成吗(如果可以,我还没有弄清楚)?我想尽可能多地使用 CLI,这样最终受训者就不必执行太多手动步骤,例如“请下载此文件并将其复制到此位置...”,以获得所需的功能。

请注意,我在培训中特别提到了此 globalPackagesFolder,以向新员工展示 nuget 的运作方式。他们可以在不影响正在学习的更大开发环境的情况下清除文件夹。在后面的课程中,我们将展示有时需要使用 ItemGroupsTargets[ 将此文件夹中的文件手动复制到项目文件夹(jQuery 等) =31=] 在项目文件中像这样:

  <ItemGroup>  
    <jQuery Include="../../../lib/nuget/jquery/3.3.1/Content/Scripts/jquery-3.3.1.js;../../../lib/nuget/jquery/3.3.1/Content/Scripts/jquery-3.3.1.min.js;../../../lib/nuget/jquery/3.3.1/Content/Scripts/jquery-3.3.1.min.map;../../../lib/nuget/jquery/3.3.1/Content/Scripts/jquery-3.3.1-vsdoc.js;"/>  
  </ItemGroup>  

  <Target Name="ClientSideContent" AfterTargets="AfterBuild">
    <Copy SourceFiles="@(jQuery)" DestinationFolder="./root/Scripts" />
  </Target>

好的,看起来,目前,你不能通过 dotnet CLI 来做这个(也许在将来),但是你目前可以通过 nuget CLI 来做,所以在使用 dotnet CLI 创建之后配置,运行:

nuget config -Set globalPackagesFolder=..\lib\nuget -configfile ../src/nuget.config

将添加:

<config>
  <add key="globalPackagesFolder" value="..\lib\nuget" />
</config>

添加到 nuget.config 文件,当然这需要 nuget CLI 已经安装并包含在您的 PATH 中。