У меня есть свежий проект Unity и, следуя инструкциям в Используя .NET 4.x в Unity , я скачал пакет NuGet для Microsoft.ML.Probabilistic.Compiler из галереи и скопировал DLL в Активы / Плагины.После этого Unity выводит сообщение об ошибке
Сборка 'Assets / Plugins / Microsoft.ML.Probabilistic.Compiler.dll' не будет загружена из-за ошибок: Невозможно разрешить ссылку 'Microsoft.ML.Probabilistic».Сборка отсутствует или несовместима с текущей платформой?
Я загрузил и скопировал отсутствующую DLL и все последующие отсутствующие зависимости DLL
- Microsoft.ML.Probabilistic.dll
- System.CodeDom.dll
- Microsoft.CodeAnalysis.CSharp.dll
- Microsoft.CodeAnalysis.dll
- System.Collections.Immutable.dll
- System.Reflection.Metadata.dll
Unity больше не выдает ошибок после добавления System.Reflection.Metadata.dll.
Когда я добавляю
using Microsoft.ML.Probabilistic;
using Microsoft.ML.Probabilistic.Compiler;
к сценарию, проект прекрасно собирается как в Unity, так и в Visual Studio Community, но когда я пытаюсь использовать библиотеки, а именно Microsoft.ML.Probabilistic.Compiler.Variable<T>
class
using UnityEngine;
using Microsoft.ML.Probabilistic;
using Microsoft.ML.Probabilistic.Compiler;
public class Main : MonoBehaviour {
void Start () {
Variable<bool> firstCoin = Variable.Bernoulli (0.5);
}
}
, Unity и Visual Studio терпят неудачу с
Assets / Scripts / Main.cs (7,3): ошибка CS0246: не удалось найти тип или имя пространства имен «Переменная <>» (отсутствует директива using или ссылка на сборку?)
и
Активы / Scripts / Main.cs (7,30): ошибка CS0103: имя «Переменная» не существует в текущем контексте
Добавление -r:Microsoft.ML.Probabilistic.Compiler.dll
в файл Assets / mcs.rsp приводит к ошибке
Компилятор Microsoft (R) Visual C # версии 2.9.1.65535 (9d34608e) Copyright (C) Microsoft Corporation.Все права защищены.
ошибка CS0006: файл метаданных 'Microsoft.ML.Probabilistic.Compiler.dll' не найден
Конфигурация проекта
- Unity 2018.3.10f1
- Сообщество Visual Studio для Mac
- Настройки сборки / Платформа: iOS
- Настройки проигрывателя / Сценарии выполнения Версия: .NET 4.x Эквивалент
Не имеет значения, установлен ли я
- Настройки проигрывателя / Уровень совместимости API: .NET 4.x
или
- Настройки проигрывателя / Уровень совместимости Api: .NET Standard 2.0
Остальные настройки оставлены по умолчанию.
Я не добавил библиотеки DLL в vs-проектв Visual Studio, как говорится в руководстве,
Visual Studio регенерирует файлы .csproj и .sln для проектов Unity при каждом их открытии.В результате вы не можете добавлять ссылки на сборки непосредственно в Visual Studio, поскольку они будут потеряны при повторном открытии проекта.Вместо этого необходимо использовать специальный текстовый файл с именем mcs.rsp:
Создать новый текстовый файл с именем mcs.rsp в корневом каталоге ресурсов вашего проекта Unity.
В первой строке в пустойВ текстовом файле введите: -r: System.Net.Http.dll и сохраните файл.Вы можете заменить «System.Net.Http.dll» любой включенной сборкой, в которой может отсутствовать ссылка.
Перезапустите редактор Unity.