2017-08-11 8 views
1

我々は、プログラム.csprojプロジェクトを開くためC#Roslynのバージョン2.3.1を使用しています。この目的のためにモノ:ファイルまたはアセンブリをロードできませんでした「System.Threading.Tasks.Dataflow」

、我々は.csprojを開き、文書の構文木を取得するために、各Microsoft.CodeAnalysis.Documentをナビゲートするためにロズリンが提供する次の標準APIコードを使用している:

public void BrowsProjectDocuments(string projectPath) 
{ 
    var workspace = MSBuildWorkspace.Create(); 
    workspace.WorkspaceFailed += WorkSpaceFailed; 
    Project currentProject = workspace.OpenProjectAsync(projectPath).Result;  

    foreach(Document document in currentProject.Documents) 
    { 
     Task<SyntaxTree> documentSyntaxTree = document.GetSyntaxTreeAsync(); 
     ..... 
     ..... 
    } 
} 

private static void WorkSpaceFailed(object sender, WorkspaceDiagnosticEventArgs e) 
{ 
    Console.WriteLine(e.Diagnostic.Message); 
} 
我々は の.NET Framework 4.6.1/4.6.2Roslynの2.3.1を使用してWindows 7 に上記のコードを実行すると、コードがうまく実行さ

たちは、各ドキュメントの必要な構文木を取得

しかし、我々はのUbuntu 16.04上で同じコードを実行しようとすると、数を返し、私たちはでスローエラーを以下の取得currentProject.DocumentsがイベントをWorkSpaceFailedはフックアップ:

を '/home/user/CSharp/RoslynSamples/AplModel/AplModel.csproj' メッセージの種類を読み込めませんでした 'Microsoft.Build.Ba ckEnd.Logging.LoggingService:_loggingQueue '(20) :ファイルまたはアセンブリを読み込めませんでした ' System.Threading.Tasks.Dataflow、Version = 4.5.24.0、Culture =ニュートラル、 PublicKeyToken = b03f5f7f11d50a3a 'または依存関係。 アセンブリ:System.Threading.Tasks.Dataflow、バージョン= 4.5.24.0、 カルチャニュートラル、PublicKeyToken = = b03f5f7f11d50a3aタイプ:メンバー:

我々は使用してUbuntuマシン上でモノをインストールしました:

sudo apt-get installモノ完了

何が紛失していますか?

答えて

0

MSBuildWorkspaceは現在クロスプラットフォームではありません。これは、.netデスクトップclrでのみ動作します。しかし、私のモノの知識はあまり良くないので、モノで動かすことは可能かもしれません。エラーメッセージは、DataFlowライブラリを何とかインクルードする必要があることを示しています。

0

はここに回避策を見て:あなたはモノを使用する必要がhttps://github.com/Microsoft/msbuild/issues/1469 は、MSBuildのは、(例えば、モノから取らまたはモノラルの下で構築された)、NuGetからSystem.Threading.Tasks.DataflowとMicrosoft.VisualStudio.RemoteControlパッケージをインストールするホストされています。

関連する問題