Запуск нескольких инстанций разных версий VS одновременно
Всем привет,
на машине (win 10) инсталлированы две версии VS15 и VS17.
Для отладки, в силу ряда причин (надеюсь что временно), требуется запуск трех проектов соответственно в трех инстанциях под VS15
и одного проекта в инстанции VS17. Опять-же в силу разных причин, первые три проекта нельзя объединить в одну солюшен. (удалено цензурой)
Таким образом приходится заходить в каждую отдельную папку и открывать в ручную каждую солюшин используя "open with..." и выбирая нужную версию VS-
т.к. приходится делать это по несколько раз в день то блин... муторно (удалено цензурой)
Написал два бэч файла в первом:
cd C:\верхняя_папка_олд
Start "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe" "папка_олд_1\проект_олд_1.sln"
Start "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe" "папка_олд_2\проект_олд_2.sln"
Start "C:\Program Files (x86)\Microsoft
Visual Studio 14.0\Common7\IDE\devenv.exe" "папка_олд_3\проект_олд_3.sln"
во втором:
cd C:\верхняя_папка_нью
Start "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\devenv.exe" "папка_нью\проект_нью.sln"
Но блин (удалено цензурой) запускается каждый раз только та версия студии которая в данный момент была "по умолчанию"....
Что тут можно сделать?
Попробуй использовать Microsoft Visual Studio Version Selector вместо devenv.exe.
C:\Program Files (x86)\Common Files\microsoft shared\MSEnv\VSLauncher.exe
Он вроде как старается запускать ту версию студии, которая указана в хидере sln-файла.
Попробуй использовать Microsoft Visual Studio Version Selector вместо devenv.exe.C:\Program Files (x86)\Common Files\microsoft shared\MSEnv\VSLauncher.exeОн вроде как старается запускать ту версию студии, которая указана в хидере sln-файла.
Спасибо. Но результат пока тот-же хотя посмотрел в хидере и версии спудий стоят там правильные....
Я тут "поигрался" :
cd "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\"
Start devenv "C:\верхняя_папка_олд\папка_олд_1\проект_олд_1.sln"
Start devenv "C:\верхняя_папка_олд\папка_олд_2\проект_олд_2.sln"
Start devenv "C:\верхняя_папка_олд\папка_олд_3\проект_олд_3.sln"
cd C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\
Start devenv "C:\верхняя_папка_нью\папка_нью\проект_нью.sln"
Вроде похоже внешне на изврат но пока работает...
Немного непонятна цель манипуляций.
Есть 3 старых проекта, которые должны быть загружены в старые Студии. Зачем? Почему именно старые?
Могу предположить - для компиляции, запуска и отладки. Но не понимаю почему именно старые.
Т.е. можно компилировать и запустить под отладчиком:
To attach the debugger from the command line, use:
VsJITDebugger.exe -p <pid>
Хотя... странно все это - если указан конкретный ехешник - именно он и должен запускаться.
Проверь, чтобы там был именно ехешник, а не какой-нибудь апп-референсе.
Как вариант - просто скопируй ехешник (и конфиg) с другим именем и запускай его.
Да, вспомнилось...
Там вроде как есть возможность задать список параметров запуска в файле.
Если есть - то сначала загрузится Студия - затем уже будет загружатся солюшник и, скорее всего, без анализа.
Да, еще,,.
Посмотри какая версия Студии указана в солюшнике - может там 17-я заданa.
Долго обьяснять... грубо говорая есть своего рода интерпретатор со своим собственным языком для PLC который является плагином к VS15 оттуда и только оттуда может запускатся. В свою очередь HMI хоть внешне обычный и WPF под VS17 но имеет свой собственный плагин который только в VS17 может работать а под 15й нет...
Все это работает и между собой прекрасно комуницрует, но вопрос был не в этом, а в том как автоматизировать запуск одиночных проектов чтобы не долго не кликать....
Кстати, как оказалось, я не совсем правлильно трактовал описание команды "старт" по наводке
отсюда https://stackoverflow.com/questions/17201507/how-to-use-th...
немного изменил бэч:
Start "" "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe" "C:\верхняя_папка_олд\папка_олд_1\проект_олд_1.sln"
Start "" "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe" "C:\верхняя_папка_олд\папка_олд_2\проект_олд_2.sln"
Start "" "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe" "C:\верхняя_папка_олд\папка_олд_3\проект_олд_3.sln"
Start "" "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\devenv.exe" "C:\верхняя_папка_нью\папка_нью\проект_нью.sln"
Теперь понятно зачем тебе специфическая версия Студии и нет смысла предлагать обходные варианты по проектам.
Здесь список используемых заголовков солюшников.
https://gist.github.com/JamesSkemp/bbe17351ecdf6b1d6e07
Проверь свои солюшники на предмет нужной версии и потри *.suo (юзерские спеки). (см. в .vs folder)
Полной спеки на *.SLN Я пока не встречал.
но можно слегка поредактировать имеющийся *.sln на предмет связи с версией Студии.
Правда максимальную версию Студии Я нигде не встречал.
Тебе так же стоит посмотреть содержимое проектов - там есть указание в какой Студии он должен открываться
<Project ToolsVersion="14.0" DefaultTargets="Build"
Хммм... ты при запуске указал полное имя ехешника? Если опустил расширение - запустится devenv.com
Как он работает - Я не знаю.
Самое простое - скопируй devenv.exe и запускай копию.
Хи-хи... Сейчас только что проверил - сделал два солюшника - один 2015 (14) и второй 2017(15)
и просто в командной строке указал солюшник - без указания девенв.ехе - запустились соответствующие
Студии...
C:\Users\Me>"C:\0\VS2017Test\ClassLibrary1.sln"