2017-01-10 4 views
4

타겟팅 나는 얼마 전에이 문서를 참조하십시오. 이 기사에서는 "이 PCL은 현재 프로젝트 속성에서 찾을 수있는 .NET 표준 라이브러리를 대상으로 업그레이드해야합니다."라는 이유로이 작업을 수행했습니다.자 마린 양식 .NET 표준

그러나 .NET 표준을 대상으로하는 Xamarin Forms 프로젝트를 작성하는 방법을 알 수 없습니다. Xamarin Forms 샘플을 복제하고 MasterDetailPage 프로젝트를 열었습니다. 필자는 프로젝트 속성에 들어가 지침에 따라 휴대용에서 .NET Standard로 전환했습니다. 즉시 NuGet 3.0 지원을 선택해야한다는 오류 메시지가 나타납니다. 나 괜찮아. 근데 어떻게해야하지?

Xamarin Forms NuGet 패키지를 제거하면 .NET Standard로 전환 할 수있는 것으로 나타났습니다. 그러나 일단이 작업을 완료하면 Xamarin Forms NuGet 패키지를 다시 추가 할 수 없습니다. 그냥 실패를 계속합니다. 기사에서 말하는 것과는 달리 .NET 표준 라이브러리에 대한 참조를 추가 할 수 없습니다. 내 솔루션에 기존 .NET 표준 라이브러리에 대한 참조를 추가하려고하면 Visual Studio에서 라이브러리가 호환되지 않는다는 오류를 표시합니다. Xamarin Forms를 대상으로해야하는 .NET Standard 버전은 무엇입니까?

Xamarin Forms 지원을 사용하여 .NET 표준 라이브러리를 컴파일하려면 어떻게합니까?

+0

불행하게도 자 마린 .Forms는 여전히 NuGet을 통해서만 오래된 PCL 프로파일을 지원하며 그 점에서'netstandard '와 호환되지 않습니다. 오늘 말하기, netstandard 프로젝트에서 사용하는 프록시 pcl 프로젝트를 통해 Xamarin.Forms를 설치해야합니다. 다른 접근법이 있지만 이상적으로는 netstandard가 쉽게 설치할 수있을 때까지 기다려야합니다. Oren의 블로그와 같은 몇 가지 블로그가 있습니다. https://oren.codes/2016/07/09/using-xamarin-forms-with-net-standard/ –

+0

농담을하고 있습니다. 세상에. .NET 프로젝트를 위해 모든 프로젝트를 재구성하고 .NET 표준 용으로 컴파일하는 데 많은 시간을 할애했습니다. Xamarin은 작년 8 월 Xamarin이 .NET 표준을 지원한다고 발표 한 이유는 무엇입니까? –

+0

위 링크를 따라 해 보았지만 어쨌든 도움이되지 않습니다. Xamarin Forms 프로젝트를 .NET Standard 1.4로 변환 할 수는 있지만 컴파일 오류가 발생합니다. –

답변

4

.NET 표준 프로젝트를 통해 Xamarin Forms NuGet 패키지를 참조 할 수 있으므로 Xamarin Forms에서 .NET Standard 라이브러리를 활용할 수 있습니다.

이 기사에서는 어떻게하는지 설명합니다. 트릭은 project.json에서 이식 가능한 프레임 워크를 가져 오는 것입니다. https://xamarinhelp.com/dot-net-standard-pcl-xamarin-forms/

작동하지 않는 경우 작동하는 Git 샘플이 있습니다. https://github.com/adamped/XamarinForms.NetStandard.git

결국에는 문제없이 .NET Standard 1.4를 대상으로 할 수있었습니다.

+0

.Net Standard 1.4에서 프로젝트가 정상적으로 작동합니까? 어떤 MVVM 프레임 워크를 사용하고 있습니까? 나는 MVVM Light를 사용할 계획이지만, 내가 할 수 있을지 모르겠다. 당신의 경험을 공유하십시오. 저는 같은 트랙에 있습니다. –

+0

예. 이제 완벽하게 작동합니다. MVVM 프레임 워크를 사용하지 않습니다. 우리의 UI 프레임 워크는 약간의 패턴 매끄럽고 코드는 Silverlight와 공유됩니다. 어떤 시점에서 모든 코드를 MVVM과 같은 단일 패턴으로 변환하고 싶습니다. 그러나이 시점에서는 실제로 아무것도 맞지 않습니다. –

+0

주어진 project.json 파일이 이제 죽었으므로 csproj에서 packagetargetfallback을 추가하면 앞으로 나아갈 수 있습니다. –

5

당신 싶어 새로운 비주얼 스튜디오 대신 당신이 후에 .NET 마이그레이션 CLI 명령을 사용하거나 csproj 파일/편집이 코드를 추가 할 수 있습니다 project.json의 csproj과 2017 출시와 함께 할 경우

<Project Sdk="Microsoft.NET.Sdk"> 

    <PropertyGroup> 
    <PackageTargetFallback>$(PackageTargetFallback);portable-win+net45+wp8+win81+wpa8</PackageTargetFallback> 
    </PropertyGroup> 

</Project> 
+0

위의 링크로 매우 유용한 설명은 모두 이전 스타일 프로젝트에 대한 이야기입니다. json VS2017에서는 csproj 만 사용됩니다. – frank

관련 문제