При настройке 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"),
Приведенный ниже код показывает суть моего помощника по получению 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
Мобильная версия