Следующие два абзаца - фон - они просто объясняют почему Мне нужно сделать такую странную вещь. Если вам все равно, вы можете пропустить их и перейти непосредственно к вопросу.
Я пользователь Vim, и я начал изучать C#. Естественно, я хочу использовать MSBuild в качестве моей makeprg. Я хочу связать горячие клавиши для общих операций разработки - Build, Очистить и Запустить. Поскольку я хочу установить свои горячие клавиши по всему миру, у меня проблема, так как имена файлов различаются в каждом проекте.Выполнение задачи Exec MSBuild отображает интерактивную оболочку
В GCC/MinGW эта проблема может быть решена легко - поскольку я уже храню важные имена файлов в переменных, я могу просто добавить в целевые файлы makefile для очистки сборки и запуска программы, а затем привязать горячие клавиши к ": make! Clean" и ": make! Run". Поэтому я решил, что могу сделать то же самое с целями MSBuild. Он отлично работает для Clean с тегом Delete (не уверен, что мне действительно нужно чистить в .NET, но вы знаете - сила привычки), но у меня есть проблема с Run.
Теперь это моя проблема: в отличие от GCC/Makefiles MinGW в, которые просто умные пакетные файлы, которые запускаются команды оболочки MSBuild использует его собственный набор команд и запускает их внутри. Это означает, что Exec задачи запускают программу без оболочки - я могу открывать окна, но я не могу использовать ее для тестирования интерактивных программ оболочки.
Есть ли способ убедить MSBuild дать мне интерактивную оболочку?
Это работает! Мне пришлось удалить обратную косую черту перед именем файла (видимо, переменная PathTo уже имеет обратную косую черту), и я также добавил команду для ожидания нажатия клавиши перед закрытием оболочки. Я закончил с этим: –