Не удалось установить пакет System.Security.SecureString

Мне не удалось установить пакет System.Security.SecureString на свой PCL.

Я пробовал некоторые решения в Интернете, такие как добавление project.json в PCL, но ничего не работает

Вот журнал ошибок

Попытка собрать информацию о зависимостях для пакета 'System.Security.SecureString.4.3.0' по отношению к проекту 'TestProj', нацеленному на '.NETPortable, Version = v4.5, Profile = Profile259'
GET https://api.nuget.org/v3/registration1-gz/system.security.securestring/index.json ОК https://api.nuget.org/v3/registration1-gz/system.security.securestring/index.json 144 мс Общее количество собранных результатов: 15 Сбор информации о зависимостях занял 496,15 мс. зависимости для каждого источника: https://api.nuget.org/v3/index.json - 172,87 мс Попытка разрешить зависимости для пакета System.Security.SecureString.4.3.0 с помощью Dependen cyBehavior 'Самый низкий' Разрешение информации о зависимостях заняло 0 мс. Выполнение действий по установке пакета 'System.Security.SecureString.4.3.0' Разрешенные действия по установке пакета 'System.Security.SecureString.4.3.0' Получение пакета 'System.Security.SecureString 4.3.0 »с сайта« nuget.org ». Для добавления пакета System.Security.SecureString.4.3.0 в проект TestProj, нацеленный на Portable45-net45 + win8 + wp8 + wpa81. Установить не удалось. Откат ... Пакет System.Security.SecureString.4.3.0 не существует в проекте TestProj Пакет System.Security.SecureString.4.3.0 не существует в папке / Users / durai / Documents / BTFleet / BT Fleet / _git / DailyCheckApp / packages «Выполнение действий nuget заняло 136,1 мс. Не удалось установить пакет« System.Security.SecureString 4.3.0 ». Вы пытаетесь установить этот пакет в проект, нацеленный на .NETPortable, Version = v4.5, Profile = Profile259, но пакет не содержит ссылок на сборки или файлов содержимого, совместимых с этой платформой. За дополнительной информацией обращайтесь к автору пакета.

Любая помощь в успешной установке пакета приветствуется!


person Durai Amuthan.H    schedule 02.05.2017    source источник
comment
Если вы обновляете свой PCL до стандартной библиотеки dotnet, она должна устанавливаться нормально, если ›= 1.3. Также он будет включать прокладку PCL для поддержки существующих библиотек PCL.   -  person Jon Douglas    schedule 03.05.2017
comment
@JonDouglas - Если я конвертирую PCL в стандартную библиотеку dotnet, это может нарушить слабосвязанную интеграцию на основе MVVMlight? в основном этот PCL имеет модели просмотра, которые используются iOS, Android и Windows.   -  person Durai Amuthan.H    schedule 03.05.2017
comment
Как ни странно, очень похожий вопрос был задан всего несколько часов назад здесь, в StackOverflow. Я дал исчерпывающий ответ здесь о том, как можно решить эту проблему, придерживаясь PCL. Пожалуйста, дайте мне знать, работает ли мой подход для вас.   -  person Anders Gustafsson    schedule 03.05.2017


Ответы (1)


API System.Security для .NET не поддерживает PCL и поэтому не может быть добавлен в проект PCL.

Но его можно добавить в другие проекты решения Xamarin - вы можете добавить это в собственные проекты, такие как проекты Android и iOS. И поскольку вы можете добавить его туда, вы можете создавать реализации этих проектов и вызывать их через службу зависимостей в вашем PCL.

Шаги высокого уровня:

1.) Создайте интерфейс в вашем PCL.

2.) Создайте метод в этом интерфейсе, который будет реализован в проектах Android или iOS.

3.) Добавьте пакет Nuget для System.Security.SecureString в свой собственный проект.

4.) Создайте класс в собственном коде, который будет реализовывать этот интерфейс из PCL.

5.) Вызовите этот код из вашего PCL через DependencyService.

Пример того, как это сделать, см. В ссылка.

Это долго и утомительно, но оно того стоит.

person ADimaano    schedule 02.05.2017
comment
Есть ли другой способ решить эту проблему, потому что? это может противоречить слабосвязанной природе PCL, и у меня уже есть модульные тесты, написанные для моделей просмотра в PCL (я использую MVVMlight), и я, возможно, не смогу запустить его независимо. Что вы думаете по этому поводу? - person Durai Amuthan.H; 03.05.2017
comment
У меня есть блокировщик ... Я не использую Xamarin Forms, поэтому ... Внедрение зависимостей невозможно - person Durai Amuthan.H; 03.05.2017
comment
Что касается вашего первого вопроса, это необходимо, потому что определенный процесс может быть выполнен только изначально, и поэтому такая служба зависимостей абсолютно необходима. Что касается второго комментария, извините, так как я (пока) не знаю, как это реализовать. - person ADimaano; 04.05.2017