获取Visual Studio中活动文档的路径

时间:2015-06-11 21:51:07

标签: c# visual-studio visual-studio-2013 vspackage

我正在使用C#为Visual Studio 2013编写VSPackage。

我需要一个简单的菜单添加到Visual Studio菜单栏。单击它时,我希望将Visual Studio中的当前打开(活动)文档上载到特定的存储库中。

更多说明: 我想创建像 VisualSVN 这样的东西,当你安装它时,一个菜单被添加到VS工具栏。单击工具栏上的菜单时,我想在Visual Studio中上传当前打开的文件。

问题:如何在Visual Studio中获取当前文档路径?

我尝试过: Globals.ThisAddin.Application.ActiveDocumentDTE.ActiveDocument

(基本上GlobalsDTE对我没有ThisAddinActiveDocuments。)

1 个答案:

答案 0 :(得分:1)

所以我解决了我的问题:

displayText = "";

if(radio1.isChecked){
    displayText = "radio1";
}else if(radio2.isChecked){
    displayText = "radio2";
}

if(checkbox1.isChecked){
    displayText += "checkbox1";
}

if(checkbox2.isChecked){
    displayText += "checkbox2";
}

textview.setText(displayText);

我也试过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; 时,我在主Visual Studio中获取当前文档(运行代码时,将打开另一个Visual Studio,您可以在调试时看到您的VSPackage 。)第一种方法(DTE)获取新打开的VS中活动文档的路径。第二种方法(DTE)获取当前Visual Studio中的活动文档 - 您正在编写代码的文档。