元の (および更新された) 投稿は、ここにあります。
実際、DXCore は Visual Studio の外で使用するように設計されていませんが、常に回避策があります... この記事では、通常の C# コンソール アプリケーション内で DXCore フレームワークを使用してソリューション全体を解析し、抽象解析ツリーで作業します。ソリューションは、*.sln ファイルへの完全な完全パスとしてプログラムに引数として渡す必要があります。引数が使用されていない場合、テスト プログラムへのハードコードされたパスが使用されるため、プログラムはそれ自体を解析し、使用されているすべての型のリストや各クラス内のメンバー数など、ソリューションに関する情報を出力します。
新しい C# コンソール アプリケーションを作成し、TestDXCoreConsoleApp という名前を付けて、"C:\Project" フォルダー内に保存します。

次に、新しいプロジェクトのターゲット フレームワーク バージョンをフレームワーク 4.0 に変更する必要があります。これは、「ターゲット フレームワーク 4.0 クライアント プロファイル」ではありません。これは、必要なアセンブリ参照の一部がこのバージョンのターゲット フレームワークをサポートしていないためです。

次に、必要なアセンブリ参照を追加しましょう。必要なもののリストは次のとおりです。
1) DXCore アセンブリ:
- DevExpress.CodeRush.Common
- DevExpress.CodeRush.Core
- DevExpress.CodeRush.StructuralParser
- DevExpress.CodeRush.VSCore
- DevExpress.DXCore.AssemblyResolver
- DevExpress.DXCore.Parser
これらのアセンブリは、DevExpress IDE ツールのインストール フォルダー内にあります。たとえば、パスは次のようになります。
C:\Program Files\DevExpress 2011.1\IDETools\System\DXCore\BIN
2) 現在、異なるプログラム言語をサポートするための 3 つの追加アセンブリ:
- DX_CPPLanguage
- DX_CSharpLanguage
- DX_VB言語
これらのアセンブリを使用すると、CSharp、Visual Basic、および C++ プロジェクトを解析できます。それらはここにあります:
C:\Program Files (x86)\DevExpress 2011.1\IDETools\System\DXCore\BIN\SYSTEM
3) .NET Framework アセンブリ:
- Microsoft.Build.BuildEngine.dll
4) 最後に、いくつかの Visual Studio アセンブリ:
これら 2 つは "PublicAssemblies" フォルダーにあります。
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\
さて、DXCore サポート コードです。このコードは、ソリューションとそのプロジェクトを読み込み、DXCore パーサーを初期化するために必要です。2 つのフォルダーを追加しました。
1) Helpers フォルダーには、次のクラスが含まれています。
- LanguageHelper.cs - プロジェクトの言語を検出します (CSharp、Visual Basic、C++ など)。
- ParserHelper.cs - DXCore パーサーといくつかの重要な DXCore サービス (ソース モデル サービスとソース コードの解析に使用される言語サービス) を初期化します。
- SolutionParser.cs - 解析するソリューションへのパスを取得するヘルパー クラス。GetParsedSolution メソッドを呼び出すと、ソリューション全体の抽象ソース ツリーを保持する SolutionElement が返されます。
2) Loaders フォルダーには、さまざまな Visual Studio バージョンの Visual Studio プロジェクトとソリューション ローダーが含まれています。これらは、*.XXproj および *.sln ファイルの解析に使用されます。VS2002、VS2003、VS2005 用のバージョンがあります。VS2008 および VS2010 用の専用ローダーはありません。古い VS バージョン用のローダーは、新しい Visual Studio プロジェクトおよびソリューション形式のファイル (2008、2010 など) の読み取りと読み込みに完全に問題がないためです。
TestDXCoreConsoleApp の最終的な構造は次のとおりです。

完全なソースを含む TestDXCoreConsoleApp はこちら(267,457 バイト、C#、VS2010) にあるため、コードを確認して、必要に応じて使用できます。Program クラスの Main 関数は次のとおりです。
static void Main(string[] args)
{
string SolutionPath;
if (args != null && args.Length > 0)
SolutionPath = args[0];
else
SolutionPath = @"c:\Projects\TestDXCoreConsoleApp\TestDXCoreConsoleApp.sln";
try
{
ParserHelper.RegisterParserServices();
Console.Write("Parsing solution... ");
SolutionParser solutionParser = new SolutionParser(SolutionPath);
SolutionElement solution = solutionParser.GetParsedSolution();
if (solution == null)
return;
Console.WriteLine("Done.");
foreach (ProjectElement project in solution.AllProjects)
foreach (SourceFile file in project.AllFiles)
foreach (TypeDeclaration type in file.AllTypes)
{
Console.Write(type.FullName);
Console.WriteLine(", members: " + ((ITypeElement)type).Members.Count);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
ParserHelper.UnRegisterParserServices();
}
Console.ReadLine();
}
ソースを "C:\Projects" フォルダーに配置し、引数を指定せずにプログラムを実行すると、次の結果が表示されます。

Enter キーを押してウィンドウを閉じます。解析プロセスには時間がかかる場合があるため、ソリューション全体が解析されるまで数秒待つ必要がある場合があることに注意してください。