2015-01-17 93 views
1

我嘗試在此解決方案中發出每個項目。Roslyn Workspace API:發射Wpf和Silverlight項目

Solution

我不知道爲什麼有與冒落 「WPF」 問題和 「Silverlight的」 項目。我可以理解,我無法發送當前正在執行的控制檯項目。

Errors

如何添加缺少的參考? 這裏是我的代碼:

public static async Task EmitProject(Project proj) 
    { 
     var c = await proj.GetCompilationAsync(); 

     var r = c.Emit("my" + proj.Name); 

     Console.ForegroundColor = ConsoleColor.White; 
     Console.WriteLine(r.Success + " " + proj.Name); 

     if (!r.Success) 
     { 
      Console.ForegroundColor = ConsoleColor.Red; 
      Console.WriteLine(r.Diagnostics.First(k => k.WarningLevel == 0)); 
     } 
    } 

回答

3

Silverlight和WPF項目有一個比較複雜的構建過程,其中一些代碼在由東西,如XAML標記編譯器編譯的時候產生的。調用Emit不會觸發該代碼運行 - 它只是表示對MSBuild中的CSC任務的單個調用。

大部分時間OpenSolutionAsync實際上會導致構建進度足夠遠以至於CSC的調用將會工作,但顯然不適用於這些項目類型。

對於ConsoleApplication,問題在於它引用了PCL,並且未正確添加外觀引用。

您能否提出問題http://github.com/dotnet/roslyn供我們調查?