【Xamarin.Forms&Prism】ReactiveProperty導入直後のAndroidプロジェクトでビルドエラー
はじめに
Xamarin.Forms & Prosm.Autofac.FormsプロジェクトにReactivePropertyを追加してAndroidプロジェクトをビルドするとビルドエラーが出た。
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1898,2): error XA2002: Can not resolve reference: System.Threading.Tasks.Extensions
, referenced by System.Reactive
. Please add a NuGet package or assembly reference for System.Threading.Tasks.Extensions
, or remove the reference to System.Reactive
.
環境
- macOS 10.14 Mojave
- Visual Studio Community 2017 for MAC(7.7.4)
- Prism.Autofac.Forms(7.1.0.431)
- ReactiveProperty(5.3.2)
対策
既知の問題みたいです。
https://github.com/runceel/ReactiveProperty/issues/87
https://github.com/dotnet/reactive/issues/803
詳しくはわからないけど、「System.Threading.Tasks.Extensions.dllはバージョン4.4.0つかっとけ」ってことみたいなので、そのように設定していきます。
- Androidプロジェクトを右クリックし、[追加]-[NuGetパッケージの追加(P)...]をクリックして「パッケージを追加」画面を開きます。
- System.Threading.Tasks.Extensionsのバージョン4.4.0を追加します。
- Androidプロジェクトをビルドします。 警告は残りますが、とりあえずビルドできました。
おまけ
AndroidプロジェクトのcsprojファイルにSystem.Threading.Tasks.Extensions.dllバージョン4.4.0を参照するように設定する方法もあるみたいです。
https://github.com/dotnet/reactive/issues/803#issuecomment-455383106
Macの場合は以下のようにItemGroup要素をルート(Project)要素配下に追加します。
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
:
(略)
:
<!-- ここから -->
<ItemGroup>
<Reference Include="System.Threading.Tasks.Extensions">
<HintPath>$(HOME)/.nuget/packages/system.threading.tasks.extensions/4.4.0/lib/netstandard2.0/System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
</ItemGroup>
<!-- ここまで -->
</Project>
Author And Source
この問題について(【Xamarin.Forms&Prism】ReactiveProperty導入直後のAndroidプロジェクトでビルドエラー), 我々は、より多くの情報をここで見つけました https://qiita.com/ats-y/items/e7074dcbba036a6f6a72著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .