Использование консоли диспетчера пакетов nupack для установки рабочей папки в папку решения

В Visual Studio nupack добавляет окно power-shell, называемое консолью диспетчера пакетов. Я думаю, что это было бы хорошим местом для запуска команд управления исходным кодом (я использую Mercurial). Однако рабочим каталогом по умолчанию является папка моих пользователей, поэтому мне нужно переходить в папку с кодом каждый раз, когда я загружаю новый проект.

Мне интересно, есть ли однострочная команда для установки рабочего каталога в папку решения. например что-то подобное существует?

cd $SolutionFolder

Судя по результатам get-variable, не похоже, что что-то есть сразу, но я никогда раньше не использовал powershell, так что, может быть, есть способ получить папку решения?


person Mark Heath    schedule 25.10.2010    source источник
comment
Рад обнаружить, что консоль диспетчера пакетов — это просто окно Power-Shell; Я не знал, какой синтаксис он использовал в противном случае   -  person The Red Pea    schedule 30.03.2017


Ответы (3)


Спасибо Дугу за то, что указал мне правильное направление. Я написал полные инструкции в своем блоге здесь:

http://mark-dot-net.blogspot.com/2010/10/change-to-solution-folder-in-package.html

Основной ответ заключается в том, что это сделает следующая команда:

Split-Path -parent $dte.Solution.FileName | cd

Чтобы сделать его более доступным, вам нужно создать функцию в вашем файле сценария «профиль пользователя», местоположение которого находится в переменной $profile. Вам нужно будет создать файл, если он не существует. Затем добавьте функцию:

Function solutionFolder()
{
    Split-Path -parent $dte.Solution.FileName | cd
} 

Теперь, после загрузки решения в VS2010, вы можете просто ввести:

solutionFolder

и рабочая папка будет изменена.

person Mark Heath    schedule 26.10.2010

Пытаться

$dte.Solution.FileName
person Doug Finke    schedule 25.10.2010
comment
спасибо, это двигает меня в правильном направлении. Теперь я могу сделать Split-Path -parent $dte.Solution.FileName, чтобы получить папку. Теперь мне нужно решить, как настроить консоль диспетчера пакетов, чтобы это было доступно в переменной или команде без необходимости вводить это каждый раз. - person Mark Heath; 26.10.2010
comment
Вы можете найти профиль PowerConsole в этой переменной $PowerConsoleUserProfile. Там вы можете настроить функции и т. д., чтобы сократить то, что вам нужно сделать. - person Doug Finke; 26.10.2010
comment
это похоже на $profile, но спасибо, теперь мне удалось заставить его работать. - person Mark Heath; 26.10.2010

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

person Jon Galloway    schedule 02.02.2011