2016-07-14 19 views
1

現在、AutoMapper 5.0.2を参照する.NET Standard 1.1ライブラリを参照するXamarin.Androidプロジェクトがあります。私はVSTSを介してこれを構築しようとした際NetStandardライブラリがVSTSビルドエージェントに依存しない

私はこのエラーを取得

C:\ MSBuildの\ Xamarin \アンドロイド\ Xamarin.Android.Common.targets \プログラムファイル (x86の)(1316,2) : エラー:例外読み込みアセンブリ中: System.IO.FileNotFoundException:アセンブリ をロードできませんでした 'System.Collections.Specialized、バージョン= 4.0.1.0、文化=中立、 なPublicKeyToken = b03f5f7f11d50a3a'。おそらく、AndroidプロファイルのMono には存在しないでしょうか?

このソリューションは、ローカルマシンで完全に正常に構築され、Androidエミュレータで動作します。

物事のAndroid プロジェクトに対して直接AutoMapper Nugetパッケージをインストール

  1. 私が試してみました(そしてどれも働いていません)。
  2. Androidプロジェクトの にSystem.Collections.Specializedをインストールしてください。
  3. Androidプロジェクトで<CopyNuGetImplementations>true</CopyNuGetImplementations>を行っています。

また、私のプロジェクトで.NET Standard 1.1ライブラリを使用していますが、.NET標準1.3を使用してビルドログから見ることができます。ビルドプロセスがどのようにこれらの標準を管理しているかわからないので、これが違いを生むかどうかはわかりません。 から

コピーファイル "C:\ Users \ユーザーbuildguest.nugetパッケージ\ \ AutoMapper \ 5.0.2 \ libに\ netstandard1.3 \ AutoMapper.dll" に「C:\ 1 \ B \/Release \ AutoMapper.dll」をクリックします。

アップデート1

ちょうど私がビルドエージェントにNuget 3.4.4とNuget 3.5.0ベータ2を使用してみましたが、これは私が持っていた他の問題を解決しながら、それはdidnのことを追加します私が経験している現在のものを解決する。

アップデート2

ここに私のAndroid project.jsonここ

{ 
    "dependencies": { 
    "Newtonsoft.Json": "9.0.1" 
    }, 
    "frameworks": { 
    "MonoAndroid,Version=v6.0": {} 
    }, 
    "runtimes": { 
    "win": {} 
    } 
} 

は私のポータブルproject.jsonです

{ 
    "supports": {}, 
    "dependencies": { 
    "AutoMapper": "5.0.2", 
    "NETStandard.Library": "1.6.0", 
    "Xamarin.Forms": "2.3.0.107" 
    }, 
    "frameworks": { 
    "netstandard1.1": { 
     "imports": "portable-win+net45+wp8+win81+wpa8" 
    } 
    } 
} 

アップデート3:7月18日 ちょうど追加より多くのテストケース

  1. 新しいXamarin Androidプロジェクト(packages.config、既存のnuget.exe)を使用しましたか?すべての作品。
  2. AutoMapperリファレンスを追加し、ローカルにビルドして実行します。VSTSビルドエージェントで失敗します
  3. Nuget.exeが更新されました。ビルド時にも失敗します。
  4. project.jsonへの更新 - ビルドに失敗しました。

VSTSのVisual StudioビルドステップでAutoMapper 5.0.2の参照が機能している空のプロジェクトでも、私は取得できません。常に上記と同じエラー。

+0

"Xamarin.Android"ビルド定義テンプレートを使用していますか? "Visual Studio"のビルド定義テンプレートを使ってビルドが正常に完了するかどうか確認できますか? –

+0

@ Eddie-MSFT - Visual Studioビルドステップで試したところ、上記と全く同じエラーが発生しました。 –

+0

"Xamarin.Android"ビルド定義テンプレートでも同じエラーが発生しますが、ビルドは "Visual Studio"テンプレートで動作します。 –

答えて

1

これはHosted Build Agentにインストールされている古いXamarinのバージョンによって引き起こされます。ホステッドビルドエージェントにインストールされているバージョンは、 "Xamarin for Visual Studio 4.0.3.214"です。オンプレミスビルドエージェントを展開してこのバージョンをインストールした後、このビルドエージェントでビルドをキューに入れると、ビルドは同じエラーメッセージで失敗します。バージョンを最新の4.1.1.3バージョンにアップグレードすると、ビルドは正常に完了します。

この問題の回避策はdeploy your own build agentで、最新のXamarinをインストールしてください。そして、このオンプレミスビルドエージェントでビルドを実行します。

+0

こんにちはEddie、私はこの記事を見つけました。私はHostedビルドエージェントとAndroidアプリを実行しているときに同様の問題に直面しています。ホストされているビルドにインストールされているXamarinのバージョンを確認するにはどうすればよいですか?おかげで事前に – MikePR

+0

@MikePRこのリンクを確認してください:https://www.visualstudio.com/docs/build/admin/agents/hosted-pool#software-on-the-hosted-build-server –

+0

こんにちはEddie、私は同じ種類のエラーに直面していますが、新しくインストールされたmacosエージェント(Xamarin.Ios)はxamarin studioで正しく構築されています。何かご意見は? –

2

ビルド時に最新のNuGet.exeをダウンロードするビルドステップを追加し、ビルドスクリプトを使用してnugetリストアを呼び出すか、VSTS NuGet Restoreタスクの代替パスを使用してダウンロード。

VSTSにバンドルされているNuGet.exeが古すぎるという問題があります。

現在地直接ダウンロードパスを見つけることができます。 https://dist.nuget.org/index.html

+0

私は既に持っています。それは私が持っていたが、これ以外の問題を解決しました。 –

関連する問題