.net Passion


Alessio Pavan's Blog

Upgrade applicazione in esecuzione con "ShadowCopy"

In questi giorni stò realizzando un programmino che mi permetta di aggiornare i vari software che ho realizzato tramite web.

Purtruppo clickOnce non fà al mio caso, quindi giù di codice...

La cosa interessante che ho scoperto (grazie a mitico Corrado Cavalli) è la possibilità di aggiornare l'exe dell'applicazione mentre questo è in esecuzione.

Basta eseguire la nostra applicazione in AppDomain dedicato impostando la proprietà ShadowCopy a true.

Quindi creando un stub-loader nella stessa directory dove risiede il programma che si deve lanciare sarà possibile sostiure il file exe dell'applicazione mentre questa è in esecuzione. Ficussssss!!!

Ecco il codice della classe che ho realizzato :

Imports System.Configuration

Public Class stub

Shared Sub Main(ByVal cmdArgs() As String)

Try

Dim MainDomain As New System.AppDomainSetup()

MainDomain.ShadowCopyFiles = "true"

Dim dm As AppDomain = AppDomain.CreateDomain("Web_Update", AppDomain.CurrentDomain.Evidence, MainDomain)

dm.ExecuteAssembly("application.exe", dm.Evidence)

AppDomain.Unload(dm)

Catch ex As Exception

MsgBox(ex.Message, MsgBoxStyle.Critical, "Error Start Application")

End Try

End Sub

End Class

Categoria: VISUAL BASIC
mercoledì, 01 ott 2008 Ore. 17.12
Ora e Data
Statistiche
  • Views Home Page: 37.001
  • Views Posts: 60.037
  • Views Gallerie: 4.082
  • n° Posts: 39
  • n° Commenti: 9
Mappa
Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003