2011-10-11 12 views
14

Rozumiem, że możemy uzyskać dostęp do części .net apis i wszystkich aprt winrt w aplikacji stylu metra napisany w języku C#. Ale co z innymi komponentami firm trzecich, które są ukierunkowane na .net 2.0 lub 3.5, itp. czy będziemy mogli dodać je jako referencje w projekcie aplikacji w stylu metra?przy użyciu starszych zestawów w stylu Metro app

Odpowiedz

9

Tak, czasami można odwoływać się do zewnętrznych zestawów .NET z aplikacji Metro. Powinny być wdrożone w tym samym folderze co twoja aplikacja i używać tylko obsługiwanych interfejsów API.

Utworzyłem bibliotekę .NET z jedną klasą i wykorzystałem ją z aplikacji metra. Otrzymałem następujące ostrzeżenie: The project 'EmptyLib' cannot be referenced. Ale aplikacja została zbudowana i udało mi się ją debugować i zbadać instancję mojej klasy w debugerze.

Następnie próbowałem przekazać certyfikat aplikacji Windows. Nie udało się (zobacz szczegóły poniżej).

Po włączeniu optymalizacji kompilatora do certyfikacji aplikacji przekazano.


Powodem, dla którego nie udało się go po raz pierwszy było to, że biblioteka korzystała z nieobsługiwanych interfejsów API. Szczegóły:

Błąd: Ta aplikacja nie może obsłużyć sprawdzonego sprawdzenia interfejsu API.

  • API System.Runtime.CompilerServices.CompilationRelaxationsAttribute w mscorlib, TokenKluczaPublicznego = b77a5c561934e089 nie jest obsługiwana dla tego typu aplikacji. EmptyLib.dll wywołuje ten interfejs API.

  • API System.Runtime.CompilerServices.CompilationRelaxationsAttribute. # Konstruktor (System.Int32) w mscorlib, TokenKluczaPublicznego = b77a5c561934e089 nie jest obsługiwana dla tego typu aplikacji. EmptyLib.dll wywołuje ten interfejs API.

Zagrożenie, jeśli nie zostało naprawione: aplikacja korzysta z co najmniej jednego interfejsu API, który nie znajduje się w aplikacji Windows SDK dla aplikacji w stylu Metro. Używanie nieobsługiwanych interfejsów API narusza zasady dotyczące Windows Store i może mieć negatywny wpływ na wygodę użytkownika oraz może utrudniać ogólną stabilność systemu.

Sposób naprawy: Przejrzyj komunikaty o błędach powyżej2, aby poznać dokładny interfejs API, który należy naprawić. Zapoznaj się z aplikacjami Windows SDK dla aplikacji Metro w celu uzyskania listy obsługiwanych interfejsów API.

+5

Jeśli autorzy bibliotek chcą, aby ich biblioteki były dostępne zarówno na komputerze stacjonarnym, jak i w Metro, powinny używać projektów "Portable Library", aby zapewnić, że korzystają tylko z powszechnie obsługiwanych interfejsów API. –

+1

Zobacz także http://msdn.microsoft.com/en-us/library/windows/apps/br230301(v=VS.85).aspx#KnowTheRules –

Powiązane problemy