<p>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?</p>

<p>The same question applies to VB6, C++ and other native Windows applications.</p>

[{'answer_id': 51691, 'author': 'DaveK', 'author_id': 4244, 'author_profile': 'https://Stackoverflow.com/users/4244', 'pm_score': 1, 'selected': False, 'text': '<p>I\'m not 100% sure if this can be accomplished without the stub, but this article may provide some insight:</p>\n\n<p><a href="http://blogs.msdn.com/g/archive/2008/06/06/sample-demonstrating-clickonce-deployment-of-com-component-implemented-in-managed-assembly-without-using-gac-or-registry-and-without-requiring-admin-rights.aspx" rel="nofollow noreferrer">How To: ClickOnce deployment for unmanaged app with COM component in managed assembly </a></p>\n'}, {'answer_id': 153754, 'author': 'codeConcussion', 'author_id': 1321, 'author_profile': 'https://Stackoverflow.com/users/1321', 'pm_score': 2, 'selected': False, 'text': '<p>No, the entry point to your app needs to be managed code.</p>\n\n<p>This is from a <a href="http://www.softinsight.com/bnoyes/CommentView,guid,5df8d49a-2a4e-45a6-af95-a0300c5ea5cd.aspx#commentstart" rel="nofollow noreferrer">blog post</a> by Brian Noyes, one of the main authorites on ClickOnce and author of <a href="https://rads.stackoverflow.com/amzn/click/com/0321197690" rel="nofollow noreferrer" rel="nofollow noreferrer">Smart Client Deployment with ClickOnce</a>.</p>\n\n<blockquote>\n  <p>If you app is REALLY legacy (i.e. VB6, MFC, ATL, etc.), as in an unmanaged code executable, then no, you cannot deploy it as an executable through ClickOnce.</p>\n</blockquote>\n\n<p>The accepted workaround seems to be a managed code stub exe that launches the main exe.</p>\n'}, {'answer_id': 1149048, 'author': 'Sake', 'author_id': 77996, 'author_profile': 'https://Stackoverflow.com/users/77996', 'pm_score': 4, 'selected': True, 'text': '<p>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.</p>\n\n<p>By the way, for Delphi you can use some thirdparty help:</p>\n\n<p><a href="http://www.tmssoftware.com/site/wupdate.asp" rel="nofollow noreferrer">http://www.tmssoftware.com/site/wupdate.asp</a></p>\n\n<p>UPDATED:</p>\n\n<p>For my implementation:</p>\n\n<p>MyApp.EXE will run in 3 different modes</p>\n\n<ol>\n<li><p>MyApp.EXE without any argument. This will start the application typically.</p>\n\n<p>1.1 The very first thing it does is to validate its own file-time with the server.</p>\n\n<p>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"</p>\n\n<p>1.3 Then it invoke "MyApp-YYYY-MM-DD-HH-MM-SS.exe" with command argument </p>\n\n<pre><code>MyApp-YYYY-MM-DD-HH-MM-SS.exe  --update MyApp.EXE\n</code></pre>\n\n<p>1.4 Terminate this application.</p>\n\n<p>1.5 If there is no update required then the application will start normally from 1.1</p></li>\n<li><p>MyApp.EXE --update "FILENAME".</p>\n\n<p>2.1 Try copying itself to "FILENAME" every 100ms until success.</p>\n\n<p>2.2 Invoke "FILENAME" when it success</p>\n\n<p>2.3 Invoke "FILNAME --delete MyApp-YYYY-MM-DD-HH-MM-SS.exe" to delete itself.</p>\n\n<p>2.4 Terminate</p></li>\n<li><p>MyApp.EXE --delete "FILENAME"</p>\n\n<p>3.1 Try deleting the file "FILENAME" every 500ms until success.</p>\n\n<p>3.2 Terminate</p></li>\n</ol>\n\n<p>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.</p>\n\n<p>Good Luck</p>\n'}]
['https://Stackoverflow.com/questions/51686', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/5362/']