Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Se decidi di impacchettare la tua app desktop in un pacchetto MSIX (vedi Creazione di un pacchetto MSIX dal codice), puoi pubblicare l'applicazione impacchettata su Microsoft Store o installarla manualmente su uno o più dispositivi.
Annotazioni
Si dispone di un piano per la transizione degli utenti all'applicazione in pacchetto? Prima di distribuire la tua app, consulta la sezione Trasferire gli utenti alla tua app confezionata di questa guida per ottenere alcune idee.
Distribuire l'applicazione pubblicandola in Microsoft Store
Il microsoft Store è un modo pratico per consentire ai clienti di ottenere la tua app.
Pubblicare l'applicazione in Microsoft Store per raggiungere il pubblico più ampio. Inoltre, i clienti dell'organizzazione possono acquisire l'applicazione per distribuire internamente alle proprie organizzazioni tramite Microsoft Store per le aziende.
Se prevedi di pubblicare in Microsoft Store, ti verranno poste alcune domande aggiuntive come parte del processo di invio. Questo perché il manifesto del pacchetto dichiara una funzionalità con restrizioni denominata runFullTrust ed è necessario approvare l'uso dell'applicazione di tale funzionalità. Per altre informazioni su questo requisito, vedere Funzionalità con restrizioni.
Non è necessario firmare l'applicazione prima di inviarla allo Store.
Importante
Se prevedi di pubblicare l'applicazione in Microsoft Store, assicurati che l'applicazione funzioni correttamente nei dispositivi che eseguono Windows 10 S o Windows 11 S. Si tratta di un requisito dello Store. Consulta Testa la tua app di Windows per Windows 10 S o Windows 11 S.
Distribuire l'applicazione senza inserirla in Microsoft Store
Se si preferisce distribuire l'applicazione senza usare lo Store, è possibile distribuire manualmente le app a uno o più dispositivi.
Questo potrebbe avere senso se vuoi un maggiore controllo sull'esperienza di distribuzione o non vuoi partecipare al processo di certificazione di Microsoft Store.
Per distribuire l'applicazione ad altri dispositivi senza inserirla nello Store, è necessario ottenere un certificato, firmare l'applicazione usando tale certificato e quindi trasferire localmente l'applicazione in tali dispositivi.
È possibile creare un certificato o ottenerlo da un fornitore popolare, ad esempio Verisign.
Se prevedi di distribuire l'applicazione su dispositivi che eseguono Windows 10 S o Windows 11 S, l'applicazione deve essere firmata da Microsoft Store, quindi dovrai passare attraverso il processo di invio allo Store prima di poter distribuire l'applicazione su tali dispositivi.
Se si crea un certificato, è necessario installarlo nell'archivio certificati Radice attendibile o nell'archivio certificati Persone attendibili su ogni dispositivo che esegue l'app. Se ottieni un certificato da un fornitore popolare, non dovrai installare nulla in altri sistemi oltre all'app.
Importante
Assicurarsi che il nome dell'editore nel certificato corrisponda al nome dell'editore dell'app.
Per firmare l'applicazione utilizzando un certificato, vedere Firmare un pacchetto di applicazione usando SignTool.
Per installare manualmente la propria applicazione su altri dispositivi, vedere Installare manualmente app LOB in Windows.
Eseguire la transizione degli utenti all'app pacchettizzata
Prima di distribuire la tua app, considera l'aggiunta di alcune estensioni al manifesto del pacchetto per aiutare gli utenti ad abituarsi a utilizzare la tua app pacchettizzata. Ecco alcune cose che puoi fare.
- Indirizzare i riquadri Start esistenti e i pulsanti della barra delle applicazioni alla tua applicazione pacchettizzata.
- Associare l'applicazione in pacchetto a un set di tipi di file.
- Configura la tua applicazione affinché apra determinati tipi di file per impostazione predefinita.
Per l'elenco completo delle estensioni e le linee guida su come usarle, consulta Guida per trasferire gli utenti alla tua app.
Considerate anche l'aggiunta di codice alla vostra applicazione impacchettata che esegue queste attività:
- Esegue la migrazione dei dati utente associati all'applicazione desktop nei percorsi di cartelle appropriati dell'app in pacchetto.
- Offre agli utenti la possibilità di disinstallare la versione desktop dell'app.
Parliamo di ognuna di queste attività. Si inizierà con la migrazione dei dati utente.
Eseguire la migrazione dei dati utente
Se si intende aggiungere codice che esegue la migrazione dei dati utente, è consigliabile eseguire tale codice solo quando l'applicazione viene avviata per la prima volta. Prima di eseguire la migrazione dei dati degli utenti, visualizzare una finestra di dialogo all'utente che spiega cosa accade, perché è consigliabile e cosa succederà ai dati esistenti.
Ecco un esempio di come eseguire questa operazione in un'applicazione confezionata basata su .NET.
private void MigrateUserData()
{
String sourceDir = Environment.GetFolderPath
(Environment.SpecialFolder.ApplicationData) + "\\AppName";
if (sourceDir != null)
{
DialogResult migrateResult = MessageBox.Show
("Would you like to migrate your data from the previous version of this app?",
"Data Migration", MessageBoxButtons.YesNo);
if (migrateResult.Equals(DialogResult.Yes))
{
String destinationDir =
Windows.Storage.ApplicationData.Current.LocalFolder.Path + "\\AppName";
Process process = new Process();
process.StartInfo.FileName = "robocopy.exe";
process.StartInfo.Arguments = "%LOCALAPPDATA%\\AppName " + destinationDir + " /move";
process.StartInfo.CreateNoWindow = true;
process.Start();
process.WaitForExit();
if (process.ExitCode > 1)
{
//Migration was unsuccessful -- you can choose to block/retry/other action
}
}
}
}
Disinstallare la versione desktop dell'app
È meglio non disinstallare l'applicazione desktop degli utenti senza prima chiedere l'autorizzazione. Consente di visualizzare una finestra di dialogo che chiede all'utente tale autorizzazione. Gli utenti potrebbero decidere di non disinstallare la versione desktop dell'app. In tal caso, dovrai decidere se vuoi bloccare l'utilizzo dell'applicazione desktop o supportare l'uso side-by-side di entrambe le app.
Ecco un esempio di come eseguire questa operazione in un'applicazione confezionata basata su .NET.
Per visualizzare il contesto completo di questo frammento di codice, vedere il file MainWindow.cs di questo visualizzatore di immagini WPF di esempio con transizione/migrazione/disinstallazione.
private void RemoveDesktopApp()
{
//Typically, you can find your uninstall string at this location.
String uninstallString = (String)Microsoft.Win32.Registry.GetValue
(@"HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion" +
@"\Uninstall\{7AD02FB8-B85E-44BC-8998-F4803BA5A0E3}\", "UninstallString", null);
//Detect if the previous version of the Desktop application is installed.
if (uninstallString != null)
{
DialogResult uninstallResult = MessageBox.Show
("To have the best experience, consider uninstalling the "
+ " previous version of this app. Would you like to do that now?",
"Uninstall the previous version", MessageBoxButtons.YesNo);
if (uninstallResult.Equals(DialogResult.Yes))
{
string[] uninstallArgs = uninstallString.Split(' ');
Process process = new Process();
process.StartInfo.FileName = uninstallArgs[0];
process.StartInfo.Arguments = uninstallArgs[1];
process.StartInfo.CreateNoWindow = true;
process.Start();
process.WaitForExit();
if (process.ExitCode != 0)
{
//Uninstallation was unsuccessful - You can choose to block the application here.
}
}
}
}
Passaggi successivi
Hai domande? Chiedeteci nel Tech Community.
Se si verificano problemi durante la pubblicazione dell'applicazione nello Store, questo post di blog contiene alcuni suggerimenti utili.