web-dev-qa-db-ja.com

「ResolveLibraryProjectImports」タスクが予期せず失敗しました

MvvmCrossに基づいたXamarinプロジェクトがあります。このプロジェクトは、iOSとAndroidの両方を対象としています。このプロジェクトをVisual Studio 15で開きました。いくつかのエラーが発生しましたが、すぐに解決しました。いくつかのエラーがあり、それらはスタックしており、GoogleやStackoverflowで検索した後でも解決できませんでした。 Stackoverflowで見つかったすべてのメソッドを試しましたが、まだすべての残りのエラーがあります。このプロジェクトでは、RestSharpやBoxApi.V2などのサードパーティライブラリを使用しています(さらにいくつか)

以下にエラーログを掲載しています。

Severity    Code    Description Project File    Line    Suppression State
Error       The "ResolveLibraryProjectImports" task failed unexpectedly.
System.IO.FileNotFoundException: Could not load Assembly 'RestSharp(Android), Version=0.0.0.0, Culture=neutral, PublicKeyToken='. Perhaps it doesn't exist in the Mono for Android profile?
File name: 'RestSharp(Android).dll'
   at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference reference, ReaderParameters parameters)
   at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(String fullName, ReaderParameters parameters)
   at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(String fullName)
   at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.GetAssembly(String fileName)
   at Xamarin.Android.Tasks.ResolveLibraryProjectImports.Extract(DirectoryAssemblyResolver res, ICollection`1 jars, ICollection`1 resolvedResourceDirectories, ICollection`1 resolvedAssetDirectories, ICollection`1 resolvedEnvironments)
   at Xamarin.Android.Tasks.ResolveLibraryProjectImports.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() BoxApi.V2 (Android)

このエラーは、このソリューションに含まれるすべてのプロジェクトで繰り返されています。そのため、このエラーが複数回発生しています。

また、プロジェクトが以前にMACでビルドされており、Windowsを使用していることを追加したいのですが、これにより互換性やOS間の問題が発生しますかすべてのアセンブリ参照を確認しましたが、すべて正常に動作しています。

30
Zaeem Sattar

Visual Studio 2017の新しいXamarin.Formsアプリケーションを使用して、文字通りこれを実現しました。

根本的な原因は、VS2017にデフォルトの場所「C:\ Users\Dave\Documents\Visual Studio 2017\Projects」にプロジェクトを作成させ、これにより1つ以上のファイルにパスが長くなりすぎたためです。

ソリューションをDドライブのルートに移動しましたが、問題なくビルドされます。

37
DilbertDave

あなたの問題は、おそらく this Xamarinフォーラムへの投稿、および this bugzillaエントリにリンクされています。再現可能なサンプルがなければ、試してみることをお勧めします:

  • Xamarin for Visual Studio、Xamarin.Android、およびXamarin.iOSを最新の安定バージョンに更新する
  • クリーニングと再構築
  • プロジェクトディレクトリからすべてのbinおよびobjフォルダーを削除する
  • Visual Studio/PCの再起動

これらすべてに失敗すると、再現可能なサンプルと潜在的にXamarinログなしであなたを助けることができる人はいないでしょう。

11
Luke Pothier

以下のようにAndroidプロジェクトファイル(csproj)を編集します

enter image description here

この問題のトピックがガイドになる場合があります https://github.com/xamarin/AndroidSupportComponents/issues/51

8
Alper Ebicoglu

同じ問題がありました。ここに私の解決策があります

  1. Visual Studioを再起動します
  2. プロジェクトを開く
  3. ソリューションをきれいにする
  4. ソリューションを再構築する
  5. 近い解決策
  6. プロジェクトを再び開く
3
Valynk

XAML(。xaml)と分離コードファイル(。xaml.cs)を使用しています。私の問題は、同じページ名が異なる名前空間の下にあったことです。 XAMLとコードビハインドファイルは一致しませんでした。当然、ビュー要素を見つけることができなかったため、最終的にXAMLの問題でした。

2
testing

私にとっては、問題はxamlファイルにありました...

どういうわけか、レイアウト境界の設定中に「。」を使用しました「、」の代わりにセパレータとして

例えば

AbsoluteLayout.LayoutBounds="0.5.0.3,1,0.3"AbsoluteLayout.LayoutBounds="0.5,0.3,1,0.3"でなければなりませんでした

したがって、「。」を変更します「」に問題を解決しました

2
Devesh Bahuguna

