Questa risposta costruisce sulla principles used to package libraries targeting the .NET Framework. Leggi prima la risposta collegata per capire meglio quanto segue.
Per prima cosa è necessario selezionare la casella di controllo "Genera layout libreria" nelle impostazioni di creazione del progetto. Senza questo, non sarà possibile utilizzare i controlli utente XAML esportati dalla libreria. Assicurati di applicare questa impostazione per tutte le configurazioni e le architetture di build.
Oltre ai fondamentali 3 attivi (vedi risposta linkato sopra), sarà anche necessario per confezionare le seguenti attività aggiuntive dalla directory di output di generazione:
- MyUwpLibrary.pri
- sottodirectory MyUwpLibrary
Queste risorse aggiuntive sono necessarie per utilizzare i controlli utente XAML esportati dall'assieme. Includere sempre queste risorse, anche se non si è ancora esportato alcun XAML dalla libreria: è possibile farlo un giorno e questo sarà difficile da ricordare in seguito!
Per pubblicare la libreria UWP, è necessario creare un pacchetto NuGet con la seguente struttura:
\---lib
\---uap10.0
| MyUwpLibrary.dll
| MyUwpLibrary.pdb
| MyUwpLibrary.pri
| MyUwpLibrary.xml
|
\---MyUwpLibrary
HelloWorld.xaml
MyUwpLibrary.xr.xml
Se si ha familiarità con la pubblicazione libreria .NET Framework, questo ha l'aria molto familiare e diretto. È possibile utilizzare il seguente modello per il file 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>
Questo è tutto, davvero! Ricordarsi di creare la soluzione utilizzando la configurazione di rilascio prima di creare il pacchetto NuGet. Per ulteriori dettagli, fare riferimento alla risposta sulla creazione di una libreria .NET Framework, collegata in precedenza.
Una libreria di esempio e i relativi file di imballaggio sono available on GitHub. La soluzione corrispondente a questa risposta è SimpleUwpLibrary.
Grazie sinceramente per questo! Stavo incontrando dei problemi nel creare la mia libreria UWP e penso che questo abbia risolto i problemi per me. –
Inoltre: un TFM diverso che potrebbe essere usato (invece di 'uap10.0') è' netcore50'. –
La sottodirectory MyUwpLibrary viene creata solo se il flag GenerateLibraryLayout è impostato su true per la configurazione di build corrispondente. – halllo