2017-01-10 12 views
4

をターゲット私はしばらく前にこの記事を読んで。この記事では、「このPCLは現在、プロジェクトプロパティで見つかる.NET標準ライブラリをターゲットにしてアップグレードする必要があります。Xamarinフォーム.NET標準

しかし、.NET Standardをターゲットとする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

残念ながらXamarin .FormsはまだNuGetを通して古いPCLプロファイルしかサポートしておらず、その点で 'netstandard'と互換性がありません。今日の時点では、netstandardプロジェクトによって消費されるプロキシのpclプロジェクトを介してXamarin.Formsをインストールする必要があります。他の方法もありますが、理想的には、netstandardが簡単にインストールできるようになるまで待つべきです。 Orenのようないくつかのブログがあります。https://oren.codes/2016/07/09/using-xamarin-forms-with-net-standard/ –

+0

冗談を言ってください!我が神よ。私はすべてのプロジェクトを再編成し、.NET標準用にコンパイルするように時間を費やしました。昨年8月、Xamarinがコンパイルできない場合、Xamarinは.NET Standardをサポートしていることを昨年8月に発表しました。 –

+0

私は上記のリンクに従ってみましたが、何らかの形では役に立ちません。 Xamarin Formsプロジェクトを.NET Standard 1.4に変換できますが、コンパイルエラーが発生するだけです。 –

答えて

4

Xamarin Forms NuGetパッケージを参照する.NET標準プロジェクトを取得できるため、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

あなたのプロジェクトは.NetStandard 1.4でもOKですか?どのMVVMフレームワークを使用していますか?私はMVVM Lightを使うつもりですが、私がそれをやることができるかどうかはわかりません。あなたの経験を共有してください、私は同じトラックにいます。 –

+0

はい。今は完璧に動作しています。私はMVVMフレームワークを実際に使用していません。私たちのUIフレームワークは、少しパターンが違っていて、コードはSilverlightと共有されています。私はすべてのコードをある時点でMVVMのような単一のパターンに変換したいと思いますが、現時点では実際には何の問題もありません。 –

+0

project.jsonファイルが死んでいるので、csprojのpackagetargetfallbackを追加して転送します –

5

あなたがしたいが、新しいVisual Studioの2017 csprojとリリースの代わりproject.jsonでそれを行う場合は、DOTNETは、CLIコマンドを移行するか、あなたのcsprojファイルにこのコードを追加/編集する使用することができ、次のいずれか

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

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

</Project> 
+0

上記のリンクとして非常に役立つコメントは、古いスタイルのプロジェクトに関するものです。 jsonであり、VS2017ではcsprojのみが使用されています – frank

関連する問題