これは私のために働いた:

  • クリーンソリューション
  • 最上部から始めて、一度に1つのプロジェクトをビルドします-ソリューションを再構築するのではなく、一度に1つのプロジェクトだけをビルドします
  • Objとbinフォルダーの内容も削除してみてください
  • 完了したら、プロジェクトを再度実行する前にエミュレーターまたはデバイスから削除します

お役に立てれば。

1
FelixFelicis

私の場合、この問題はxamlに関連する別の問題に伴って発生しました。
このエラーが消えるには、2番目の問題を解決する必要がありました。新しいデフォルトのコンテンツでクラスをクリーンアップしてから、すべてのプロジェクトとソリューションをクリーンアップします。最後に、ビジュアルスタジオを閉じて開き、プロジェクトを実行します。

1
Gian Gomen

これはまだ新しい問題です。すべての試みの後、コードをより短いパスにシフトしようと試みましたが、svn管理が複雑になるため、多くの作業がありますので、最初にパスが本当に問題であるかどうかを確認したかったこれを行う方法は、Android SDKが保存されている場所を確認することでした。私はMacを使用していますが、調査の結果、SDKのパスがプロジェクトのパスよりも長いことがわかりました。さらに、私は新鮮なプロジェクトを試してみましたが、それは正しくコンパイルされていました。

だから私はシフトのアイデアを落とした。代わりに、svnを使用して、最後の正しいビルド以降に変更されたものを比較しました。

この比較により、droidのプロジェクトファイルはiOSのプロジェクトファイルを何らかの形で参照していることがわかりました。VisualStudioのバグのようです。だから私は変更を元に戻し、すべてが通常に戻った。

1
Kalpesh Popat

私たちもこれに遭遇しました。複数のプロジェクトと非常に深い/複雑な依存関係ツリー(この例には100以上のプロジェクトがあります)を構築するときの競合状態のようです。

これを解決し続けた唯一の方法は(継続的な再構築を超えて)Visual Studio 2017の並列ビルド機能を無効にすることです(ツール->オプション->プロジェクトとソリューション->ビルドと実行-> "1"並列プロジェクトの最大数ビルド)。

