Как разрешить импорт нескольких сборок в новый импортированный пакет Nuget для форм Xamarin - PullRequest
1 голос
/ 24 марта 2020

Отказ от ответственности, я создаю рассматриваемый Nuget.

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

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

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

В тот момент, когда я включил пакет, мне выдается свыше 5000 ошибок, которые либо

(/Users/UserHere/Projects/PopupsError/PopupsError.Android/CSC: Error CS1703: Multiple assemblies with equivalent identity have been imported: /Users/UserHere/.nuget/packages/awaitablepopups/0.2.5/lib/netstandard2.0/System.Xml.XmlSerializer.dll' and /Library/Frameworks/Mono.framework/External/xbuild-frameworks/MonoAndroid/v1.0/Facades/System.Xml.XmlSerializer.dll. Remove one of the duplicate references. (CS1703) (PopupsError.Android))

или

(/Users/UserHere/Projects/PopupsError/PopupsError.Android/Resources/Resource.designer.cs(36,36): Error CS0731: The type forwarder for type 'System.Attribute' in assembly 'netstandard' causes a cycle (CS0731) (PopupsError.Android))

И множество других, у меня полностью бесплатное sh репо с добавленным Nuget здесь

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

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

1 Ответ

2 голосов
/ 24 марта 2020

Иногда это головная боль.

Для локальных проектов, мигрирующих из package.config в PackageReference

Вам необходимо go и удалить дублирующийся ньюджет с физического диска.

Удалите эту папку. Файл csproj , вы также должны быть осторожны, чтобы csproj все еще не импортировал старый стиль, это можно исправить, сравнив файл csproj с недавно созданным проектом csproj файл в качестве ссылки.

Удалите и удалите также ссылку "package.config" и 'app.config` из файла csproj.

Обновление

Для NuGet

  • Проверьте файл .nuspe c и удалите избыточный импорт
  • Очистите проект, а также удалите папки bin obj вручную.
  • Удалите NuGet.Build.Packaging, его не требуется. Добавляются все эти избыточные сборки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...