初始数据:无法上网的 PC,VS2017 和一个 .net Core 项目。
PC 上有一个常见的“带有软件包的离线文件夹”,所有主要的文件夹都从该文件夹中提取出来(例如%userprofile%\.nuget\packages\)。
问题:项目是否可以指定一个额外的文件夹来存放在公用文件夹中找不到的包?仅适用于本项目。
初始数据:无法上网的 PC,VS2017 和一个 .net Core 项目。
PC 上有一个常见的“带有软件包的离线文件夹”,所有主要的文件夹都从该文件夹中提取出来(例如%userprofile%\.nuget\packages\)。
问题:项目是否可以指定一个额外的文件夹来存放在公用文件夹中找不到的包?仅适用于本项目。
该文件夹
%userprofile%\.nuget\packages\是Local Feeds - 一个具有分层结构的文件夹,用于存储 nuget 包,可以从中安装 nuget 包。为了在项目中包含其他本地提要,您可以执行以下操作:
在项目文件夹级别,创建一个
NuGet.Config. 在这个文件中写入以下内容packageSources元素包含用于安装包的源列表。
如果你使用的是NetCore2.0,那么可以直接在工程文件(csproj)中指定nuget包源的路径,如下
也许是这样,也许不完全是,但尽管如此。
来自[Spec] 后备包文件夹:
[规范] MSBuild 中的 NuGet 设置
物业
RestoreFallbackFolders-物业
RestoreAdditionalProjectFallbackFolders-全局包文件夹中有一个NLog包。如果您开始构建项目,那么在日志中您将看到包是从上述目录加载的:
让我们使用属性为项目添加一个
RestoreAdditionalProjectFallbackFolders备份源:从全局包文件夹中删除NLog(您要查找的“离线文件夹”中没有包)并开始构建项目:
作为操作的一部分,如果包不在全局包文件夹
restore中,则从其加载包,并且最后不会将其复制到其中。即使有网络访问,数据包也是从.FallbackFolderFallbackFolderUPD : 在使用packageSources的情况下,sources 优先级的情况并不完全清楚,因为这里说:
此外,来自本地源的包将被复制到全局包文件夹,即复制。