Ist es möglich, eine Portable Class Library zu verwenden, die System.Net in MonoDroid referenziert?

9

Nach dem Wie kann ich ein targetting pack für Portable Class Libraries? und den Ratschlägen in Ссылка Ich habe es geschafft, einige monodroid Beispielprogramme zu erstellen, die Portable Class Libraries verwenden.

Wenn jedoch einer meiner Input-PCLs auf die System.Net-Assembly verweist, kann monodroid meine apk nicht packen - weil sie sich über File Not Found für System.Net.dll beklagt.

Wie ich es verstehe (aus Ссылка ), bündelt MonoDroid alle System.Net-Funktionen in System.dll .

Gibt es irgendeine Möglichkeit, wie ich MonoDroid dazu bringen kann, diese PCLs zu verwenden, die auf System.Net verweisen?

  • Gibt es eine Möglichkeit, wie ich den monodroid-Packer dazu bringen kann, dieses System.net- & gt; Systemumleitung?
  • Oder gibt es einen Pre-Package-Schritt, den ich ausführen könnte, der die Referenzierung nur für Monodroid "korrigieren" würde?
  • Oder irgendwelche anderen Vorschläge?

Aktualisierung mit technischen Informationen:

Der Verpackungsprozess schlägt derzeit auf der Ebene von:

fehl %Vor%

Dies geschieht innerhalb der MSBuild-Aufgabe:

%Vor%

importiert von:

%Vor%     
Stuart 28.04.2012, 07:15
quelle

1 Antwort

3

Eine mögliche Lösung (vorausgesetzt, MonoDroid unterstützt die Typweiterleitung) ist eine System.Net.dll-Assembly, deren Typ die relevanten Typen an System.dll weiterleitet.

Im vollständigen .NET Framework glaube ich, dass diese System.Net-Typen sich in System.dll befinden, und wenn Sie in System.Net.dll unter .NET 4.0.3 oder 4.5 suchen, sehen Sie Understanding Portable Libraries geht in einige Details darüber, wie dies alles funktioniert.

Die Referenzen in einer portablen Bibliothek beziehen sich auf den vollständigen starken Namen von System.Net.dll. Sie können also keine korrekt signierte Assembly mit diesem Typ selbst erstellen, da Sie keinen privaten Schlüssel haben. MonoDroid kann jedoch starke Namen oder Signaturüberprüfungen unterschiedlich handhaben. So können Sie möglicherweise eine System.Net.dll mit dem Typ Forwards erstellen, den MonoDroid akzeptieren würde, und ihn mit Ihrer MonoDroid-Anwendung verpacken.

    
Daniel Plaisted 29.04.2012, 05:53
quelle