web-dev-qa-db-ja.com

Visual Studio for MacでAutoGenerateBindingRedirectsを設定する方法は?

私は現在、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 --versionTerminalに入力すると2.1.3、VSでNETStandard.Libraryを更新します–表示されるライセンスを受け入れます。

  • 再構築後も同じ警告が表示されます。

  • そこで、警告で提供されているMicrosoftリンクにアクセスし、それらの 指示 に従って、さまざまな.csprojファイルに<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>を追加します。

  • これをメインの.csprojファイルに追加し、プロジェクトを再構築すると、同じ警告が表示されました。

  • これをiOSファイルとAndroid .csprojファイルの両方に追加し、プロジェクトを再構築して、同じ警告が表示されました。

それで、この問題は何ですか、なぜそれがそれほど持続するのですか、そして私がそれを単に無視した場合、それは私にどのくらいの問題を与えるでしょうか?

8
user2323030

最終的にこの警告を修正し、解決策はかなり直感に反していました。

特に「プロジェクトファイルで「AutoGenerateBindingRedirects」プロパティをtrueに設定してください」という警告にもかかわらず、警告は<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects><AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>に変更した場合にのみ消えます。

1
user2323030

<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>

私の経験では、<AutoGenerateBindingRedirects>trueである必要があります。

私の開発環境:

  • macOS Mojave 10.14.2(18C54)
  • VisualStudio for Mac Professionalバージョン7.7.4(ビルド1)

#ソリューション:

私がしたことは、次のMS Doc( link )に示されている指示に従います。

  1. Visual Studio XamarinFormsソリューションからMyBeautifulApp.Xamarin.iOS.csprojをアンロードします。
  2. テキストエディットを使用してMyBeautifulApp.Xamarin.iOS.csprojファイルを手動で編集し、次の行を追加します<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    ビルドしようとしてエラーが発生したビルド構成に関連するPropertyGroupに。
  3. .csprojファイルを保存します。次に、ファイルを閉じて、VS SolutionExplorerでプロジェクトをリロードします。
  4. 次に、クリーンアップしてビルドを試みます。警告やエラーが発生することなく、正常にビルドできるはずです。 ----->私にとってこれはうまくいきました。

注: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に対してこの変更を行う必要があるかどうかです。構成?私はそこにいる誰かから知ってうれしいです。しかし、今のところ、将来警告/エラーが発生するまで、それらに触れないことにしました。

これがそこにいる誰にとっても役立つことを願っています。

4
Randika Vishman