私は現在、macOS Sierrav10.12.6とMacv7.3.2用のVisualStudio(VS)を使用して、ABCDという名前のXamarin.Formsプロジェクトに取り組んでいます(セットアップ手順の詳細 ここ )。
設定に成功したら、次のように続けます。
メインプロジェクトフォルダを右クリックして、オプションを選択します。
Buildの下、Generalの下、Target Frameworkの下:.NET Portable:PCL 4.5-Profile111が自動的に選択されました。
これをそのすぐ上のオプションに切り替えます:。NET標準プラットフォーム:netstandard1.5;次に、[〜#〜] ok [〜#〜]を選択します。
このフレームワークを切り替えた後、プロジェクトを再構築します。再構築後、警告が表示されます。
警告MSB3276:同じ依存アセンブリの異なるバージョン間で競合が見つかりました。プロジェクトファイルで「AutoGenerateBindingRedirects」プロパティをtrueに設定してください。詳細については、 http://go.Microsoft.com/fwlink/?LinkId=29419 を参照してください。 (MSB3276)(ABCD.iOS)
したがって、これはNETStandard.Libraryパッケージが古くなっていることが原因である可能性があります。
メインPackagesフォルダーで、NETStandard.Libraryを右クリックすると、バージョン1.6.0、ただしdotnet --versionをTerminalに入力すると2.1.3、VSでNETStandard.Libraryを更新します–表示されるライセンスを受け入れます。
再構築後も同じ警告が表示されます。
そこで、警告で提供されているMicrosoftリンクにアクセスし、それらの 指示 に従って、さまざまな.csprojファイルに<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
を追加します。
これをメインの.csprojファイルに追加し、プロジェクトを再構築すると、同じ警告が表示されました。
これをiOSファイルとAndroid .csprojファイルの両方に追加し、プロジェクトを再構築して、同じ警告が表示されました。
それで、この問題は何ですか、なぜそれがそれほど持続するのですか、そして私がそれを単に無視した場合、それは私にどのくらいの問題を与えるでしょうか?
最終的にこの警告を修正し、解決策はかなり直感に反していました。
特に「プロジェクトファイルで「AutoGenerateBindingRedirects」プロパティをtrueに設定してください」という警告にもかかわらず、警告は<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
を<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
に変更した場合にのみ消えます。
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
私の経験では、<AutoGenerateBindingRedirects>
はtrue
である必要があります。
私の開発環境:
#ソリューション:
私がしたことは、次のMS Doc( link )に示されている指示に従います。
MyBeautifulApp.Xamarin.iOS.csproj
をアンロードします。MyBeautifulApp.Xamarin.iOS.csproj
ファイルを手動で編集し、次の行を追加します<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
.csproj
ファイルを保存します。次に、ファイルを閉じて、VS SolutionExplorerでプロジェクトをリロードします。注:Xamarin.FormsiOSアプリプロジェクトの.csproj
ファイルのみを編集しました。 Xamarin.Formsソリューション内にあったAndroidプロジェクトは、すでに正常にビルドされているためです。
MyBeautifulApp.Xamarin.iOS.csproj
ファイルを手動で編集した後、次のようになりました。
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{asdf-7AC6-asdf-9890-asdf}</ProjectGuid>
<ProjectTypeGuids>{asdfasd-340asdf5-455asdfC-asdf-asdf};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<TemplateGuid>{6143fdea-f3c2-4a09-aafa-6e230626515e}</TemplateGuid>
<OutputType>Exe</OutputType>
<RootNamespace>MyBeautifulApp.Xamarin.iOS</RootNamespace>
<IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
<AssemblyName>MyBeautifulApp.Xamarin.iOS</AssemblyName>
<MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
**<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>**
</PropertyGroup>
<PropertyGroup>
....For another build configuration related property group...
さらに:今私が持っている質問は、他のビルドに関連するその.iOS.csprojファイルの他のすべてのPropertyGroupに対してこの変更を行う必要があるかどうかです。構成?私はそこにいる誰かから知ってうれしいです。しかし、今のところ、将来警告/エラーが発生するまで、それらに触れないことにしました。
これがそこにいる誰にとっても役立つことを願っています。