2016-11-11 4 views
1

現在、各製品と共に出荷されているThirdPartiesのリストを取得しようとしており、NDepend APIを使用しています。私が行った研究に基づいて、ソリューションファイルをフィードして、そのソリューションに関連するDLLとEXEのリストが出てくるようです。これまでのところ、私が試してみました:NDepend APIを使用してアセンブリとその関連プロジェクトのリストを取得しますか?

static void Main(string[] args) 
{ 
    var ndependServicesProvider = new NDependServicesProvider(); 
    var projectManager = ndependServicesProvider.ProjectManager; 
    var visualStudioManager = ndependServicesProvider.VisualStudioManager; 
    var projPath = "C:\\code\\depot\\Captiva\\IA\\EIM\\_Trunk\\Src\\BuildInputAccel.Installers.sln"; 
    var sln = projPath.ToAbsoluteFilePath(); 
    var vsSlnOrProjFilePaths = new List<IAbsoluteFilePath> { sln }; 
    var assembliesFilePath = (from vsSlnOrProjFilePath in vsSlnOrProjFilePaths 

           from assembliesFilePathTmp in visualStudioManager.GetAssembliesFromVisualStudioSolutionOrProject(vsSlnOrProjFilePath) 

           select assembliesFilePathTmp).Distinct().ToArray(); 
    IProject project = projectManager.CreateTemporaryProject(assembliesFilePath, TemporaryProjectMode.Temporary); 
    project.CodeToAnalyze.SetApplicationAssemblies(assembliesFilePath); 
    projectManager.SaveProject(project); 
    IAnalysisResult analysisResult = project.RunAnalysis(); 
    Console.Write(analysisResult.CodeBase); 



} 

そして型「System.IO.FileNotFoundException」の未処理の例外を得ているががmscorlib.dll

で発生した誰もが、私はここで間違ってやっているのか分かりません。私は単純に、ソリューション内の各プロジェクトに関連するdllとexesのリストを出力したいと考えています。 PS:私はC#にはとても新しいので、これは些細なことならごめんなさい!

答えて

1

end of the NDepend API getting startedページには、何をすべきかについての説明があります。

実際には、統合されたCode Querying LINQ (CQLinq)機能を使用して、参照されているライブサードパーティーのアセンブリとその使用法を照会することができます。 NDependのスタートページから

1)>あなたのソリューションを選択)VSソリューション

2を分析

3)実行したばかりのこのコードのクエリ編集することができます次に

分析:

from a in ThirdParty.Assemblies 
select new { a, a.AssembliesUsingMe } 

NDepend querying for third-parties assemblies usage

一部のサードパーティ製アセンブリが見つからない場合は、分析時に解決されていないためです。 >ディレクトリ

NDepend project properties folders that contain assemblies

+0

これは偉大なおかげでを分析するために、解析エラーのリストを見て、NDependのはNDependのプロジェクトのプロパティ>コード内のアセンブリを探しますフォルダのリストを更新! Ndependプロジェクトをプログラムで作成しようとするとmscorlib.dllエラーで 'System.IO.FileNotFoundException'が発生しました。なぜこれが起こっているのか知っていますか? – jshaf

+0

NDepend API – jshaf

+0

のGetting Startedセクションのすべての手順に従ってください。この手順を再度確認してください。「NDependアセンブリはすべて$ NDependInstallPath $ \と$ NDependInstallPath $ \ Libに存在する必要があります。 NDepend.API.dllは実際に他のすべてのNDependアセンブリに依存しているので、それらを展開する必要があります –

関連する問題