Компилятор Roslyn не видит ссылкиC#

Место общения программистов C#
Ответить
Anonymous
 Компилятор Roslyn не видит ссылки

Сообщение Anonymous »


Я пытаюсь создать приложение .NET 6.0, которое сможет скомпилировать другое приложение .NET 6.0. Проблема в том, что Рослин, похоже, не видит ссылок.

Вот некоторые ошибки, которые я получил от Рослин:

Недопустимое имя сборки: имя содержит недопустимые символы.
Невозможно найти имя типа или пространства имен 'List'
Невозможно найти имя типа или пространства имен «Задача»
Невозможно найти имя типа или пространства имен «StreamReader»
Имя «Среда» не существует в текущем контексте
Имя «Строка» не существует в текущем контексте
Имя «Массив» не существует в текущем контексте
Тип MarshalByRefObject определен в сборке, на которую нет ссылки. Вам необходимо добавить ссылку на сборку System.Runtime
Тип «Uri» определен в сборке, на которую нет ссылок. Вам необходимо добавить ссылку на сборку System.Runtime

А это мой код компилятора:

var SyntaxTree = CSharpSyntaxTree.ParseText(источник); вар ссылки = новый [] { MetadataReference.CreateFromFile(typeof(object).Assembly.Location), MetadataReference.CreateFromFile(Path.Combine(dp, "BouncyCastle.Crypto.dll")) }; var компиляция = CSharpCompilation.Create(выход) .WithOptions(новый CSharpCompilationOptions(OutputKind.WindowsApplication)) .AddReferences(ссылки) .AddSyntaxTrees(syntaxTree); EmitResultemitResult = компиляция.Emit(выход); Я уже пробовал что-то подобное:

var ссылки = новый[] { MetadataReference.CreateFromFile(typeof(object).Assembly.Location), MetadataReference.CreateFromFile(typeof(HttpClient).Assembly.Location), MetadataReference.CreateFromFile(typeof(System.Net.HttpWebRequest).Assembly.Location), MetadataReference.CreateFromFile(typeof(System.Text.RegularExpressions.Regex).Assembly.Location), MetadataReference.CreateFromFile(typeof(List).Assembly.Location), MetadataReference.CreateFromFile(typeof(Task).Assembly.Location), MetadataReference.CreateFromFile(typeof(StreamReader).Assembly.Location), MetadataReference.CreateFromFile(typeof(Environment).Assembly.Location), MetadataReference.CreateFromFile(typeof(string).Assembly.Location), MetadataReference.CreateFromFile(typeof(MarshalByRefObject).Assembly.Location), MetadataReference.CreateFromFile(typeof(Uri).Assembly.Location), MetadataReference.CreateFromFile(Path.Combine(dp, "BouncyCastle.Crypto.dll")) }; но, похоже, это не работает.

Есть идеи?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»