問題はResolveLibraryProjectImports.csにあるようです( https://github.com/xamarin/xamarin-Android/blob/93ddf96f86710ad848d5189858567dd7fe964579/src/Xamarin.Android.Build.Tasks/Tasks/ResolveLibraryProjectImports.cs )ファイル名を短縮するためのロジックに競合状態がある可能性があります。

これに関するテストはゼロであり、これはおそらく危険なコードがあることを意味します。

さらに掘り下げてGitHubで問題を公開しようとしますが、信頼できるレポジトリを見つけることはおそらく非常に難しいでしょう。

1
aolszowka

これは、ソリューションに含まれているクラスライブラリにnugetパッケージを誤ってインストールしたときに起こりました。クラスライブラリプロジェクトからパッケージをアンインストールする必要がありました。

1
Michael Jedd

まだ問題がありますか?名前空間とxamlコードを確認してください。いくつかのファイルをコピー/貼り付けすると、問題になる場合があります。

1

それがあなたの誰かを助けるかどうかわからない。私の場合、エラーのあるクラス(例:参照が欠落しているクラス)にコメントすると、すべてをピックアップして再構築し始めます。

1
hmheng

同じエラーが発生し、開いている他のxamarinソリューションをすべて閉じることでこれを解決します。この問題を解決したもう1つの方法があります->タスクマネージャに移動してMSBUILDサービスを見つけてそのサービスを終了します->ソリューションをクリーンアップします->再構築

1
Ronak Shethia

問題は次のとおりです。System.IO.PathTooLongException:指定されたパス、ファイル名、またはその両方が長すぎます。完全修飾ファイル名は260文字未満、ディレクトリ名は248文字未満にする必要があります。

プロジェクトを "C:/"のような別の場所に移動するか、プロジェクトの名前をもっと短い名前に変更してください

0
Sumit Pathak

このエラーもありました。私の状況では、Xamarin.Forms.Mapsファイルの1つに正しくインポートされないxaml.g.csが伴いました。すべてのusingステートメントが正しいものでした。 IDEはエラーを表示していませんでしたが、Xamarin.Formsには名前空間マップがなかったことを通知し続けました。 MapPage.xaml.g.csではなくXamarin.Forms.MapとしてXamarin.Forms.Maps.Mapで生成されていたため、手動で修正を強制できませんでした。ただし、マップに推奨されるxmlns:mapsが問題の原因であることが判明しました。 IDEは"http://xamarin.com/schemas/2014/forms"を使用するように言っていましたが、正しい名前空間は"clr-namespace:Xamarin.Forms.Maps;Assembly=Xamarin.Forms.Maps"です。これを変更した後、App1.dllをビルドできました

0
Travis Fleenor

今日も同じ問題に直面しています。 2日間の検索の後、解決策を見つけました here 。問題は、Xamarin.Formsライブラリは、Visual Studio 2017からクロスプラットフォームモバイル(Xamarin.Forms)プロジェクトテンプレートを選択してプロジェクトを最初に作成する際に、依存するすべてのNugetパッケージをインストールしないことです。正常にプロジェクト。また、問題を解決するXamarin.Formsを最後に削除および追加しました。

また、Visual Studio 2017の2つのインスタンスが実行されているときに問題が発生する場合があります。この問題も発生しているため、1つのインスタンスのみが実行されていることを確認してください。

0
Subhajit Ray

同じ問題が発生しましたが、上記の解決策はいずれも機能しませんでした。暗号化に関するリストに気づき、エラーが発生した後、FIPSが有効になっていることに関連する必要があることを知っていました(VPNクライアントで必要)

Xamarin Compile Time Error

FIPSを無効にしてVisual Studioを再起動すると、問題は解決しました。

enter image description here

0

これがエラーの原因です。 StackLayoutでPaddingプロパティを設定し、4桁をコンマではなくスペースで区切りました。バグを見つけるには、XAMLコントロールを個別にコメントアウトし、エラーがどこにあるかを特定するために再構築する必要があり、最終的に問題の行を見つけました。基本的にこれは、XAMLコードの構文エラーに対して取得したエラーメッセージです。他の言語では、エラーが何であるかが通知されるので、数秒で修正できます。しかし、これには数時間かかりました-次回は何をすべきか知っていますが。

0
arame3333

簡潔な答え:

  1. ソリューションを含むディレクトリをデスクトップに移動します

OR

  1. 問題のあるライブラリへの参照を削除します([参照]セクション)
  2. Visual Studioを閉じます
  3. Windowsエクスプローラーで、アプリケーションのプロジェクトディレクトリ( "Projectname" .slnファイルがある場所)に移動します。
  4. 非表示アイテムの再表示([表示]タブ、[非表示アイテムの確認])
  5. 「vs」隠しフォルダーを削除し、「sou」という名前のファイルがある場合はそれも削除します。
  6. Visual Studioを再起動してソリューションを起動する

私はOPと同じ解決策に直面していました。これは、OPが抱えていたエラーの解決策です。以下に、他の人に発生する可能性のあるエラーの他の原因に対処しました。

説明:通常、発生する可能性のある2種類の問題があります。最初のファイルには、System.IO.readerには長すぎるプロジェクトファイルが含まれており、「file.path too long」の行に沿ったテキストを含むエラーが発生します。

エラーの2番目の原因は、VSがdllの正しい名前を形成しているが、プロジェクトリソースのパスが正しくないためです。例として、「App1\bin\Debug\net1.6\temp.dll」ではなく「App1\bin\Debug\net452\temp.dll」を使用するVSがあります。

0
Rilwan Adewoyin
xmlns:maps="clr-namespace:Xamarin.Forms.Maps; Assembly=Xamarin.Forms.Maps"

問題は、上記のセミコロンとアセンブリの間にスペースがあるためです。ギャップが閉じられるとすぐにコンパイルされます。

0
user11633781

このような問題は、私の場合のように誤って構文エラーがある場合にも発生する可能性があります。ListViewに2つのテキストセルがありました-

<ListView x:Name="ProductsView">
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextCell Text="{Binding ProductId}" />
            <TextCell Text="{Binding ProductDescription}" />
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

この問題について他の投稿を調べましたが、構文エラーが存在するために同じ問題が発生したことがわかりましたが、VSは直接報告しません。これを探してください。そうでなければ、xamarin.formsの互換性のあるバージョンを再インストールしてください。

0
Kokul Jose

私はこの問題に何千回も直面しましたが、実際には非常に簡単なことです。新しいプロジェクトVisual Studioを作成すると、C:Driveのデフォルトフォルダーに作成されます。 E:ドライブのルートに保存することを確認してください。つまり、Dで移動した場合:D/Project/solutionFileのように配置します。

0
FreakyAli

それはおそらくあなたの参照/参照アセンブリの問題ですか?

ソリューションエクスプローラーで各プロジェクトの参照フォルダーの下を見ると、Visual Studioがそれらを検索、削除、再追加できない参照を追加します(追加する参照フォルダーを右クリックします)。

0
Kyle Burkett