從How can I build a targetting pack for Portable Class Libraries?和http://jpobst.blogspot.com/2012/04/mono-for-android-portable-libraries-in.html的建議我已經設法構建了一些使用可移植類庫的monodroid示例程序。是否可以使用在MonoDroid中引用System.Net的可移植類庫?
但是,如果我的任何輸入PCLS的引用System.Net組裝,然後MonoDroid的失敗來包裝我的APK - 因爲它抱怨找不到文件的System.Net.dll。
據我所知(從http://docs.xamarin.com/android/about/assemblies),MonoDroid的捆綁內System.dll中的所有System.Net功能。
有沒有什麼辦法可以讓MonoDroid使用這些參考System.Net的PCL?
- 有沒有什麼辦法可以讓monodroid打包者瞭解這個System.net->系統重定向?
- 還是有一些預包裝的步驟,我可以運行,將「糾正」引用只爲monodroid?
- 還是有其他建議?
包裝過程目前未能在水平:
:<!-- 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>
"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任務內發生
與技術信息更新
從:
<UsingTask TaskName="Xamarin.Android.Tasks.ResolveAssemblies" AssemblyFile="Novell.MonoDroid.Build.Tasks.dll" />
我一直在黑客一個小時(也試過,並在一些MSBuild Xamarin構建任務黑客失敗)和...我有一些成功!謝謝。將通過Twitter報告更多 – Stuart 2012-04-29 09:11:50
已經在http://slodge.blogspot.co.uk/2012/04/using-portable-library-tools-for.html上發佈了一些註釋 - 當我獲得monotouch工作時,也會推送給github ...(目前monodevelop的問題!) – Stuart 2012-04-30 13:41:59