2017-05-31 3 views
2

J'essaie de travailler avec des projets C# via Roslyn. Je le fais comme ceci:Roslyn: aucun document dans le projet ouvert sur Ubuntu

solution = workspace.OpenSolutionAsync(solutionPath).Result; 
foreach (var project in solution.Projects) { 
    foreach (var document in project.Documents) { 
     ... 

Tout fonctionne bien sur Windows 10, mais sur Ubuntu 16.10 chaque projet que j'ouvre contient aucun document

project.HasDocuments == false 

Je les dernières versions (2.3.0-beta) de toutes les dépendances nécessaires: Microsoft.CodeAnalysis.Analyzers, Microsoft.CodeAnalysis.CSharp, Microsoft.CodeAnalysis.CSharp.Workspaces, Microsoft.CodeAnalysis.Common, Microsoft.CodeAnalysis.Workspaces.Common

Project version .NET est 4.6, Mono la version est 5.0.1.1

Lors de l'utilisation de versions .NET 4.5 et plus anciennes des dépendances, j'ai eu le problème des solutions vides (aucun projet n'a été détecté). Après la mise à jour vers 4.6 et les nouvelles versions de dépendances, les projets sont trouvés, mais pas les documents.

Est-il possible de résoudre le problème, au moins pour faire échouer Roslyn? Ou peut-être la fonctionnalité que je veux est en quelque sorte Windows uniquement?

P.S. J'ai vu une question connexe (Roslyn load project documents faililng), mais la solution à partir de là ne fonctionne pas.

Répondre

0

Habituellement, cela se produit lorsque MSBuild est incapable de faire une "conception de construction" pour trouver le contenu des projets. Cela nécessite la résolution des tâches/cibles/importations, ce qui pourrait ne pas fonctionner sur Mono. Essayez de vous abonner à l'événement WorkspaceFailed pour voir si vous obtenez des diagnostics de MSBuild indiquant le problème.