Не удалось запустить средство переписывания ссылок с ошибкой команды с ошибкой единицы при добавлении DLL в папку ресурсов - PullRequest
0 голосов
/ 18 октября 2018

Я столкнулся с этой ошибкой при добавлении DAI.dll в папку ресурсов.эта ошибка возникает при попытке сборки.

UnityException: не удалось запустить программу переписывания ссылок с помощью команды --target = "Temp \ StagingArea \ DAI.dll" --additionalreferences = "Temp \ StagingArea",«C: \ Program Files (x86) \ Windows Kits \ 10 \ UnionMetadata \ 10.0.17134.0 \ Facade», «C: \ Program Files (x86) \ Windows Kits \ 10 \ References \ 10.0.17134.0 \ Windows.AI.MachineLearning».Preview.MachineLearningPreviewContract \ 1.0.0.0 "," C: \ Program Files (x86) \ Windows Kits \ 10 \ References \ 10.0.17134.0 \ Windows.ApplicationModel.Calls.CallsVoipContract \ 3.0.0.0 "," C: \ Program Files(x86) \ Windows Kits \ 10 \ References \ 10.0.17134.0 \ Windows.ApplicationModel.SocialInfo.SocialInfoContract \ 2.0.0.0 "," C: \ Program Files (x86) \ Windows Kits \ 10 \ References ..... (затем много чего еще) ....

Я использую Visual Studio 2017 версии 15.7.3 и Unity версии 2017.2.0b7

Я добавил DLL в активыпапка в единстве.

Это настройки моего плеера и сборки.

enter image description here

enter image description here

1 Ответ

0 голосов
/ 19 октября 2018

Вам нужно изменить настройки в единстве ( Пример настроек на фото ниже ):

  1. Найдите файл dll в вашем проекте в Unity.
  2. Нажмите на него один раз, чтобы выделить его.
  3. Вы увидите опции dll в Isnpector
  4. Обычно для HoloLens вы выбираете только "WSAPlayer"
  5. Нажмите Apply для сохранениянастройки.
  6. Перестройка enter image description here

Предупреждения

  1. Иногда dll, который вы пытаетесь включить, ссылается на что-то ещене входит, и поэтому он не будет работать, но ошибка будет отличаться от того, что вы получили.
  2. Иногда вам может потребоваться импортировать более старую версию DLL.Например, я пытался импортировать Newtonsoft.Json 11.0.2, но 11.0.2 ссылался на более новую базовую среду, чем решение, которое генерирует Unity.Есть способ обновить его, но я не хотел иметь дело с этим каждый раз, поэтому я обнаружил, что самая высокая версия, которую я могу использовать, это 9.0.1 (мне пришлось пропустить 11.0.2, 11.0.1,10.0.3, 10.0.2, 10.0.1).
  3. Также имейте в виду, что вы должны включить netstandard dll.
  4. У меня обычно есть тестовый проект UWP, чтобы попытаться проверить мою dll с ним.Если он работает там, то это хороший первый шаг, который может сработать после его импорта в Unity, если он не имеет зависимостей.

Обходной путь последнего результата

  1. Вы можете прокомментировать код, который ссылается на вашу dll
  2. построить проект из единства без dll
  3. в сгенерированном решении UWP вы можете добавить dll в обычном режиме и даже использовать nuget для установки нужной dll
  4. Скомментируйте ваш код.
  5. Создайте свое решение, затем разверните его на устройстве или создайте пакет для развертыванияэто на устройство или в хранилище.
  6. Это прекрасно работает как обходной путь.
  7. Одна из проблем заключается в том, что вам придется импортировать dll или устанавливать nuget каждый раз, когда создается решение, если оно было удалено.Это раздражает, и если вы работаете с командой, это может сбить с толку, когда они получают проект и думают, что он не работает.Это означает, что вам нужно проделать больше работы для взаимодействия и развертывания.
  8. Вторая проблема: Unity переходит от бэкэнда .NET к IL2CPP (я не думаю, что вы можете сделать это в проекте, созданном CPP).Это означает, что это краткосрочный обходной путь.

Подумайте об обновлении до Unity 2018.2

  1. Использование .NET 4.X вместо .NET 3.4 Equivalent облегчило мою жизнь с помощью ссылок ивопросы, связанные со ссылками и использованием более современного кода C #.
  2. Вы можете установить его и сохранить версию 2017 года, если вы установите Unity Hub.Это сведет к минимуму риск рассмотрения обновления.
...