我在zip文件中有一个Visual Studio解决方案,我的计划是解压缩该文件,然后加载解决方案。是否可以使用 Visual Studio API 执行此操作?
我的第一个想法是实现IVsProjectFactory和IVsProjectUpgradeViaFactory,以解压缩CreateProject/UpgradeProject方法中的解决方案,然后加载它。
解压缩有效,但是当我尝试使用 IVsSolution.OpenSolutionFile(( 或 DTE 加载解决方案文件时。Solution.Open(((在 CreateProject/UpgradeProject 方法中(,它失败并显示 ArgumentException。
这个问题有什么解决方案吗?理想情况下,它的行为应该就像打开普通的VS解决方案一样(从Windows资源管理器打开,或在Visual Studio中打开Ctrl + o/Ctrl + Shift+o(。
编辑我已经设法通过实现与我的文件扩展名相关联的 IVsEditorFactory 来让它工作。当打开具有该扩展名的文件时,将调用 CreateEditorInstance 方法,我在其中解压缩文件,然后使用 IVsSolution.OpenSolutionFile(( 打开解决方案。
不幸的是,这不允许我通过文件>打开>项目/解决方案打开文件,而只能通过文件>打开>文件。此外,打开文件时显示的对话框标题为"打开文件"而不是"打开解决方案"或类似内容。
这个解决方案感觉有点像黑客,但直到现在我都找不到其他方法。我仍然愿意寻求更好的解决方案。
应该可以编写批处理脚本来解压缩解决方案。 之后,它可以开始solution_name。 这应该在该解决方案上启动MSVS。 通常,在任何文件类型上发出 START 都会尝试使用默认应用程序打开它。