Is it possible to deploy a native Delphi application with ClickOnce
clickonce, delphi, deployment
Solution
Personally, I build my own mechanism to kick off self update process when my application timestamp is out of sync with the server. Not too difficult, but it's not a simple task.
By the way, for Delphi you can use some thirdparty help:
http://www.tmssoftware.com/site/wupdate.asp
UPDATED:
For my implementation:
MyApp.EXE will run in 3 different modes
MyApp.EXE without any argument. This will start the application typically.
1.1 The very first thing it does is to validate its own file-time with the server.
1.2 If update is required then it will download the updated file to the file named "MyApp-YYYY-MM-DD-HH-MM-SS.exe"
1.3 Then it invoke "MyApp-YYYY-MM-DD-HH-MM-SS.exe" with command argument
MyApp-YYYY-MM-DD-HH-MM-SS.exe --update MyApp.EXE
1.4 Terminate this application.
1.5 If there is no update required then the application will start normally from 1.1
MyApp.EXE --update "FILENAME".
2.1 Try copying itself to "FILENAME" every 100ms until success.
2.2 Invoke "FILENAME" when it success
2.3 Invoke "FILNAME --delete MyApp-YYYY-MM-DD-HH-MM-SS.exe" to delete itself.
2.4 Terminate
MyApp.EXE --delete "FILENAME"
3.1 Try deleting the file "FILENAME" every 500ms until success.
3.2 Terminate
I've already been using this scheme for my application for 7 years and it works well. It could be quite painful to debug when things goes wrong since the steps involve many processes. I suggest you make a lot of trace logging to allow simpler trouble-shooting.
Good Luck
Problem
Is it possible to deploy a native Delphi application with ClickOnce without a stub C# exe that would be used to launch the Delphi application? The same question applies to VB6, C++ and other native Windows applications.