我正在使用VSPackage为Visual 2013编写一个C#。
我需要一个简单的菜单来添加到菜单栏中。单击它时,我希望将Visual中当前打开的(活动)文档上载到特定的存储库中。
更多解释:我想创建类似VisualSVN的东西,当您安装它时,菜单会添加到VS工具栏中。单击工具栏上的菜单时,我希望在Visual中上载当前打开的文件。
问题:如何在Visual中获得当前文档路径?
我试过了:,Globals.ThisAddin.Application.ActiveDocument和DTE.ActiveDocument。
(基本上Globals和DTE没有ThisAddin,ActiveDocuments代表我。)
发布于 2015-06-12 16:30:38
所以我解决了我的问题
DTE dte = (DTE)GetService(typeof(DTE));
string filePath = dte.ActiveDocument.FullName;我也试过DTE2
EnvDTE80.DTE2 dte2;
dte2 = (ENVDTE80.DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.12.0");
string filePath = dte2.ActivaDocument.FullName;注意事项:使用DTE时,我在主Visual中获得当前文档(运行代码时,将打开另一个Visual,调试时可以看到VSPackage )。第一个方法(DTE)在新打开的VS中获取活动文档的路径。第二个方法(DTE2)获取当前Visual中的活动文档--正在编写代码的方法。
https://stackoverflow.com/questions/30792071
复制相似问题