Where does Visual Studio keep it's own copy of

2019-02-23 17:51发布

I'd like to know where Visual Studio keeps it's copy of nuget.exe so that I can use that path in a custom msbuild target I'm planning to do.

Some time ago, NuGet package restore was not automatic in Visual Studio: you had to import a custom .targets file so that packages were restored before building. At the time, a copy of nuget.exe was kept with each solution in a .nuget folder. Nowadays, Visual Studio does this automatically when building, which indicates to me that somewhere there is a nuget.exe file that it uses to restore the packages for the solution.

Ideally I'd like to know it's path using MSBuild macros, because then it would not matter at which machine the projects are being built, the path will always point to the correct place.

For those who may be curious, I want to start distributing an internal library we have on a privage nuget feed, and intend to build the nupkg files using nuget.exe on build time. I know about NuGetter, but it is a bit more complex and inflexible than I wanted, so I feel a pure msbuild approach would be simpler to start with at least.

1条回答
做个烂人
2楼-- · 2019-02-23 18:10

I'd like to know where Visual Studio keeps it's copy of nuget.exe

It doesn't have one. Nuget is an add-in, just DLLs. On my machine it is stored in the C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\clzwekqw.krr directory. The "clzwekqw.krr" part of the directory name is not going to repeat from one machine to the next, it was dynamically created. A basic mechanism to avoid having add-ins step on each other's toes.

You can get Nuget.exe, it is available through Nuget :) Obtain the Nuget.CommandLine package, the current version's project page is here. It will be installed as usual, in a subdirectory of your project. Currently packages\NuGet.CommandLine.2.8.3\tools, just the .exe

查看更多
登录 后发表回答