2010-12-05 9 views
2

オブジェクトモデルを通じてVisual Studioプロジェクト項目を自動的にインスタンス化します。いくつかのファイルでは、テキストの置換を行う必要があります。オブジェクトモデルを使用してプロジェクト項目の内容(たとえばXMLファイル)のテキスト置換を行うための最良の方法は何ですか?Visual Stuidoは必要なソースコントロールアクションを処理します。私はエディタにファイルを開き、エディタオブジェクトモデルを使ってテキストの置き換えをしないほうがいいです。Visual Studio 2010:オートメーションによるプロジェクト項目のテキストの置換

答えて

0

TextDocument.ReplacePatternメソッドを使用します。あなたはこのようなのProjectItemオブジェクトからTextDocumentオブジェクトを取得できます。

DirectCast(ProjectItem.Document.Object, TextDocument) 

次のように完全なコードは次のとおりです。

Dim pi As ProjectItem = ... 
Dim win As EnvDTE.Window = Nothing 
If Not pi.IsOpen Then 
    win = pi.Open(Constants.vsViewKindPrimary) 
    'uncomment the following line if you want to show opened document 
    'win.Visible=True 
End If 
Dim td As TextDocument = DirectCast(pi.Document.Object, TextDocument) 
td.ReplacePattern("abc", "def") 
If Not win Is Nothing Then 
    win.Close(vsSaveChanges.vsSaveChangesYes) 
End If 
+0

このアプローチは、エディタにドキュメントを開きますか? –

+0

いいえ、実際には、ドキュメントがエディタで開かれていない場合、ReplacePatternメソッドは例外をスローします。バックグラウンドで文書を非表示にして置き換えてから、文書を静かに閉じる必要があります。 VB .NEtのコードは次のとおりです。 –

+0

コードで自分の回答を更新しました。 –

関連する問題