Stworzyłem projekt biblioteki klas i zrobiłem trochę przetwarzania, a także użyłem Roslyn do wygenerowania kodu.Roslyn rzuca Język "C#" nie jest obsługiwany
Używam biblioteki w aplikacji GUI WPF jako odniesienie.
Są to pakiety Nuget:
budowy nie wykazuje żadnych błędów, jednak kiedy użyć następującego kodu:
private static void GetGenerator()
{
workspace = new AdhocWorkspace();
generator = SyntaxGenerator.GetGenerator(workspace, LanguageNames.CSharp);
}
uzyskać wyjątek:
"Język" C# "nie jest obsługiwany."
at: Microsoft.CodeAnalysis.Host.HostWorkspaceServices.GetLanguageServices(String languageName)
at: Microsoft.CodeAnalysis.Host.Mef.MefWorkspaceServices.GetLanguageServices(String languageName)
at: Microsoft.CodeAnalysis.Editing.SyntaxGenerator.GetGenerator(Workspace workspace, String language)
Według this i this muszę kopiować pliki CodeAnalysis lokalnie i dodać odpowiednie referencje. Są tam, ale błąd występuje.
Czy to nadal błąd, który nie został naprawiony w zeszłym roku?
Co jeszcze należy zrobić?
Czy masz zależność od pakietu Microsoft.CodeAnalysis.CSharp.Workspaces? – svick
@svick Tak, robię, zaktualizowałem swój pierwszy wpis z listą pakietów NuGet. – Nestor
IMO jest to [problem z MsBuild] (https://github.com/Microsoft/msbuild/issues/1469) – StingyJack