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.
In Visual Studio è possibile compilare progetti dalla riga di comando, anche se vengono creati nell'ambiente di sviluppo integrato (IDE). In effetti, è possibile ricompilare un progetto creato con Visual Studio in un altro computer in cui è installato solo .NET 5 o versione successiva. Questa funzionalità consente di riprodurre una compilazione usando un processo automatizzato, ad esempio in un lab di compilazione centrale o con tecniche di scripting avanzate oltre l'ambito di compilazione del progetto stesso.
Annotazioni
Per compilare applicazioni ClickOnce di .NET Framework dalla riga di comando, vedere Compilare applicazioni ClickOnce dalla riga di comando.
Usare MSBuild per riprodurre le distribuzioni di applicazioni ClickOnce .NET
Quando si richiama msbuild /target:publish dalla riga di comando, questo comando indica al sistema MSBuild di compilare il progetto e creare un'applicazione ClickOnce nella cartella publish. Questo comando equivale a selezionare il comando Pubblica nell'IDE.
Questo comando esegue msbuild.exe, che si trova nel percorso nell'ambiente del prompt dei comandi di Visual Studio.
Un "target" è un indicatore per MSBuild su come elaborare un comando. Le destinazioni chiave sono la destinazione "build" e la destinazione "publish". La destinazione di compilazione equivale a selezionare il comando Compila (o premere F5) nell'IDE. Se si vuole compilare solo il progetto, è possibile immettere msbuild. Questo comando funziona perché la destinazione di compilazione è la destinazione predefinita per tutti i progetti generati da Visual Studio. Di conseguenza, non è necessario specificare in modo esplicito la destinazione di compilazione. Pertanto, immettere msbuild è la stessa operazione di immettere msbuild /target:build.
Il /target:publish comando indica a MSBuild di richiamare la destinazione di pubblicazione. La destinazione di pubblicazione dipende dalla destinazione di compilazione, il che significa che l'operazione di pubblicazione è un superset dell'operazione di compilazione. Ad esempio, se è stata apportata una modifica ai file di origine di Visual Basic o C#, l'operazione di pubblicazione ricompila automaticamente l'assembly corrispondente.
Per informazioni sulla generazione di una distribuzione ClickOnce completa tramite lo strumento da riga di comando Mage.exe per creare il manifesto ClickOnce, vedere Procedura dettagliata: Distribuire manualmente un'applicazione ClickOnce.
Creare e compilare un'applicazione ClickOnce di base con MSBuild
Il modo più semplice per creare un profilo di pubblicazione consiste nell'usare Visual Studio. Per pubblicare con MSBuild è necessario un profilo di pubblicazione.
Creare e pubblicare un progetto ClickOnce
Aprire Visual Studio e creare un nuovo progetto.
Scegliere il modello di progetto App Windows Forms o applicazione WPF e denominare il progetto
CmdLineDemoe quindi creare il progetto.Fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e scegliere Pubblica.
Questo passaggio garantisce che il progetto sia configurato correttamente per produrre una distribuzione dell'applicazione ClickOnce.
Verrà visualizzata la pagina Pubblica.
Nella pagina Pubblica selezionare Aggiungi un profilo di pubblicazione, fare clic su ClickOnce e quindi selezionare Fine.
Per questo esercizio, è possibile ignorare le altre impostazioni di configurazione nella pagina Pubblica.
Al termine del processo, selezionare Chiudi per uscire dalla finestra di dialogo Pubblica pagina.
Seleziona Pubblica.
Visual Studio genera l'output della distribuzione ClickOnce.
Salvare il progetto e prendere nota del percorso della cartella in cui è archiviato.
I passaggi precedenti creano un progetto ClickOnce pubblicato per la prima volta. È ora possibile riprodurre la compilazione all'esterno dell'IDE.
Riprodurre la compilazione dalla riga di comando
Uscire da Visual Studio.
Dal menu Start di Windows selezionare Strumenti>riga di comando Prompt dei comandi> per sviluppatori.
Verrà visualizzato il prompt dei comandi per gli sviluppatori di Visual Studio.
Nel prompt dei comandi di Visual Studio verificare che la directory corrente mostri il percorso del progetto compilato in precedenza.
Se non si lavora nella directory del progetto, immettere un comando per passare al percorso desiderato, ad esempio
chdir C:\Users\username\source\repos\CmdLineDemo.Per rimuovere i file esistenti prodotti nella sezione precedente, immettere
rmdir /s publish.Questo passaggio è facoltativo, ma garantisce che la compilazione della riga di comando produa tutti i nuovi file.
Per .NET 5 e versioni successive, la compilazione di applicazioni ClickOnce .NET dalla riga di comando è un'esperienza simile. La differenza è che è necessario fornire una proprietà aggiuntiva per il profilo di pubblicazione nella riga di comando di MSBuild.
Inserisci
msbuild /target:publish /p:PublishProfile=<pubxml file> /p:PublishDir="<specific location>".I passaggi precedenti producono una distribuzione completa dell'applicazione ClickOnce in una sottocartella del progetto denominato publish. CmdLineDemo.application è il manifesto della distribuzione ClickOnce. La cartella CmdLineDemo_1.0.0.0 contiene i file CmdLineDemo.exe e CmdLineDemo.exemanifesto dell'applicazione ClickOnce. Setup.exe è il programma di avvio automatico, che per impostazione predefinita è configurato per installare .NET. I file in questa cartella comprendono l'intero set di file necessario per distribuire la tua applicazione sul Web o via UNC o CD/DVD.
Annotazioni
Il sistema MSBuild usa l'opzione PublishDir per specificare il percorso per l'output, ad esempio msbuild /t:publish /p:PublishProfile=<pubxml file> /p:PublishDir="<specific location>".
Pubblicare l'output del processo
MSBuild usa la PublishDir proprietà per impostare il percorso di output della compilazione, inclusi gli artefatti di compilazione. Il PublishDir valore usato da MSBuild come destinazione per la pubblicazione viene ottenuto per impostazione predefinita dalla PublishDir proprietà nel file pubxml (.NET). È anche possibile eseguire l'override di questo comportamento nella riga di comando di MSBuild usando l'opzione /p . Se si modifica l'impostazione, l'output di pubblicazione viene reindirizzato al percorso specificato. L'output viene generato durante il passaggio di pubblicazione di MSBuild. Qualsiasi destinazione MSBuild con AfterTargets="ClickOncePublish" viene eseguita dopo l'esecuzione di questa copia.
La PublishUrl proprietà, diversamente da PublishDir, non viene usata nel passaggio MSBuild.
PublishUrl viene ignorato quando si richiama MSBuild direttamente per la pubblicazione dalla riga di comando.
Quando la Pubblicazione viene avviata nell'IDE di Visual Studio, Visual Studio richiama MSBuild per pubblicare gli artefatti al percorso PublishDir. Al termine di questo passaggio di MSBuild, Visual Studio pubblica quindi i file specifici di ClickOnce nel percorso indicato da PublishUrl. Questo secondo passaggio viene eseguito all'interno del processo di Visual Studio. Non è possibile inserire alcuna destinazione/attività da eseguire durante questo passaggio perché si tratta di un processo di Visual Studio.
Per le distribuzioni di MSBuild che non usano Visual Studio, copiare tutti i file dalla directory di distribuzione alla destinazione di distribuzione o sui mezzi di distribuzione. La directory di distribuzione può essere una cartella in un sito Web o in un sito FTP, una condivisione file o un CD-ROM. Ad esempio, è possibile usare uno strumento di terze parti o un'attività MSBuild personalizzata per copiare i file ClickOnce.
Per qualsiasi post-elaborazione nella PublishUrl cartella, è necessario disporre di uno script separato.
Importante
Se PublishDir è impostato sullo stesso percorso di PublishUrl, l'output di compilazione viene duplicato e copiato nel percorso PublishUrl. È possibile evitare questo problema in Visual Studio 2022 versione 17.4 e successive creando un nuovo profilo. Il nuovo profilo imposta PublishDir su una posizione diversa da PublishUrl. Al termine dell'operazione di pubblicazione, i file ClickOnce pertinenti vengono copiati dalla posizione PublishDir alla posizione PublishUrl.
Proprietà di pubblicazione
Quando si pubblica l'applicazione usando le procedure precedenti, le proprietà seguenti vengono inserite nel file del profilo di pubblicazione per i progetti .NET (.NET 5 e versioni successive). Queste proprietà influiscono direttamente sulla modalità di produzione dell'applicazione ClickOnce.
In .pubxml:
<AssemblyOriginatorKeyFile>WindowsApplication3.snk</AssemblyOriginatorKeyFile>
<GenerateManifests>true</GenerateManifests>
<TargetZone>LocalIntranet</TargetZone>
<PublisherName>Microsoft</PublisherName>
<ProductName>CmdLineDemo</ProductName>
<PublishUrl>http://localhost/CmdLineDemo</PublishUrl>
<Install>true</Install>
<ApplicationVersion>1.0.0.*</ApplicationVersion>
<ApplicationRevision>1</ApplicationRevision>
<UpdateEnabled>true</UpdateEnabled>
<UpdateRequired>false</UpdateRequired>
<UpdateMode>Foreground</UpdateMode>
<UpdateUrlEnabled>false</UpdateUrlEnabled>
<IsWebBootstrapper>true</IsWebBootstrapper>
<BootstrapperEnabled>true</BootstrapperEnabled>
È possibile eseguire l'override di queste proprietà nella riga di comando senza modificare il file di progetto stesso. Ad esempio, il codice seguente compila la distribuzione dell'applicazione ClickOnce senza il programma di avvio automatico:
msbuild /target:publish /p:PublishProfile=<pubxml file> /property:BootstrapperEnabled=false
Le proprietà di pubblicazione vengono controllate in Visual Studio dalle pagine delle proprietà Pubblica, Sicurezza e Firma di Progettazione del progetto. Per i progetti .NET (.NET 5 e versioni successive), queste impostazioni vengono fornite nel file pubxml, accessibile in Visual Studio tramite lo strumento Pubblica.
Le proprietà di pubblicazione seguenti vengono impostate in varie pagine delle proprietà della finestra di progettazione dell'applicazione.
-
AssemblyOriginatorKeyFiledetermina il file di chiave usato per firmare i manifesti dell'applicazione ClickOnce. Anche questa stessa chiave potrebbe essere utilizzata per assegnare un nome forte ai tuoi assembly. Questa proprietà viene impostata nella pagina Firma di Progettazione del progetto. Per le applicazioni Windows .NET, questa impostazione rimane nel file di progetto.
Nella pagina Pubblica sono impostate le proprietà seguenti:
PublishUrlè il percorso in cui l'applicazione viene pubblicata nell'IDE. Viene inserito nel manifesto dell'applicazione ClickOnce se né la proprietàInstallUrlné la proprietàUpdateUrlsono specificate.ApplicationVersionspecifica la versione dell'applicazione ClickOnce. La versione è un numero a quattro cifre. Se l'ultima cifra è un "*" (asterisco), vieneApplicationRevisionsostituito dal valore inserito nel manifesto in fase di compilazione.ApplicationRevisionspecifica la revisione. Questo valore è un numero intero, che incrementa ogni volta che si pubblica nell'IDE. Si noti che non viene incrementato automaticamente per le compilazioni eseguite nella riga di comando.Installdetermina se l'applicazione è un'applicazione installata o un'applicazione run-from-Web.InstallUrl(non visualizzato) è il percorso da cui gli utenti installano l'applicazione. Se specificato, questo valore viene incorporato nel bootstrapper setup.exe se la proprietàIsWebBootstrapperè abilitata. Viene inoltre inserito nel manifesto dell'applicazione seUpdateUrlnon è specificato .SupportUrl(non visualizzato) è il percorso collegato nella finestra di dialogo Aggiungi/Rimuovi Programmi per un'applicazione installata.
Nella finestra di dialogo Aggiornamenti applicazione sono impostate le proprietà seguenti, a cui si accede dalla pagina Pubblica .
UpdateEnabledindica se l'applicazione deve verificare la disponibilità di aggiornamenti.UpdateModespecifica gli aggiornamenti in primo piano. Per i progetti .NET (.NET 5 e versioni successive), Lo sfondo non è supportato.UpdateUrl(non visualizzato) è il percorso da cui l'applicazione riceve gli aggiornamenti. Se specificato, questo valore viene inserito nel manifesto dell'applicazione.
Le proprietà seguenti vengono impostate nella finestra di dialogo Opzioni di pubblicazione , a cui si accede dalla pagina Pubblica .
PublisherNamespecifica il nome del server di pubblicazione visualizzato nel prompt visualizzato durante l'installazione o l'esecuzione dell'applicazione. Per un'applicazione installata, viene usato anche per specificare il nome della cartella nel menu Start .ProductNamespecifica il nome del prodotto visualizzato nel prompt visualizzato durante l'installazione o l'esecuzione dell'applicazione. Per un'applicazione installata, viene utilizzato anche per specificare il nome del collegamento nel menu Start.
Nella finestra di dialogo Prerequisiti sono impostate le proprietà seguenti, a cui si accede dalla pagina Pubblica .
BootstrapperEnableddetermina se generare il programma di avvio automatico setup.exe .IsWebBootstrapperdetermina se il programma di avvio automaticosetup.exefunziona sul Web o in modalità basata su disco.
Opzioni di utilizzo: InstallURL, SupportUrl, PublishURL, UpdateURL
La tabella seguente illustra le quattro opzioni URL per la distribuzione ClickOnce.
| Opzione URL | Description |
|---|---|
PublishURL |
Obbligatorio per pubblicare l'applicazione ClickOnce in un sito Web. |
InstallURL |
Optional. Impostare questa opzione URL se il sito di installazione è diverso da PublishURL. Ad esempio, è possibile impostare su PublishURL un percorso FTP e impostare su InstallURL un URL Web. |
SupportURL |
Optional. Impostare questa opzione URL se il sito di supporto è diverso da PublishURL. Ad esempio, potresti impostare il SupportURL sul sito Web di supporto tecnico della tua azienda. |
UpdateURL |
Optional. Impostare questa opzione URL se il percorso di aggiornamento è diverso da InstallURL. Ad esempio, è possibile impostare su PublishURL un percorso FTP e impostare su UpdateURL un URL Web. |