У меня есть макрос, который открывает решение, подключается к SourceSafe и загружает последнюю версию каждого файла внутри решения. На данный момент все работает правильно.
Теперь я хочу выполнить devenv.exe с параметром / command, чтобы запустить этот макрос и закрыть среду Visual Studio после загрузки исходного кода, и в этот момент у меня возникают некоторые проблемы:
Если я использую макрос, подобный следующему за этими строками, Visual Studio запускается, загружает решение, начинает получать исходный код, а затем завершает работу, не дожидаясь полной загрузки кода.
DTE.Solution.Open("C:\ApeironDev\Soluciones\SolucioApeiron\SolucioApeiron.sln")
DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate()
DTE.ActiveWindow.Object.GetItem("SolucioApeiron").Select(vsUISelectionType.vsUISelectionTypeSelect)
DTE.ExecuteCommand("ClassViewContextMenus.ClassViewProject.ContextGetLatestVersion")
DTE.ExecuteCommand("File.Exit")
Если я добавлю строку в Sleep macro в течение некоторого времени, скажем, 20 минут, это завершится с ошибкой, связанной с ошибкой в COM-вызове (я знаю, что это не элегантный способ выполнить работу, но для тестирования ...).
DTE.Solution.Open("C:\ApeironDev\Soluciones\SolucioApeiron\SolucioApeiron.sln")
DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate()
DTE.ActiveWindow.Object.GetItem("SolucioApeiron").Select(vsUISelectionType.vsUISelectionTypeSelect)
DTE.ExecuteCommand("ClassViewContextMenus.ClassViewProject.ContextGetLatestVersion")
Threading.Thread.Sleep(New System.TimeSpan(0, 20, 0))
DTE.ExecuteCommand("File.Exit")
Я ищу способ запуска Visual Studio, загрузки решения, получения последней версии исходного кода (в ожидании завершения процесса) и затем закрытия среды Visual Studio.
Любая помощь?
Уточнение, для запуска макроса я использую следующую командную строку:
devenv.exe /command "Macros.MyMacros.SourceControl.GetLastVersion"
Где Macros.MyMacros.SourceControl.GetLastVersion - полный путь к макросу, содержащему описанный выше код.