Unity .NET — Использование проекта работает хорошо, использование его шаблона портит зависимости

#c# #.net #visual-studio-2019

#c# #.net #visual-studio-2019

Вопрос:

Короче говоря: я пытаюсь разработать мод для Enter the Gungeon, и другие разработчики дали мне копию простого проекта mod VS со всеми решенными зависимостями, готовыми к компиляции и защищенными от идиотов. Когда я экспортирую проект в виде шаблона и создаю с его помощью новый проект, ссылки теряются, и код не компилируется.

Использование оригинального проекта:

  • Скриншот основного кода, предоставленного этими разработчиками (ошибок не отображается):

Скриншот исходного кода, ничего не изменилось

  • Снимок экрана папки «Ссылки» (все работает):

Скриншот раздела quot;Ссылкиquot;

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

Там, где я использую шаблон, начинают возникать проблемы

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

  • Проект, созданный на основе шаблона, генерирует ошибки (предполагается, что этот шаблон является точной копией исходного проекта, не так ли?):

Снимок экрана исходного кода при создании проекта на основе шаблона

  • И раздел «Ссылки» из нового проекта показывает множество предупреждений (также созданных по шаблону исходного проекта).:

Скриншот ссылок теперь показывает множество предупреждений

Как вы можете видеть, если мы создадим проект по шаблону, основанному на исходном проекте, библиотеки не будут определены, а некоторые ссылки будут показывать предупреждения (хотя наведение на них ничего не показывает).

Я уже пытался немного обмануть, скопировав .vstemplate файл из шаблона в исходный проект (плюс поместив файлы в zip-файл), но даже таким образом проблема не решена.

Что бы вы сделали или о чем подумали?

Комментарии:

1. Являются ли эти справочные библиотеки DLL локальными в вашем новом проекте? Я предполагаю, что на вашей машине новый проект будет ссылаться на что-то из статического расположения разработчика в зависимости от версии Unity, в которой запущен проект. Почтовый индекс, который вы получили, возможно, напрямую ссылался на библиотеки DLL (даже в комплекте с шаблоном!). Если вы не переместили библиотеки DLL, на которые ссылаются, в свой новый проект или не привязали ссылку к какому-либо месту на вашем компьютере, вы столкнетесь с этим типом ошибки.

Ответ №1:

^^.

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

Итак, вам следует отредактировать csproj файл (щелкните правой кнопкой мыши файл с именем «prueba dependencias» и нажмите «редактировать файл проекта»), затем найдите Reference теги. Убедитесь HintPath , что теги указывают на файл. Если это не так, вы можете сделать одну из двух вещей: изменить содержимое тега, чтобы оно указывало на реальный файл, или создать фиктивный файл, на который указывает путь.

Кроме того, вы можете удалить все зависимости, которые он не может найти, щелкните правой кнопкой мыши «Ссылки», затем «Добавить ссылку» и все те, которые вы удалили обратно.

Это должно (надеюсь) решить ваши проблемы.

Комментарии:

1. Я думаю, что у меня проблема. Учитывая, что вы велели мне что-то сделать с файлом csproj, я решил немного прочитать его и понять, что это значит. Я заметил, что, хотя я могу указать в этом файле маршрут библиотек DLL, папки удаляются при экспорте в шаблон (например, я помещаю их все в папку lib), и поэтому их не будет в новом проекте. Есть ли какой-нибудь способ сказать «йо, не удаляй это», кроме как написать абсолютный путь к библиотекам DLL из другой папки?

2. Я не уверен. Обычно я стараюсь указывать все на свою установку игры, таким образом избегая необходимости в этом всем вместе.