如何编程Visual Studio 2010宏用于访问和编辑特定的项目文件?

时间:2011-04-21 20:45:44

标签: xml visual-studio visual-studio-2010 macros visual-studio-macros

我想编写一个宏来将选定的文本放到项目中的特定XML文件中。例如我的路径是〜/ Pages / Dictionary / en.xml。我想把一个aspx.cs文件中的选定文本放到en.xml文件中 请指导我从哪里开始。我可以得到所选的文字。现在我不知道如何访问文件内容转到文件末尾(或文件中的其他位置)并根据所选文本插入一些文本。

1 个答案:

答案 0 :(得分:2)

要打开文件,请使用解决方案资源管理器中的树路径,或者只使用完整的文件路径:

DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate()
DTE.ActiveWindow.Object.GetItem _
    ("{solutionname}\{projectname}\Pages\Dictionary\en.xml") _
    .Select(vsUISelectionType.vsUISelectionTypeSelect)
DTE.ActiveWindow.Object.DoDefaultAction()

DTE.ItemOperations.OpenFile _
    ("{projectpath}\Pages\Dictionary\en.xml")
DTE.ActiveDocument.Activate()

您没有提到这是针对单个项目和/或解决方案,所以我不知道是否只需对花括号中的项进行硬编码就足够了。


要在文件末尾插入文本,您可以选择文档的结尾并粘贴(例如,如果您使用Selection.Copy()),或者您可以创建编辑点并插入任何文本:< / p>

DTE.ActiveDocument.Selection.EndOfDocument()
DTE.ActiveDocument.Selection.Paste()

Dim editPoint As EnvDTE.EditPoint
selection = DTE.ActiveDocument.Selection()
editPoint = selection.TopPoint.CreateEditPoint()
editPoint.Insert("any text" + vbLf)

我不确定文件的末尾是否是您要添加文本的真实位置;如果没有,可以用例如导航文档来导航文档。 StartOfLine()LineUp()WordRight()control the code editor的其他方法。