Unity: Visual Studio теряет ссылку на DLL после компиляции кода Unity - PullRequest
0 голосов
/ 21 декабря 2018

Я использую System.Compression.ZipFile.dll в проекте Unity и добавил ссылку как на проект Visual Studio, так и в редакторе Unity, а код компилируется и запускается, как и ожидалось, без проблем.

Однако всякий раз, когда Unity компилирует код, ссылка на DLL удаляется из проекта Visual Studio.

В результате компиляция в послесловиях Visual Studio приведет к ошибкам пространства имен.Эти ошибки есть только в Visual Studio, поскольку редактор Unity имеет ссылку, когда он фактически компилирует код.

Эти ошибки исправляются путем повторного добавления ссылки DLL в решение.Я хотел бы предотвратить появление ошибок в Visual Studio, так как они довольно раздражающие.

Как предотвратить удаление ссылки из проекта Visual Studio, когда Unity фактически компилирует код?

Если это поможет, я использую Visual Studio Community 2015 и Unity Editor 2018.2.14f1 в Windows 8.1 с .NET версии 4.7.1

РЕДАКТИРОВАТЬ:

My mcs.Файл rsp содержит: -r: System.IO.Compression.FileSystem.dll, основанный на ветке форума Unity.Это интересно, так как это не ожидаемая DLL, и все же она все еще работает.

Добавление -r: System.IO.Compression.ZipFile.dll приведет к ошибке: CS0006: файл метаданных `System.IO.Compression.ZipFile.dll 'не найден.

Соответствующие ошибки:

CS1069 Имя типа «ZipFile» не найдено в пространстве имен «System.IO.Compression».Этот тип был перенаправлен в сборку 'System.IO.Compression.FileSystem, версия = 4.0.0.0, культура = нейтральная. Рассмотрите возможность добавления ссылки на эту сборку.

Ошибка CS0006 Файл метаданных ProjectFolder \ Temp \ bin \ Debug \ Assembly-CSharp.dll 'не найден

Unity правильно настроен для использования .NET 4.x

1 Ответ

0 голосов
/ 21 декабря 2018

Ожидаемое вами поведение.

Пройдем официальный путь , чтобы достичь того, что вы ищете:

  1. Скопируйте свою DLL в каталог Assets, возможно, со связанным с ним XML для IntelliSense и файлом PDB, чтобы Unity генерировал из него файл MDB
  2. Unity перестраивает проект и сгенерированную Visual Studioрешение

Поскольку на шаге 2 заново создается решение Visual Studio, все настройки, выполненные для него, будут утеряны, исключение составляют добавленные вручную существующие проекты для возможности их просмотра при отладке игры.

Обратите внимание, что нигде в официальных инструкциях вы не должны добавлять ссылки на сгенерированные проекты, это делается автоматически, и ручные изменения в любом случае теряются, как изложено в предыдущем абзаце.

Но вы получаетеошибки, верно?

Трудно сказать без дополнительной информации.

Предложения:

1.

Попробуйте официальные инструкции и, если это не сработает, отредактируйте свой вопрос, добавив соответствующие ошибки, чтобы люди могли в дальнейшем попытаться помочь вам.

2.

Ваша DLL соответствует базовой версии Unity?В некоторых случаях это может привести к смешным ошибкам.

Когда я смотрю на содержимое System.IO.Compression.ZipFile , это только для .NET 4.6:

enter image description here

Соответствуют ли настройки вашего плеера .NET 4.6?

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...