ポータブル クラス ライブラリのターゲット パックを作成するにはどうすればよいですか? http://jpobst.blogspot.com/2012/04/mono-for-android-portable-libraries-in.htmlのアドバイスポータブル クラス ライブラリを使用する monodroid サンプル プログラムを作成することができました。
ただし、入力 PCL のいずれかが System.Net アセンブリを参照している場合、monodroid は apk のパッケージ化に失敗します。System.Net.dll のファイルが見つからないというメッセージが表示されるためです。
私が理解しているように ( http://docs.xamarin.com/android/about/assembliesから)、MonoDroid はすべての System.Net 機能を System.dll 内にバンドルしています。
System.Net を参照するこれらの PCL を MonoDroid に使用させる方法はありますか?
- この System.net-> System リダイレクトを monodroid パッケージャーに理解させる方法はありますか?
- または、モノドロイドのためだけに参照を「修正」する、実行できるパッケージ前のステップはありますか?
- または他の提案はありますか?
技術情報で更新:
現在、パッケージ化プロセスは次のレベルで失敗しています:
"C:\Projects\Misc\MVVMCROSS\Sample - Tutorial\Tutorial\Tutorial.UI.Droid\Tutorial.UI.Droid.csproj" (SignAndroidPackage target) (1) ->
(_ResolveAssemblies target) ->
C:\Program Files (x86)\MSBuild\Novell\Novell.MonoDroid.Common.targets(441,2): error : Exception while loading assemblies: System.IO.FileNotFoundException: Could not load assembly 'System.Net, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e'. Perhaps it doesn't exist in the Mono for Android profile? [C:\Projects\Misc\MVVMCROSS\Sample - Tutorial\Tutorial\Tutorial.UI.Droid\Tutorial.UI.Droid.csproj]
C:\Program Files (x86)\MSBuild\Novell\Novell.MonoDroid.Common.targets(441,2): error : File name: 'System.Net.dll' [C:\Projects\Misc\MVVMCROSS\Sample - Tutorial\Tutorial\Tutorial.UI.Droid\Tutorial.UI.Droid.csproj]
C:\Program Files (x86)\MSBuild\Novell\Novell.MonoDroid.Common.targets(441,2): error : at Monodroid.Tuner.MonoDroidResolver.Resolve(AssemblyNameReference reference, ReaderParameters parameters) [C:\Projects\Misc\MVVMCROSS\Sample - Tutorial\Tutorial\Tutorial.UI.Droid\Tutorial.UI.Droid.csproj]
C:\Program Files (x86)\MSBuild\Novell\Novell.MonoDroid.Common.targets(441,2): error : at Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(List`1 assemblies, AssemblyDefinition assembly) [C:\Projects\Misc\MVVMCROSS\Sample - Tutorial\Tutorial\Tutorial.UI.Droid\Tutorial.UI.Droid.csproj]
C:\Program Files (x86)\MSBuild\Novell\Novell.MonoDroid.Common.targets(441,2): error : at Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(List`1 assemblies, AssemblyDefinition assembly) [C:\Projects\Misc\MVVMCROSS\Sample - Tutorial\Tutorial\Tutorial.UI.Droid\Tutorial.UI.Droid.csproj]
C:\Program Files (x86)\MSBuild\Novell\Novell.MonoDroid.Common.targets(441,2): error : at Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(List`1 assemblies, AssemblyDefinition assembly) [C:\Projects\Misc\MVVMCROSS\Sample - Tutorial\Tutorial\Tutorial.UI.Droid\Tutorial.UI.Droid.csproj]
C:\Program Files (x86)\MSBuild\Novell\Novell.MonoDroid.Common.targets(441,2): error : at Xamarin.Android.Tasks.ResolveAssemblies.Execute() [C:\Projects\Misc\MVVMCROSS\Sample - Tutorial\Tutorial\Tutorial.UI.Droid\Tutorial.UI.Droid.csproj]
これは、MSBuild タスク内で発生しています。
<!-- Find all the assemblies this app requires -->
<ResolveAssemblies
Assemblies="$(ProjectDir)$(OutDir)$(TargetFileName);@(ReferencePath)"
I18nAssemblies="$(MandroidI18n)"
LinkMode="$(AndroidLinkMode)"
ReferenceAssembliesDirectory="$(TargetFrameworkDirectory)">
<Output TaskParameter="ResolvedAssemblies" ItemName="ResolvedAssemblies" />
<Output TaskParameter="ResolvedUserAssemblies" ItemName="ResolvedUserAssemblies" />
<Output TaskParameter="ResolvedFrameworkAssemblies" ItemName="ResolvedFrameworkAssemblies" />
<Output TaskParameter="ResolvedSymbols" ItemName="ResolvedSymbols" />
</ResolveAssemblies>
インポート元:
<UsingTask TaskName="Xamarin.Android.Tasks.ResolveAssemblies" AssemblyFile="Novell.MonoDroid.Build.Tasks.dll" />