2017-05-02 3 views
0

내 PCL에 'System.Security.SecureString'패키지를 설치할 수 없습니다. 'System.Security.SecureString'패키지를 설치할 수 없습니다.

나는 같은 PCL에 project.json을 추가하는 등 온라인 솔루션의 일부를 시도했지만 아무것도 여기

이 System.Security ' 패키지에 대한 의존성 정보를 수집하려고하면 오류 로그

입니다 작동하지 않습니다 .NETPortable, 버전 = V4.5, 프로필 = Profile259 '을'대상 '을 TestProj' 프로젝트에 대한 '.SecureString.4.3.0
https://api.nuget.org/v3/registration1-gz/system.security.securestring/index.json OK GET 수집 된 결과 144ms 총 수 : 정보는 496.15 MS의 소스 당 종속성을 수집하기 위해 걸리는 시간 요약했다 15 수집 의존성 : https://api.nuget.org/v3/index.json-172.87 MS는 패키지에 대한 종속성을 해결하기 위해 시도를 'System.Security.SecureString.4.3.0을 최저 'DependencyBehavior와' 패키지를 가져 오는 System.Security.SecureString.4.3.0 System.Security.SecureString.4.3.0 '패키지를 설치하는 해결 조치 을' '' 해결 종속성 정보가 에 작업을 해결 0 밀리했다 패키지를 설치 ' 'System.Security.SecureString 4.3.0'from 'nuget.org'. 'portable45-net45 + win8 + wp8 + wpa81'을 대상으로하는 'TestProj'프로젝트 에 'System.Security.SecureString.4.3.0'패키지를 추가하십시오. 설치 실패했습니다. 롤백 ... 패키지 'System.Security.SecureString.4.3.0' 프로젝트에 존재하지 않는 '을 TestProj'패키지 'System.Security.SecureString.4.3.0가'폴더에 존재하지 않는 '/ 사용자/durai/문서/BTFleet/BT 함대/_git/DailyCheckApp/패키지 '4.3.0에서는 System.Security.SecureString' 실행 nuget 행동은 136.1 MS 패키지 를 설치할 수 없습니다했다 '. 이 패키지를 '.NETPortable, Version = v4.5, Profile = Profile259'를 대상으로하는 프로젝트에 설치하려고하지만 패키지에 해당 프레임 워크와 호환 가능한 어셈블리 참조 또는 콘텐츠 파일이 포함되어 있지 않습니다. 자세한 내용은 패키지 작성자에게 문의하십시오.

성공적으로 패키지를 설치하기에 어떤 도움에 감사드립니다!

+1

PCL을 dotnet 표준 라이브러리로 업그레이드하는 경우 PCL을 1.3 이상으로 설치해야합니다. 또한 기존 PCL 라이브러리를 지원하는 PCL shim도 포함됩니다. –

+0

@ JonDouglas - PCL을 dotnet 표준 라이브러리로 변환하면 느슨하게 결합 된 MVVMlight 기반의 라이브러리가 손상 될 수 있습니다. 기본적으로이 PCL에는 iOS, Android 및 Windows에서 사용되는보기 모델이 있습니다. –

+0

재미있게도 몇 시간 전에 StackOverflow에서 매우 비슷한 질문을 던졌습니다. PCL을 고수하면서이 문제를 해결할 수있는 방법에 대한 포괄적 인 답변 [here] (http://stackoverflow.com/a/43752282/650012)을 주셨습니다. 내 접근 방식이 효과가 있는지 알려주세요. –

답변

0

.NET의 System.Security의 API 따라서 친화적 인 PCL되지 않고는 PCL 프로젝트에 추가 할 수 없습니다.

그러나, 자 마린 솔루션의 다른 프로젝트에 추가 할 수 있습니다 - 당신은 Android 및 iOS 프로젝트와 같은 기본 프로젝트에 그것을 추가 할 수 있습니다. 그리고 거기에 추가 할 수 있으므로 해당 프로젝트에서 구현을 작성하고 PCL의 종속 서비스를 통해 구현을 호출 할 수 있습니다.

높은 수준의 단계는 다음과 같습니다

1.) 당신의 PCL에서 인터페이스를 만듭니다.

2.) 해당 인터페이스에서 Android 또는 iOS 프로젝트에 구현되는 메소드를 만듭니다.

3. ) 네이티브 프로젝트에서는 System.Security.SecureString의 Nuget 패키지를 추가합니다.

4.) 네이티브 코드에서 PCL의 인터페이스를 구현할 클래스를 만듭니다.

5.) DependencyService를 통해 PCL에서이 코드를 호출하십시오.

이 작업을 수행하는 방법에 대한 예는 link을 참조하십시오.

길고 지루하지만 가치가 있습니다.

+0

이 문제를 해결할 수있는 다른 방법이 있습니까? 느슨하게 결합 된 PCL의 본질과 모순 될 수 있으며 이미 PCL의 뷰 모델 용으로 작성된 유닛 테스트 (MVVMlight를 사용 중입니다)가 있으며 독립적으로 실행할 수는 없습니다.이 작업을 어떻게 수행할까요? –

+0

Ah가 차단제를 가지고 있습니다 ... 저는 Xamarin Forms를 사용하지 않습니다. 종속성 주입이 가능하지 않습니다. –

+0

첫 번째 질문에서 특정 프로세스는 기본적으로 수행 할 수 있으며 따라서 이와 같은 종속성 서비스가 절대적으로 필요하기 때문에이 작업이 필요합니다. 두 번째 의견에서, 구현 방법에 대해서는 아직 알지 못해서 유감입니다. – ADimaano