Abbiamo un componente aggiuntivo di Outlook che utilizza la distribuzione ClickOnce.Implementazione ClickOnce con MSBuild -> Come passare il numero di build corrente per versione dell'applicazione/o autoincremento
Una volta che lo sviluppatore ha controllato la build, il PC mette in coda una build e l'applicazione viene pubblicata in una posizione su un'unità condivisa.
Il problema è che la build non modifica la versione di pubblicazione nella versione corrente dell'assembly e quindi pubblica nella cartella della versione precedente che risulta in un programma di installazione danneggiato che dice che la versione non può essere installata.
Ho letto that article. E ho impostato [assembly: AssemblyVersion ("1.0. *")]. Ancora niente.
Ho trovato un modo per ovviare a questo problema incrementando lo <ApplicationVersion></ApplicationVersion>
nel file * .csproj. Ma voglio che sia automatizzato.
L'altra soluzione era durante l'esecuzione msbuild.exe:
/target:publish /property:PublishDir="\\sharedDir\\" /property:GenerateManifests=true
/property:ApplicationVersion=1.0.0.123
E ancora non è automatizzato. Mi piacerebbe davvero passare il numero di build corrente su msbuild.exe o su ogni build sostituire il valore in <ApplicationVersion></ApplicationVersion>
con il numero di build effettivo. oppure c'è un'altro modo?
Che server di build stai usando? Regolazione automatica della velocità? Jenkins/Hudson? TFS? –
Il server di build è TFS. –
Sulla base della mia sperimentazione personale, ritengo che l'incremento del valore nel file * .csproj sia il modo corretto e più semplice per la creazione automatica di un'applicazione ClickOnce. In tal modo i manifesti si rivelano corretti. Se si passa semplicemente a /t:ApplicationVersion=a.b.c.d, questo NON ricrea correttamente il manifest dell'applicazione. Basta automatizzare l'incremento di quel valore nel file * .csproj tramite una stringa sostituita e quindi eseguire MSBuild SENZA il valore/t: ApplicationVersion e tutto dovrebbe andare bene. Lo faccio e gli aggiornamenti automatici funzionano alla grande. –