Xamarin,Realmを使おうと思ったらFodyWeavers.xmlがないと怒られた


Xamarin で Realm を使おうと思って、Nuget で Realm をインストールして実行したら FodyWeavers.xml がないとコンパイラに怒られました。

Error: Fody: Could not find path to weavers file. Searched '/Users/xxx/Projects/XamarinRealm/FodyWeavers.xml', '/Users/xxx/Projects/XamarinRealm/RealmSample/FodyWeavers.xml'. (RealmSample)

ネットを検索すると、空の FodyWeavers.xml ファイルを作成すれば OK っぽい。

なので、 空の FodyWeavers.xml を作成して実行したらまた怒られた。

Error: Fody: Could not read 'FodyWeavers.xml' because it has invalid xml. Message: 'Root element is missing.'. (RealmSample)

ルートエレメントなんて知らないよ!と思いつつ検索してみたら、ネット上にヒントを見つけたので、FodyWeavers.xml を以下のように作成して実行してみました。

<?xml version="1.0" encoding="UTF-8" ?>
<Weavers>
</Weavers>

今度はまた最初のエラーがでました。

どうも、PCL のライブラリと Xamarin.iOS のプロジェクトの両方に FodyWeavers.xml が必要な模様。

FodyWeavers.xml を両方に配置して再度実行すると、ビルドを通過して無事に実行できました。

しかし、この問題はひっかかったら普通分からないのでは?