Ta odpowiedź opiera się na principles used to package libraries targeting the .NET Framework. Przeczytaj połączoną odpowiedź, aby lepiej zrozumieć następujące kwestie.
Najpierw należy zaznaczyć pole wyboru "Generuj układ biblioteki" w ustawieniach budowania projektu. Bez tego nie będzie możliwe użycie formantów użytkownika XAML wyeksportowanych przez bibliotekę. Pamiętaj, aby zastosować to ustawienie dla wszystkich konfiguracji i architektur kompilacji.
Oprócz podstawowych aktywów 3 (patrz odpowiedź powiązany powyżej), będzie trzeba także pakować następujące dodatkowe aktywa z budowania katalogu wyjściowego:
- MyUwpLibrary.pri
- podkatalogu MyUwpLibrary
Te dodatkowe zasoby są wymagane do korzystania z formantów użytkownika XAML eksportowanych przez zespół. Zawsze włączaj te zasoby, nawet jeśli nie eksportujesz jeszcze żadnego XAML-a z biblioteki - możesz to zrobić pewnego dnia i będzie to trudne do zapamiętania w przyszłości!
Aby opublikować bibliotekę UWP, trzeba utworzyć pakiet Nuget o następującej strukturze:
\---lib
\---uap10.0
| MyUwpLibrary.dll
| MyUwpLibrary.pdb
| MyUwpLibrary.pri
| MyUwpLibrary.xml
|
\---MyUwpLibrary
HelloWorld.xaml
MyUwpLibrary.xr.xml
Jeśli jesteś zaznajomiony z publikacji biblioteki .NET Framework, powinno to wyglądać dość znane i jednoznaczne. Możesz użyć następującego szablonu do pliku nuspec:
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata minClientVersion="3.2">
<id>Example.MyUwpLibrary</id>
<version>1.0.0</version>
<authors>Firstname Lastname</authors>
<description>Example of a UWP library that exports a user control.</description>
<dependencies>
<dependency id="Newtonsoft.Json" version="8.0.1" />
</dependencies>
</metadata>
<files>
<!-- The double wildcard will also grab all the resource files and the resource subdirectory. -->
<file src="..\bin\Release\MyUwpLibrary**" target="lib\uap10.0" />
</files>
</package>
To wszystko, naprawdę! Pamiętaj, aby zbudować swoje rozwiązanie przy użyciu konfiguracji Release przed utworzeniem pakietu NuGet. Aby uzyskać więcej informacji, zapoznaj się z odpowiedzią na temat pakowania biblioteki .NET Framework, którą podano powyżej.
Przykładowa biblioteka i odpowiednie pliki opakowań to available on GitHub. Rozwiązaniem odpowiadającym tej odpowiedzi jest SimpleUwpLibrary.
Bardzo dziękuję za to! Wpadłem w kłopoty, tworząc własną bibliotekę UWP i myślę, że rozwiązało to dla mnie problemy. –
Ponadto: inny TFM, który może być użyty (zamiast 'uap10.0') to' netcore50'. –
Podfolder MyUwpLibrary jest tworzony tylko wtedy, gdy flaga GenerateLibraryLayout ma wartość true dla odpowiedniej konfiguracji kompilacji. – halllo