我想指定软件包在nuget恢复中的存储位置。当然,这是在MSDN上记录的,当然,它永远不会起作用。...
我在D:\ Development \ Test \ Test.sln中存储了一个测试解决方案
根据其documentation,nuget不再出现在解决方案文件夹内的.nuget文件夹中。相反,它现在在解决方案文件夹中查找,或者在链的更上层查找。所以我可以将nuget.config存储在
中好吧,我尝试了所有这三个方法,并且重新启动Visual Studio的次数超出了我的预期。
我还读到,他们在实现nuget方面做得如此糟糕,以至于nuget.config中的错别字导致静默地忽略了nuget文件。所以我想,一定是这样,我打错了字。因此,我下载了nuget.exe(最新的稳定版本5.0.2)并发出了配置nuget的命令,以将我的软件包放置在所需的位置。
nuget config -set repositoryPath=D:\Development\test\packages -configfile ..\nuget.config
这是XML的样子:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="repositoryPath" value="D:\Development\test\packages" />
</config>
</configuration>
在使用nuget.exe配置Nuget.config之后,我再次尝试了以前的任何位置(D:\; D:\ Development \; D:Development \ Test),每次更改位置都重新启动Visual Studio,单击Rich解决方案,选择“还原nuget软件包”,结果相同:将零个软件包还原到我指定的存储库路径。
因此,作为最后一次尝试,我尝试从命令行nuget restore:
D:\Development\test>nuget restore test.sln -ConfigFile ..\nuget.config
MSBuild auto-detection: using msbuild version '16.1.76.45076' from 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\bin'.
Restoring packages for D:\Development\test\test\test.csproj...
Restoring packages for D:\Development\test\ClassLibrary1\ClassLibrary1.csproj...
Committing restore...
Committing restore...
Generating MSBuild file D:\Development\test\ClassLibrary1\obj\ClassLibrary1.csproj.nuget.g.props.
Generating MSBuild file D:\Development\test\test\obj\test.csproj.nuget.g.props.
Writing assets file to disk. Path: D:\Development\test\ClassLibrary1\obj\project.assets.json
Writing assets file to disk. Path: D:\Development\test\test\obj\project.assets.json
Restore completed in 603,63 ms for D:\Development\test\ClassLibrary1\ClassLibrary1.csproj.
Restore completed in 603,6 ms for D:\Development\test\test\test.csproj.
NuGet Config files used:
D:\Development\nuget.config
它甚至提到它使用了我的nuget.config,但同样,零个软件包已还原到我指定的软件包文件夹中!
我真的希望任何人都能以一种神秘的方式告诉我这应该起作用。
答案 0 :(得分:3)
当我在该子文件夹或以下的子文件夹中加载解决方案时,此nuget.config
存储在E:
上的子文件夹中对我来说是有效的。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="repositoryPath" value="D:\NugetPackages" />
<add key="globalPackagesFolder" value="D:\NugetPackages" />
<add key="dependencyVersion" value="Highest" />
</config>
</configuration>
关键区别在于我还有一个指向同一文件夹的globalPackagesFolder
条目-根据the docs,此设置由“仅使用PackageReference的项目”使用。建议您尝试添加一个globalPackagesFolder
条目。
答案 1 :(得分:0)
尝试
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="repositoryPath" value=@"D:\Development\test\packages" />
</config>
</configuration>