Xamarin.iOS カスタム バインディングを使用した Xamarin.iOS ソリューションがあり、Visual Studio for Mac の Mac OS で問題なくビルドできます。しかし、F# Fake を使用して同じソリューションをビルドし、Mac OS ビルド サーバーで同じバージョンのツールを使用してスクリプトをビルドしようとすると、次のエラーが発生します。
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.ObjCBinding.CSharp.targets(58,3): 指定されたタスク実行可能場所 "/Library/Frameworks/Mono.framework/Versions/5.4 .1/lib/mono/xbuild/Xamarin/iOS/btouch-native.exe」は無効です。
を確認したObjCBinding.CSharp.targets
ところXamarin.iOS.ObjCBinding.CSharp.props
、何らかの理由で Mac OS ビルド ホストが非 Unix システムとして扱われていることがわかりました。
<BTouchToolPath Condition="'$(OS)' == 'Unix' And '$(TargetFrameworkIdentifier)' == 'Xamarin.iOS' And '$(BTouchToolPath)' == ''">$(MonoTouchSdkRoot)/bin/</BTouchToolPath>
<BTouchToolPath Condition="'$(OS)' != 'Unix' And '$(TargetFrameworkIdentifier)' == 'Xamarin.iOS' And '$(BTouchToolPath)' == ''">$(MSBuildExtensionsPath)\Xamarin\iOS\</BTouchToolPath>
<BTouchToolExe Condition="'$(OS)' == 'Unix' And '$(TargetFrameworkIdentifier)' == 'Xamarin.iOS' And '$(BTouchToolExe)' == ''">btouch-native</BTouchToolExe>
<BTouchToolExe Condition="'$(OS)' != 'Unix' And '$(TargetFrameworkIdentifier)' == 'Xamarin.iOS' And '$(BTouchToolExe)' == ''">btouch-native.exe</BTouchToolExe>
また、ツールを検索しBTouchToolExe
てここで見つけ、.prop ファイルをこのパス (すべてのプラットフォーム用) で更新しました。多くの問題が発生したため、症状だけを修正するよりも根本的な原因を見つける必要があると思います。
/Library/Frameworks/Xamarin.iOS.framework/Versions/11.6.1.3/bin/btouch-native
ビルド ホストで Visual Studio for Mac を使用して同じソース コードをビルドしようとしました。これは完全に正常に動作するため、F# Fake およびビルド スクリプト (ほとんどがデフォルト) の何らかの問題のようです。私のセットアップは(最新かつ最高)です:
- Mac OS ビルド ホスト
- 単核症
5.4.1
- Visual Studio for Mac
7.3.3
- Xamarin.iOS
11.6.1.3
ビルド ホストで間違っている可能性のある構成はどれですか?