2015-01-27 4 views
2

Я хотел бы знать, где Visual Studio хранит его копию nuget.exe, чтобы я мог использовать этот путь в настраиваемой цели msbuild, которую планирую делать.Где Visual Studio хранит собственную копию файла nuget.exe?

Некоторое время назад восстановление пакета NuGet не было автоматическим в Visual Studio: вам пришлось импортировать файл .targets, чтобы пакеты были восстановлены до его создания. В то время копия файла nuget.exe хранилась с каждым решением в папке .nuget. В настоящее время Visual Studio делает это автоматически при создании, что указывает на то, что где-то есть файл nuget.exe, который он использует для восстановления пакетов для решения.

В идеале я хотел бы знать, что это путь с использованием макросов MSBuild, потому что тогда неважно, на какой машине строятся проекты, путь всегда будет указывать на правильное место.

Для тех, кому может быть интересно, я хочу начать распространять внутреннюю библиотеку, которую мы имеем на личном корте nuget, и намереваемся строить файлы nupkg с помощью nuget.exe во время сборки. Я знаю о NuGetter, но он немного более сложный и негибкий, чем я хотел, поэтому я считаю, что чистый подход msbuild будет проще начать, по крайней мере.

+0

Вау, правда? Теперь это совершенно очевидно, что я думаю об этом: P. Мне никогда не приходило в голову, что сам nuget.exe может быть в пакете. Это действительно решает проблему довольно красиво! Если бы вы могли сказать это как ответ, я бы отметил его. Я чувствую, что это может быть в другом вопросе, но как расширение nuget импортирует пакеты, а если не думало .exe? Является ли .exe и расширение вызовом общей библиотеки кода, которая делает материал (это было бы то, как я кодировал бы все, но я не уверен, как это работает). Я сделал поиск в окнах и нигде не нашел exe, поэтому я был озадачен. – julealgon

+1

Менеджер пакетов NuGet в Visual Studio много использует общий файл NuGet.Core.dll, который также используется NuGet.exe. Если вы ищете в Program Files, вы должны найти NuGet.Core.dll и другие dll. Однако оба дополнения NuGet в Visual Studio и NuGet.exe имеют разумный объем кода, который написан для инициирования процесса восстановления. –

+0

@MattWard Это соответствует тому, о чем я думал. Спасибо, большое спасибо. – julealgon

ответ

4

Я хотел бы знать, где Visual Studio сохраняет это копия nuget.exe

Это не один. Nuget - это надстройка, только DLL. На моей машине он хранится в каталоге C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ Extensions \ clzwekqw.krr. Часть «clzwekqw.krr» имени каталога не будет повторяться с одного компьютера на другой, он был динамически создан. Основной механизм, позволяющий избежать добавления надстроек на пальцы друг друга.

Вы можете получить Nuget.exe, он доступен через NuGet :) Получить пакет Nuget.CommandLine, проект страницу текущей версии в is here. Он будет установлен, как обычно, в подкаталоге вашего проекта. В настоящее время пакеты \ NuGet.CommandLine.2.8.3 \ tools, просто .exe

+0

Отлично. Спасибо за предложение пакета там. Просто сделал это хорошо, добавив пакет к решению. – julealgon