我有这个packages.config-file:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="jQuery" version="3.1.1" targetFramework="net46" />
<package id="NLog" version="4.3.10" targetFramework="net46" />
</packages>
使用此命令,我可以恢复nuget-packages,它们列在上面的packages.config中:
nuget restore packages.config -PackagesDirectory NuGetPackages -NoCache
这很好用。
此示例的所有文件都可以在此处找到: https://github.com/ezeh2/nuget_restore_examples/tree/master/nuget_with_global_nuget_repository
在我的公司,我们必须使用位于网络共享上的存储库。 我们不允许从标准的全局nuget-repository执行包恢复。
出于演示目的,让我们假设本地包存储库位于目录NuGetPackagesSource
中
这是它的内容:
-NuGetPackagesSource
|-jquery
|-3.1.1
|-jquery.3.1.1.nupkg
|-jquery.3.1.1.nupkg.sha512
|-jquery.nuspec
|-nlog.4.3.10.nupkg
通过这个NuGet.Config,我们确保使用本地包存储库而不是全局包:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<disabledPackageSources>
<add key="nuget.org" value="true" />
</disabledPackageSources>
<packageSources>
<add key="my" value="NuGetPackagesSource" />
</packageSources>
</configuration>
以下内容从本地目录NuGetPackagesSource
进行还原:
nuget restore packages.config -ConfigFile NuGet.config -PackagesDirectory NuGetPackages -NoCache
不幸的是发生以下错误:
警告:无法找到包'jQuery'的版本'3.1.1'。 C:\ software_download \ nuget \ NuGetPackagesSource:在源'C:\ software_download \ nuget \ NuGetPackagesSource'上找不到包'jQuery.3.1.1'。
将包'NLog.4.3.10'添加到文件夹'C:\ software_download \ nuget \ NuGetPackages' 将软件包'NLog.4.3.10'添加到文件夹'C:\ software_download \ nuget \ NuGetPackages'
packages.config项目中的错误 无法找到包'jQuery'的版本'3.1.1'。 C:\ software_download \ nuget \ NuGetPackagesSource:在源'C:\ software_download \ nuget \ NuGetPackagesSource'上找不到包'jQuery.3.1.1'。
从错误消息包中可以看出,jquery无法恢复。但是包NLog已成功恢复。我没有解释
由于包jquery
和NLog
都在本地包存储库中,因此会出现此行为。
此示例的所有文件都可以在此处找到: https://github.com/ezeh2/nuget_restore_examples/tree/master/nuget_with_local_nuget_repository