2016-05-03 7 views
9

Potrzebuję utworzyć bibliotekę w Xamarin, która jest przeznaczona tylko dla systemów iOS i Android. Nie muszę obsługiwać żadnych innych platform, ale potrzebuję jak najwięcej funkcji .NET.Czy mogę kierować reklamy na systemy iOS i Android tylko na PCL Xamarin i mieć więcej funkcji .NET?

widzę, że w Change Cele dialogowe nie ma możliwości Silverlight check-box odznaczyć:

enter image description here

mogę utworzyć Xamarin przenośny klasy biblioteki kierowaną iOS i Android tylko bez wsparcia Silverlight i mieć więcej obsługiwanych funkcji .NET?

EDIT: Oto niektóre klasy, które muszę obsługiwać: X509CertificateCollection, SerializationInfo, NameValueCollection. Potrzebuję również obsługi przestrzeni nazw System.Web.Services. Wygląda na to, że mogę wykorzystać to wszystko bezpośrednio w projektach na iOS i Androida. Czy mogę utworzyć PCL z wszystkimi tymi funkcjami?

Odpowiedz

6

Kiedy będziesz ograniczona, jeśli starają się kierować PCL, innym rozwiązaniem jest użycie Reklama przynęta z zamianą Nuget, co byłoby ustawienie następująco:

  • Shared Project - zawiera wszystkie udostępnionego kodu
  • Android Library Project - Referencje Shared Project, więc otrzymuje cały kod
  • Projekt iOS Library - References Shared Project, więc dostaje cały kod
  • PCL Project - pusty projekt, który zawiera tylko puste odcinki dla metod

Następnie należy utworzyć Nuget, gdzie Android ładowność jest projekt Android biblioteka, a ładowność iOS jest iOS Projekt biblioteczny.

Projekt PCL przedstawia tylko interfejs API kompatybilny z PCL, ale implementacja wykorzystuje wszystko, czego potrzebujesz.

Dla Reklama przynęta z zamianą podejście prezentowane: http://log.paulbetts.org/the-bait-and-switch-pcl-trick/

7

Profile24, który obejmuje Silverlight jest najwęższy masz zamiar dostać natomiast zawierać Xamarin.iOS i Xamarin.Android

FYI: I całkowicie zgadzam się z sugestią Matt korzystania Profile111 jeśli idziesz w kierunku biblioteki PCL. Czasami w przypadku naszych projektów "szybciej" ($/czas) wystarczy, aby przejść do "Udostępnionych projektów" i jeśli to konieczne, użyj # jeśli/# else/# end we wspólnym kodzie. Biblioteki PCL świetnie nadają się do udostępniania, ale jeśli nie masz ochoty pozostawiać elementów szkieletowych, wspólny kierunek projektu może rozwiązać dzisiejszy problem ... ;-)

Od czasu wydania Xamarin 4.1 pojawiły się dwa nowe profile dodania:

Profile 44 (.NET Framework 4.5.1, Windows 8.1) (netstandard 1.2) 
Profile 151 (.NET Framework 4.5.1, Windows 8.1, Windows Phone 8.1) (netstandard 1.2) 

starych:

Profile 5 (.NET Framework 4,  Windows 8) 
Profile 6 (.NET Framework 4.0.3, Windows 8) 
Profile 7 (.NET Framework 4.5, Windows 8) 
Profile 14 (.NET Framework 4,  Silverlight 5) 
Profile 19 (.NET Framework 4.0.3, Silverlight 5) 
Profile 24 (.NET Framework 4.5, Silverlight 5) 
Profile 37 (.NET Framework 4,  Silverlight 5, Windows 8) 
Profile 42 (.NET Framework 4.0.3, Silverlight 5, Windows 8) 
Profile 47 (.NET Framework 4.5, Silverlight 5, Windows 8) 
Profile 49 (.NET Framework 4.5, Windows Phone Silverlight 8) 
Profile 78 (.NET Framework 4.5, Windows 8, Windows Phone Silverlight 8) 
Profile 92 (.NET Framework 4,  Windows 8, Windows Phone 8.1) 
Profile 102 (.NET Framework 4.0.3, Windows 8, Windows Phone 8.1) 
Profile 111 (.NET Framework 4.5, Windows 8, Windows Phone 8.1) 
Profile 136 (.NET Framework 4,  Silverlight 5, Windows 8, Windows Phone Silverlight 8) 
Profile 147 (.NET Framework 4.0.3, Silverlight 5, Windows 8, Windows Phone Silverlight 8) 
Profile 158 (.NET Framework 4.5, Silverlight 5, Windows 8, Windows Phone Silverlight 8) 
Profile 225 (.NET Framework 4,  Silverlight 5, Windows 8, Windows Phone 8.1) 
Profile 255 (.NET Framework 4.5, Silverlight 5, Windows 8, Windows Phone 8.1) 
Profile 259 (.NET Framework 4.5, Windows 8, Windows Phone 8.1, Windows Phone Silverlight 8) 
Profile 328 (.NET Framework 4,  Silverlight 5, Windows 8, Windows Phone 8.1, Windows Phone Silverlight 8) 
Profile 336 (.NET Framework 4.0.3, Silverlight 5, Windows 8, Windows Phone 8.1, Windows Phone Silverlight 8) 
Profile 344 (.NET Framework 4.5, Silverlight 5, Windows 8, Windows Phone 8.1, Windows Phone Silverlight 8) 

http://danrigby.com/2014/05/14/supported-pcl-profiles-xamarin-for-visual-studio-2/

+1

Jak mogę odwołać Profile111 w moim projekcie? Próbowałem ustawić go ręcznie w pliku projektu, ale VS powiedział, że nie jest zainstalowany. –

+0

Firma Microsoft ma osobny plik do pobrania zawierający zestawy referencyjne, jeśli jeszcze ich nie zainstalowano: http://www.microsoft.com/en-us/download/details.aspx?id=40727 – SushiHangover

2

profil PCL (prawie) taki sam, w tym też nie Silverl ,, masz dostęp tylko do zespołów PCL.

Ale Xamarin Forms już pozwala sobie z tym poradzić, na każdej platformie masz projekt .Droid i .iOS, a na tych projektach możesz użyć pełnej frameworka .net.

Aby uzyskać dostęp do kodu z tych projektów, masz Dependency Services, a jeśli chcesz używać tego samego kodu dla obu systemów, Android i iOS masz shared projects.

W zasadzie umieść wszystkie swoje udostępnione kody we wspólnym projekcie, zaimplementuj interfejs, zarejestruj go jako usługę zależności, pobierz ją w swoim kodzie formularzy iw ten sposób uzyskasz wsparcie dla pełnej struktury.

+0

Czy jest jakaś szansa używać klas X509CertificateCollection, SerializationInfo, NameValueCollection w PCL bezpośrednio, bez DependencyServices? –

+0

Nie ... ... ... – Gusman

1

Zgodnie z tym, co napisano w tekście, zostanie automatycznie dodany silverlight, ponieważ nie będzie żadnej funkcji. Więc nie będzie już dostępnych żadnych funkcji.

Po drugiej stronie, chciałbym zaproponować użycie Profile111 (zobacz listę w odpowiedzi SushiHangover).Z jednej strony pozwala to później na dodanie systemu Windows 10 jako platformy docelowej, a także większość PCL wydaje się obsługiwać ten profil, ponieważ Silverlight umrze (Silverlight 5 był ostatni, a Windows Phone to UWP)

+0

Czy Profile111 zapewnia obsługę przestrzeni nazw System.Web.Services? –

+0

Niestety nie, do czego jest to potrzebne? – Matt

Powiązane problemy