visual-studio-2019 - 如何获取在 Visual Studio 中打开的当前解决方案的路径?
问题描述
我创建了一个工具窗口作为 VSIX 项目的一部分,并安装了一个扩展来测试它。因此,工具窗口需要访问在 Visual Studio 中打开的当前解决方案/项目。当用户第一次创建项目时,我们可以使用如下所述的 DTE 对象获取路径,我尝试了它们,它工作正常,
但是下次当用户双击解决方案时如何获取当前的解决方案路径?现在,当用户打开 .sln 文件时,工具窗口会中断,因为它无法找到打开的解决方案路径。
解决方案
当用户双击并打开解决方案时,我们手头没有DTE
对象,我们需要一种不同的方式来获取 solutionInfo。我使用IVsSolution.GetSolutionInfo使它工作
IVsSolution solution = (IVsSolution) Microsoft.VisualStudio.Shell.Package.GetGlobalService(typeof(IVsSolution));
solution.GetSolutionInfo(out string solutionDirectory, out string solutionName, out string solutionDirectory2);
var solutionPath = solutionDirectory + System.IO.Path.GetFileNameWithoutExtension(solutionName);
推荐阅读
- azure - 修改 Azure Batch 中任务集合的 json 文件
- alloy - Electrum 2 下的动态模型如何建立初始状态?
- java - iText 7 Html 到 Pdf 的转换并将外部文件链接到生成的 pdf
- php - Laravel whereIn 实现 whereJsonContains
- amazon-web-services - 启动 AWS EC2 服务器后 Docker-compose 自动启动
- c - 内存对齐的目的是什么,为什么我需要它?
- sql - 如何在sql中通过引用日期来计数
- javascript - 在Javascript中替换由特定字符包围的多个文本实例
- continuous-integration - Gitlab CI 管道包含模板不起作用(秘密检测)
- vue.js - Vue 创建项目 - 找不到模块'vue-loader-v16/package.json'