我有一个宏,可以打开解决方案,连接到SourceSafe并下载解决方案中每个文件的最新版本。到目前为止,一切都正常。
现在我想使用 /command 选项执行 devenv.exe 来运行这个宏,并在源代码下载完成后关闭 Visual Studio 环境,但是我遇到了一些问题:
如果我使用像以下这些行的宏,Visual Studio 就会启动,加载解决方案,开始获取源代码,然后退出而不等待代码完全下载。
我正在寻找的是一种方法,可以启动Visual Studio,加载一个解决方案,获取最新版本的源代码(等待进程完成),然后关闭Visual Studio环境。有什么帮助吗?
澄清一下,我使用以下命令行来运行宏:
现在我想使用 /command 选项执行 devenv.exe 来运行这个宏,并在源代码下载完成后关闭 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")
如果我添加一行代码让宏休眠一段时间,比如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是包含上述代码的宏的完整路径。