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