2015-01-17 4 views
1

Я пытаюсь испустить каждый проект в этом решении.API-интерфейс Roslyn Workspace: выделение проектов Wpf и Silverlight

Solution

Интересно, почему существует проблема с «МОФ непосредственно излучающих» и «Silverlight» проекты. Я могу понять, что я не могу запустить проект Emit Console, который я сейчас выполняю.

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 Markup Compiler. Вызов Emit не запускает этот код для запуска - он просто представляет один вызов задачи CSC в MSBuild.

В большинстве случаев OpenSolutionAsync на самом деле заставляет сборку развиваться настолько далеко, что вызов CSC будет работать, но, по-видимому, не для этих типов проектов.

Для ConsoleApplication проблема заключается в том, что она ссылается на PCL, и ссылки на фасад не добавляются правильно.

Можете ли вы подать вопрос по адресу http://github.com/dotnet/roslyn, чтобы мы исследовали?