2010-02-16 12 views
5

Sto utilizzando VS2008 per pubblicare i file dell'applicazione utilizzando ClickOnce. Ho letto da qualche parte che ClickOnce fa in modo intelligente solo aggiornamenti parziali; nel senso che scarica solo i file dalla condivisione di rete se il file è cambiato negli aggiornamenti successivi. Tuttavia, questo non funzionava per me. Quindi ho fatto delle ricerche e sono incappato in questo articolo MSDN - http://msdn.microsoft.com/en-us/library/ms404267.aspx. Dice che se costruiamo usando VS, non esegue gli aggiornamenti parziali. Qualcuno può dirmi perché questo è il caso? Se è così, c'è un modo per far sì che le DLL di riferimento vengano scaricate solo per la prima volta. Sto usando Microsoft Practices Enterprise Library e alcuni controlli di terze parti (con enormi file Tema).Aggiornamenti di applicazione parziali in ClickOnce utilizzando la build di Visual Studio

Grazie, uniball

risposta

7

aggiornamenti parziali funzionano bene in ClickOnce, anche quando si costruisce in VS. Tuttavia, se si dispone di una soluzione composta da alcuni progetti (ad esempio un paio di progetti di librerie di classi e un eseguibile), in qualsiasi momento si ricompilano tutti i progetti, il timestamp sui file di assieme cambierà, anche se il codice non lo è. Dal momento che ClickOnce guarda solo i timestamp per decidere se un file deve essere aggiornato, gli aggiornamenti (invariati) verranno visualizzati come nuovi file quando l'utente si aggiorna.

La soluzione è estrarre qualsiasi progetto dipendente dal file di soluzione del file eseguibile e crearli separatamente. Ciò significa che tutti gli assembly il cui codice non cambia molto spesso verranno solo abbattuti sul client una sola volta. Se è necessario modificare l'assembly, è sufficiente aprire la sua soluzione e apportare le modifiche, quindi riaprire la soluzione del file eseguibile e ricostruirla. Il prossimo aggiornamento ClickOnce farà scendere sia l'exe che l'assembly modificato.

Spero che sia abbastanza chiaro!

+0

Grazie! Questo ha chiarito le cose. – user274816

+0

Se provi questo e scopri che sta ancora scaricando le DLL, chiamale con forza. Penso che debbano essere fortemente intitolati per fare in modo che ClickOnce NON li scarichi, anche se le versioni non sono cambiate. – RobinDotNet

+0

Per la nostra applicazione abbiamo dovuto impostare anche l'applicazione Full-trust flag nelle impostazioni del progetto per l'aggiornamento delle DLL parziali, non solo con la denominazione forte – VMAtm

Problemi correlati