简体   繁体   中英

Nuget.config ignored completely no matter what

I want to specify where the packages are stored on a nuget restore. Of course, this is documented on MSDN, and of course, it never works....

I have a test solution stored in D:\\Development\\Test\\Test.sln

According to their documentation , nuget no longer looks in the .nuget folder inside the solution folder. Instead it now looks in the solution folder, or further up the chain. So I could store a nuget.config in

  • D:\\Development\\Test\\Nuget.Config
  • D:\\Development\\Nuget.Config
  • D:\\Nuget.Config

Well, I tried all three of them, and restarted Visual studio more times than I am willing to count.

I also read, that they did such a crappy job implementing nuget, that typos inside the nuget.config result in silently ignoring the nuget file. So I thought, that must be it, I made a typo. So I downloaded nuget.exe (latest stable 5.0.2) and issued the commands to configure nuget to put my packages location where I want it.

nuget config -set repositoryPath=D:\Development\test\packages -configfile ..\nuget.config

This is how the XML looks like:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <config>
    <add key="repositoryPath" value="D:\Development\test\packages" />
  </config>
</configuration>

After configuring Nuget.config using nuget.exe, I again tried any of the previous locations (D:\\;D:\\Development\\;D:Development\\Test), restarted visual studio every change of location, richt click solution, choose 'restore nuget packages', and the same result: zero packages are restored to my designated repository path.

So as a last attempt, I tried to nuget restore from the command line:

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

It even mentions that it uses my nuget.config, but again, ZERO packages restored in my designated package folder!

I really hope that anybody can tell me in what mysterious way this is supposed to work.

This nuget.config stored in a subfolder on E: works for me in Visual Studio 2019 when I load a solution in that subfolder or below:

<?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>

The key difference is that I also have a globalPackagesFolder entry pointing to the same folder - according to the docs this setting is used by "projects using PackageReference only". I suggest you try adding a globalPackagesFolder entry.

try this

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <config>
        <add key="repositoryPath" value=@"D:\Development\test\packages" />
    </config>
</configuration>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM