获取 Visual Studio 中活动文档的路径
Get the path of the active document in Visual Studio
我正在使用 C# 为 Visual Studio 2013 编写一个 VSPackage。
我需要将一个简单的菜单添加到 Visual Studio 菜单栏。单击它时,我希望将 Visual Studio 中的当前打开(活动)文档上传到特定存储库。
更多说明:
我想创建类似 VisualSVN 的东西,当你安装它时,一个菜单会添加到 VS 工具栏。单击工具栏上的菜单时,我想在 Visual Studio.
中上传我当前打开的文件
问题:如何获取Visual Studio中的当前文档路径?
我试过: Globals.ThisAddin.Application.ActiveDocument
和 DTE.ActiveDocument
。
(基本上Globals
和DTE
对我来说没有ThisAddin
,ActiveDocuments
。)
所以我通过这个解决了我的问题:
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
时,我在 Main Visual Studio 中获取当前文档(当 运行 代码时,另一个 Visual Studio会打开,调试的时候可以看到你的VSPackage。) 第一种方法(DTE
)获取新打开的VS中活动文档的路径。第二种方法 (DTE2
) 获取当前 Visual Studio 中的活动文档——您正在编写代码的文档。
我正在使用 C# 为 Visual Studio 2013 编写一个 VSPackage。
我需要将一个简单的菜单添加到 Visual Studio 菜单栏。单击它时,我希望将 Visual Studio 中的当前打开(活动)文档上传到特定存储库。
更多说明: 我想创建类似 VisualSVN 的东西,当你安装它时,一个菜单会添加到 VS 工具栏。单击工具栏上的菜单时,我想在 Visual Studio.
中上传我当前打开的文件问题:如何获取Visual Studio中的当前文档路径?
我试过: Globals.ThisAddin.Application.ActiveDocument
和 DTE.ActiveDocument
。
(基本上Globals
和DTE
对我来说没有ThisAddin
,ActiveDocuments
。)
所以我通过这个解决了我的问题:
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
时,我在 Main Visual Studio 中获取当前文档(当 运行 代码时,另一个 Visual Studio会打开,调试的时候可以看到你的VSPackage。) 第一种方法(DTE
)获取新打开的VS中活动文档的路径。第二种方法 (DTE2
) 获取当前 Visual Studio 中的活动文档——您正在编写代码的文档。