Я использую roslyn версии 1.3.2 от nuget в моем проекте. Сначала я пытался использовать эти коды для форматирования мой код:Как использовать Formatter.Format (SyntaxNode, Workspace) в roslyn?
var root = CSharpSyntaxTree.ParseText("filepath").GetRoot();
var workspace=MSBuildWorkspace.Create();
node=Formatter.Format(root,workspace);
И бросить IOException при выполнении MSBuildWorkspace.Create():
Не удалось загрузить файл или сборку «Microsoft.Build, Version = 14.0.0.0, Культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a 'или одна из ее зависимостей . Система не может найти указанный файл.
Затем я попытался установить с NuGet инструмент сборки, как этот вопрос сказал: MSBuildWorkspace.Create() throws exception
И я получаю много ошибок, поэтому я удалить его и удалить все файлы. Но когда я пытаюсь вызвать MSBuildWorkspace.Create(), он не будет генерировать исключение IOException. Я понятия не имею, как это работает.
К сожалению, SyntaxNode по-прежнему не будет отформатирован после вызова Formatter.Format, даже если исключений или предупреждений или ошибок вообще нет.
Еще одна вещь: я могу легко форматировать некоторый код в автономном консольном приложении без buildtools или IOException. Они используют одни и те же коды. Почему это несовместимо с моим проектом?
Итак, как правильно использовать это, лучше с пакетом сборки BuildTools nuget?
Спасибо за информацию, и я попробую, когда я пойду на работу, –
Это работает. Спасибо большое! –