2011-07-10 10 views
0

私はC#ソリューションを経由するアドインの開発を依頼されており、ソースファイルからすべてのドキュメントを抽出してHTMLファイルにエクスポートします。エクスポートは特定の形式にする必要があるため、通常のドキュメントジェネレータは使用できません。ソースファイルを列挙するためのAddin

私は基本的なアドインを作成する方法を知っていますが、ソースファイルを列挙する方法については手がかりがありません。

このプロジェクトを開始する方法についてのアイデアやリソースはありますか?

ありがとうございました。

答えて

0

ここでは、指定されたファイルstringで終了するファイルを検索するために使用しているコードを示します。

構造は、Visual Studioのソリューションエクスプローラのようなものです:あなたのコードが実行されているどこ

Solution -> ProjectItems -> (Nested ProjectItems) -> FileNames 

、あなたはソリューションでプロジェクトをプルアップし、それらのプロジェクトで、その後ProjectItemsことができます。

private void RecursiveProjectItemSearch(ProjectItem projectItem, string typeFileName) 
{ 
    for (short i = 0; i < projectItem.FileCount; i++) 
    { 
     var fileName = projectItem.FileNames[i]; 

     if (fileName.EndsWith(typeFileName)) 
     { 
      // In my case, I want to open the file that I'm searching for 
      _applicationObject.ItemOperations.OpenFile(fileName); 
     } 

     foreach(ProjectItem childProjectItem in projectItem.ProjectItems) 
     { 
      RecursiveProjectItemSearch(childProjectItem, typeFileName); 
     } 
    } 
} 

asdasd

var typeFileName = @"\MyClassName.cs"; 

// Search each Project in the Solution, exclude Unit Test Projects 
foreach (Project item in _applicationObject.Solution.Projects.OfType<Project>().Where(p => !p.Name.EndsWith(".Tests"))) 
{ 
    // Search each ProjectItem recursively 
    foreach (ProjectItem projectItem in item.ProjectItems) 
    { 
     RecursiveProjectItemSearch(projectItem, typeFileName); 
    } 
} 

これは、これを行うための最も最適な方法であるかどうかは知りませんが、それは動作するはずです。上のコードを与えれば、File.Open()を実行して内容やそれに類するものを読むことができます。

関連する問題