2017-04-20 20 views
1

既存のCSharpCompilationオブジェクトを新しいCSharpCompilationオブジェクトに含める必要があります。 C#のプロジェクト間参照に似ています。 私の現在の解決策は、最初のコンパイルの構文木を新しいコンパイルに含めることですが、どちらのコンパイルでもシンボルを比較する必要があるときには問題になります(同じではありません)。 MetadataReference.CreateFrom ...()には、Compilationのオーバーロードが含まれていません。 これはどういうことですか?Roslyn - CSharpCompilationからCSharpCompilationへの参照

答えて

2

あなたはthe CompilationReference typeを探していますが、それはCSharpCompilation.ToMetadataReference()を呼び出して作成することができます。

+0

これは私が必要ですが、参照されたコンパイルでシンボルを再利用する代わりに、新しいコンパイル用の新しいシンボルが作成されます。最初のコンパイルでシンボルを見つけるには、SymbolFinder.FindSimilarSymbols()を使用する必要があります。これはパフォーマンスの理由から避けたいものです。 – TWT

0

Compilation 'Projectの両方を同じSolutionに入れてから、ProjectReferenceを追加する必要があります。

+0

これはすべてのシンボルを1回だけ作成しますか? – TWT

+0

@TWT:はい。これは、プロジェクト参照を追加するときにVSが行うこととまったく同じです。 – SLaks

関連する問題