【发布时间】:2021-02-20 05:12:54
【问题描述】:
最近我一直在为我的公司使用 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 似乎没有提供向文件添加 config 或 solution 项的方法。它确实为我提供了一种添加 packageSources 项目的方法,但我并不真正对我的包裹来自哪里感兴趣,而是对它们要去哪里感兴趣。
这只是我们需要继续手动完成的事情,还是我遗漏了什么。这可以通过 CLI 以某种方式完成吗(如果是这样,我还没有弄清楚)?我想尽可能多地使用 CLI,这样最终学员就不必执行太多手动步骤,例如“请下载并将此文件复制到此位置...”,以获得所需的功能。
请注意,我在培训中特别引用了这个 globalPackagesFolder,以向新员工展示 nuget 的运作方式。他们可以在学习过程中清除文件夹,而不会影响更大的开发环境。在后面的课程中,我们将展示有时需要使用项目文件中的 ItemGroups 和 Targets 手动将此文件夹中的文件复制到项目文件夹(jQuery 等),如下所示:
<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>
【问题讨论】: