Warning: Declaration of LJXP_Walker_Category_Checklist::start_lvl(&$output, $depth, $args) should be compatible with Walker::start_lvl(&$output, $depth = 0, $args = Array) in /home/victorsergienko/victorsergienko.com/wp-content/plugins/lj-xp/lj-xp-options.php on line 796

Warning: Declaration of LJXP_Walker_Category_Checklist::end_lvl(&$output, $depth, $args) should be compatible with Walker::end_lvl(&$output, $depth = 0, $args = Array) in /home/victorsergienko/victorsergienko.com/wp-content/plugins/lj-xp/lj-xp-options.php on line 796

Warning: Declaration of LJXP_Walker_Category_Checklist::start_el(&$output, $category, $depth, $args) should be compatible with Walker::start_el(&$output, $object, $depth = 0, $args = Array, $current_object_id = 0) in /home/victorsergienko/victorsergienko.com/wp-content/plugins/lj-xp/lj-xp-options.php on line 796

Warning: Declaration of LJXP_Walker_Category_Checklist::end_el(&$output, $category, $depth, $args) should be compatible with Walker::end_el(&$output, $object, $depth = 0, $args = Array) in /home/victorsergienko/victorsergienko.com/wp-content/plugins/lj-xp/lj-xp-options.php on line 796

Warning: Cannot modify header information - headers already sent by (output started at /home/victorsergienko/victorsergienko.com/wp-content/plugins/lj-xp/lj-xp-options.php:796) in /home/victorsergienko/victorsergienko.com/wp-content/plugins/wp-super-cache/wp-cache-phase2.php on line 60
code name / Self-update library for .NET using WiX: DotUpdater
Skip to content

Self-update library for .NET using WiX: DotUpdater


Just published a library I created on one of past jobs out of Updater Application Block and WiX’s ClichThrough component.
Please meet: DotUpdater
It can auto-update an application, just create a RSS feed of updates and Windows Installer (MSI) binaries.

19 Comments

  1. Ryan wrote:

    It looks like this would be very useful. I really want to try it out but I am not sure exactly where to start. Just a quick question and I apologize if this is a really simple question.

    I am curious – will this work with any rss? I am curious how you generated the rss file?

    It looks like I need an rss feed and a setup.exe. Then for checking if an update is available I need to “CheckForUpdates” using the updater?

    Posted on 13-Sep-09 at 07:52 | Permalink
  2. Ryan wrote:

    Also – I am curious, is there any basic example or instructions on how to use the WaitExec and PostExit. Is it that you pass the PID of the running app that needs updating to WaitExec and then pass the PID of the WaitExec to the PostExit? Then the filename of the setup.exe to the PostExit?

    I think I’m missing something… umm…

    Posted on 13-Sep-09 at 08:36 | Permalink
  3. You’re right, I need to elaborate on some kickstart instructions.

    Will do when I have the time.

    Definitely, not every RSS, only one of a specific structure, containing version, file path, etc.
    You need a RSS feed and a MSI, not EXE file – a full new version installer package.

    You don’t need to use WaitExec or PostExit binaries, it’s an internal stuff. They don’t have instructions included, but the code is pretty clear.

    UPDATE: Quickly hacked a quickstart guide out of old code. Feel free to ask questions.

    Posted on 14-Sep-09 at 15:41 | Permalink
  4. Ryan wrote:

    Thank you so much for the quickstart guide and the fast response! This will be very helpful!

    Posted on 15-Sep-09 at 06:20 | Permalink
  5. KraKot wrote:

    Hello! I’ve read u previous article about update! I have msi instuller made with WiX and need updater. I tried ClickOnce but as far as u understand, application should be published with ClickOnce, not msi to use update clickonce. In your dotupdater there is only dll file, could u tell the main stratagy u use to create this library,if its possible.Thanks a lot!

    Posted on 13-Jan-10 at 15:59 | Permalink
  6. Fernando wrote:

    Victor, thanks a lot. It looks like this would be very useful. I have being 4 or 6 hours checking your source code. I had to convert it to vb.net, but after that it has begun to work.

    But I don’t know how to make rss files. I don’t understand very well your “readme.txt” guide. I don’t use NANT so I will write my own rss files with notepad++ or similar.

    Could you help me ? What is exactly the struture of rss files ? Is it easy to do with notepad++ ?

    Thanks a lot.

    NOTE: When I finish my work, I will write you back with all of my experiencie in it. May be you want to publish my “little experiencie”.

    THANKS

    Posted on 17-Mar-10 at 01:11 | Permalink
  7. Fernando wrote:

    Finally I managed with RSS files, but I’ve another problem.

    MSI starts, but nothing happen. I don’t why, may be the parameters used in msiexec ????

    Could you help me ? Thanks a lot.

    Posted on 18-Mar-10 at 23:54 | Permalink
  8. Fernando wrote:

    I have bien trying MSIEXEC. But I haven’t found any explanation. Also if I run from command line, it doesn’t work.
    But if I run setup.exe (bootstrapper made by Visual Studio), it installs msi fine, and update the version.
    I don’t know why. The setup.exe only check for NET 2.0 (it is impossible to delete this dependency).
    Could you help me ? Do you have a test application (both versiones) ?

    NOTE: I also check to change major version and not only minor version, but none works.

    Thanks

    Posted on 20-Mar-10 at 17:20 | Permalink
  9. Hi Fernando.

    I don’t see why did you have to translate the source to VB, but whatever.

    Sorry, that’s not enough details for me to clearly see the problem.

    Anyway, MSIEXEC needs to be run with specific arguments, run “msiexec /?” to see them. That might be it.

    Posted on 21-Mar-10 at 18:39 | Permalink
  10. Fernando wrote:

    I finally find the solution, but I don’t know why is this happening.

    This works: c:\setup1.msi /qb
    This also works: msiexec /i c:\setup1.msi /qb

    BUT this doesn’t work (your default command): msiexec /i c:\setup1.msi /qb REINSTALL=ALL REINSTALLMODE=vomus
    It doesn’t do anything.

    Victor, do you know why ? Thanks a lot.

    Posted on 22-Mar-10 at 01:18 | Permalink
  11. For now, no idea. I had some issues with msiexec, but IIRC current command corresponds to documentation and worked for me.

    Are you reinstalling the same package as already installed, or did you rebuild it/update its version? “vomus” doesn’t reinstall the same package, as far as I can remember now.
    This is the intended behavior.

    For debugging, try adding “a” or something else.

    Posted on 22-Mar-10 at 12:48 | Permalink
  12. Fernando wrote:

    Yes I change version (both exe project, and Setup project) and product code in setup project, not upgrade code.

    I try vomus, vamus, and others …

    Do you know what I’m doing wrong ? May be I don’t have to change the product code and version in exe or in setup project ? (now I change both)

    Thanks a lot. (may be you can pulbish your test application ?)

    Posted on 22-Mar-10 at 19:31 | Permalink
  13. Fernando wrote:

    I finally found the key. I mean:

    first option: with your command, it’s necessary NOT to change the setup project version.
    second option: with my command, it’s necessary to change the setup project version

    In both options it’s necessary to change main app version.

    My last question is: with the first option (your command line), I you go to add/remove programs in Control Panel, you will see always “version 1.0”, it doesn’t update.

    Do you know how to update the “version” that appears in add/remove programs window ?

    Thanks a lot

    Posted on 28-Mar-10 at 00:08 | Permalink
  14. Fernando wrote:

    Anyone ?

    Posted on 09-Apr-10 at 13:02 | Permalink
  15. Sorry for abandoning your comments.
    Anyway, now I can’t tell you, as I lost my expertise in Installer long ago 8(

    Posted on 19-Oct-10 at 19:04 | Permalink
  16. Marcel wrote:

    Is there dotUpdater port for .NET Framework 2.0 ? Seems to me as it requires .NET Framework 1.1 ?

    Posted on 21-Jun-11 at 11:15 | Permalink
  17. Marcel, it’s definitely for 2.0.

    Posted on 21-Jun-11 at 19:01 | Permalink
  18. Todd D wrote:

    Victor, have you stopped development or supporting the dotupdater? I assume that this is the case with the statement that you ‘lost your expertise with installer’.

    Posted on 22-Dec-11 at 21:00 | Permalink
  19. @Todd D, long ago. Though I gave committer rights on Codeplex to someone, and can give more 🙂

    I meant that currently I am hardly able to answer questions about Windows Installer.

    Posted on 27-Dec-11 at 17:17 | Permalink

One Trackback/Pingback

  1. […] Update: for a ready solution (library), see official release announcement […]

Post a Comment

Your email is never published nor shared.