Creare uno UserControl per Windows 8 app e distribuirlo
Nei giorni scorsi mi sono scontrato con il problema indicato dal titolo del post. La procedura non è poi così diversa da quella a cui ero già abituato:
- Creare un progetto di tipo Class Library (Windows Store apps)
- Aggiungere un “New Item” al progetto e selezionare “User Control”
- Sviluppare il controllo, scrivendo XAML, codice, code-behind, etc. etc.: tutto ciò che volete
Il bello arriva quando volete distribuire il vostro controllo. Normalmente, infatti, compilereste il progetto di cui sopra e dareste in giro l’assembly che avete ottenuto. Quindi, se avete creato un progetto chiamato “CheBelloIlMioControllo”, quando compilate ottenete un assembly chiamato “CheBelloIlMioControllo.dll”.
Non è sufficiente. La sola dll non è sufficiente. Dovete distribuire anche lo XAML relativo ai vostri controlli, e lo dovete fare in un modo piuttosto particolare.
Rispetto alla location in cui si trova l’assembly, dovete:
- Creare un folder chiamato esattamente come la dll (nel nostro esempio “CheBelloIlMioControllo”)
- Nel folder di cui sopra dovete copiare i files XAML relativi al controllo
Se il controllo nel vostro progetto è stato creato all’interno di un folder, la struttura di folder diventa: NomeAssembly/NomeFolder/NomeFileXaml.
Ultima cosa assolutamente importante: dovete distribuire anche il file con estensione .PRI, che ha lo stesso nome del nostro assembly.
Ecco un piccolo esempio:
L’assembly si chiama VivendoByteToolkit. I controlli sono stati creati dentro il folder Controls, che quindi contiene i tre files XAML relativi ai tre controlli: CurrencyPicker.xaml, DatePicker.xaml e NumberPicker.xaml.
All’interno del folder VivendoByteToolkit ho inserito il file VivendoByteToolkit.dll e VivendoByteToolkit.pri.
Direi che è tutto.