我正在开发我的第一个Visual Studio
扩展。我设法在保存一个文件时设置了事件侦听器,并使用DocData
以这种方式修改了另一个文件:
var docData = new DocData(this, fileName);
var editorAdaptersFactoryService = (this.GetService(typeof(SComponentModel)) as IComponentModel).GetService<IVsEditorAdaptersFactoryService>();
var textBuffer = editorAdaptersFactoryService.GetDataBuffer(docData.Buffer);
textBuffer.Replace(new Span(0, textBuffer.CurrentSnapshot.Length), content);
这里的问题是,在我修改这个新文件后,我必须保存它,但我找不到任何关于如何保存文件的例子。在我的DocumentSaved
侦听器中,我有一个EnvDTE.Document
,我可以在其中调用EnvDTE.Document.Save()
,但我正在尝试保存另一个文件,我有我试图保存的这个新文件的完整路径。我想迭代项目中的所有文件,寻找我的特定文件,并在ProjectItem
中使用可用的Save()
方法。我试着在这个答案中使用代码,但没有成功。
任何关于这方面的指导都会很棒!
有了完整的路径,您可以尝试
ProjectItem DTE.Solution.FindProjectItem("Fullpath")
https://msdn.microsoft.com/en-us/library/envdte._solution.findprojectitem.aspx