Рослин AdhocWorkspace просит ссылку на System.RuntimeC#

Место общения программистов C#
Ответить
Anonymous
 Рослин AdhocWorkspace просит ссылку на System.Runtime

Сообщение Anonymous »

Я пытаюсь выполнить семантический анализ фрагмента кода C#.
При настройке AdhocWorkspace для моих тестов я нашел примеры, указывающие на использование местоположения сборки в Type< /code> и объект.
Когда я это делаю, в диагностике появляются следующие ошибки:

[0]: TestIsNotInstanceOfTypeMessage.cs(13,20): ошибка CS0012: тип «Объект» определен в сборке, на которую нет ссылок. Необходимо добавить ссылку на сборку «System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken». =b03f5f7f11d50a3a'.
[1]: TestIsNotInstanceOfTypeMessage.cs(13,13): ошибка CS0012: тип «Тип» определен в сборке, на которую нет ссылки. Необходимо добавить ссылку на сборку «System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken». =b03f5f7f11d50a3a'.

Когда я добавляю в следующей строке все работает хорошо:

Код: Выделить всё

MetadataReference.CreateFromFile(@"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\v4.6.1\\Facades\\System.Runtime.dll"),
Мне не очень нравится жестко закодированный путь в моем тестовом проекте, но я не уверен, как «получить» версии 4.6.1 объекта и типа любым другим способом.
Приведенный ниже код показывает суть моего помощника по получению AdhocWorkspace

Код: Выделить всё

private static readonly ImmutableArray _coreReferences =
ImmutableArray.Create(
MetadataReference.CreateFromFile(typeof(Type).Assembly.Location),
MetadataReference.CreateFromFile(typeof(object).Assembly.Location)

private static readonly Project _baseProject = new AdhocWorkspace()
.AddProject("Test", LanguageNames.CSharp)
.AddMetadataReferences(_coreReferences)
.WithCompilationOptions(new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary));
Подробнее:
  • Код: Выделить всё

    Visual Studio Community v15.4.0
  • Код: Выделить всё

    Target framework: .NET 4.6.1
  • Код: Выделить всё

    Microsoft.CodeAnalysis.CSharp v2.4.0
  • Основной проект — консольное приложение, тестовый проект — обычная библиотека, равно как и PCL


Подробнее здесь: https://stackoverflow.com/questions/471 ... em-runtime
Ответить

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

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

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

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

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