2017-04-20 45 views
1

我想將現有的CSharpCompilation對象包含到新的CSharpCompilation對象中。類似於c#中的項目到項目的引用。 我目前的解決方案是在新編譯中包含第一個編譯的語法樹,但是當我需要比較兩個編譯中的符號(它們不相同)時會出現問題。 MetadataReference.CreateFrom ...(),不包含編譯的重載。 這是可能的嗎?Roslyn - CSharpCompilation to CSharpCompilation參考

回答

2

我相信你正在尋找the CompilationReference type,可以通過致電CSharpCompilation.ToMetadataReference()創建。

+0

這就是我所需要的,但仍然爲新編譯創建新符號,而不是在引用編譯中重新使用符號。要在第一個編譯中找到符號,我需要使用SymbolFinder.FindSimilarSymbols(),我想避免出於性能原因。 – TWT

0

您需要將Compilation s'Project s放在相同的Solution中,然後添加ProjectReference

+0

這將只創建一次所有符號? – TWT

+0

@TWT:是的。這正是VS在添加項目引用時所做的。 – SLaks