Невозможно добавить сборку System.Collections.Concurrent, которая используется в проекте Xamarin PCL.
Я вижу, что к моему проекту Xamarin PCL добавлена библиотека NET.
Поэтому я просматриваю в Обозревателе объектов и вижу 2 версии моего mscorlib. [2.0.5.0] и [4.0.0.0].
дубликаты библиотек CSharp и mscorlib
И если вы проверите, у меня есть копия аналогичной версии для моей библиотеки CSharp также. Я предполагаю, что он автоматически указывает на версию [2.0.5.0].
Но, что интересно, в моем проекте Android в том же решении mscorlib напрямую ссылается на раздел ссылок, и да, я могу получить доступ к моей библиотеке System.Collections.Concurrent в моем проекте Android.
Но мне нужно получить доступ к нему в моем проекте Xamarin. Мне также нужен способ добавить эту сборку в мой проект PCL. Любая идея?
1 ответ
Комментарий LexLi на самом деле заставил меня задуматься. Итак, вот что я сделал. Надеюсь, это будет полезно.
Я проверил свою версию VS2017 (Professional), и она ожидала трех обновлений. Последний (на данный момент) - 15.4.4.4, обновленный.
Я создал новое кроссплатформенное приложение Xamarin с тем же именем (очевидно, в другом месте).
Получил все пакеты nuget, которые мне были нужны. (Лучше делать это вручную для каждого проекта, потому что это зависит от совместимости версий).
А затем загрузил все файлы классов в это из моего предыдущего приложения. (Убедитесь, что вы создали необходимые структуры папок). Я дважды проверил конфиги приложения и файлы пакетов, чтобы убедиться, что все идентично.
Исправил мой файл манифеста Android, внеся изменения в Android Project (Правый клик) >> Свойства >> Манифест Android.
Проверьте свой файл AppDelegate в iOS и файл App.xaml.cs в UWP. Потому что иногда некоторые плагины требуют некоторых изменений в них. Поэтому убедитесь, что они у вас точно такие же, как раньше.
И это было все. Все для исправления проблемы с объектной моделью и параллельными коллекциями. Но в процессе я получил хорошую миграцию для моего приложения.
Если вы хотите, вы можете напрямую добавлять проекты в ваше решение, но я не уверен, что это сработает, потому что я не пробовал это.