Why not become a lifetime supporting member of the site with a one-time donation of any amount? Your donation entitles you to a ton of additional benefits, including access to exclusive discounts and downloads, the ability to enter monthly free software drawings, and a single non-expiring license key for all of our programs.

You must sign up here before you can post and access some areas of the site. Registration is totally free and confidential.

PrefaceI'm afraid I'm too lacy this year to do much spare time coding. Nevertheless, I've made a tool last year which might or might not proof useful for one or the other fellow coder and which I'd like to offer for this year's NANY. Some remarks: First, it's a tool made for programmers, i.e. SW end users probably won't have much use for it. Second, it's a tool that solves a problem which probably most programmers have already solved for themselves, one way or the other. And finally, I could well imagine that some other (and better) tool already exists to solve this same problem.

So here I present UpdateVersion!

DescriptionUpdateVersion is a command line tool that can update some target files containing version information with the actual version information extracted from some source file. It is implemented with some flexibility and extensibility in mind.

Executing that batch file will first update the two files required by DCUpdater using version information extracted directly from the plugin. It will then zip everything up ready to be uploaded to the web site.

While updating these two files is not very difficult, the advantage of the tool comes when you either do it very often (saves time), or when you do it very rarely (and have forgotten what you actually have to change).

FeaturesDescription says it all really.

Planned FeaturesI'm open for suggestions.

ScreenshotsWill come but will be very boring!

UsageInstallationNo installation required, just copy the .EXE and .XML to some directory.

Using the ApplicationSee Closing remarks.

UninstallationDelete the directory where the .EXE and .XML file are.

Known IssuesNone that I know of.

Closing remarksI understand that this tool is of very limited value to most of the donationcoder community. Nevertheless, I'll make the following pledge:

If a single person states here that he might maybe have use for the tool, I'll actually add some documentation to it And of course I'm also open for feature requests if anyone should have some similar requirements.

I've started to create an installer for the FarrMilk plugin (and will do so for the other plugins as well). I'm using Inno Setup for that. So UpdateVersion can now also update the AppVersion field in .iss files.

Hm, though this is useful, you do know that Inno Setup with the ISPP preprocessor (comes standard with the Quick Setup Pack) does have fabulous support for pre-compile scripting/processing, amongst which is version extraction from exe/dll version resources, and even from textfiles when pressed? I'd not pursue in this direction further as it's 'already there'...Examples and much more is available from the news groups at the jrsoftware.org site.

Inno Setup is ofcourse the best choice you can make for a free installer tool

Thanks Ath. No, I didn't know. Well, it's not really a question of pursuing any further as what I need is already implemented in UpdateVersion. In fact, I've implemented UpdateVersion before I even thought about using Inno Setup to make an installer. I would also guess that there's no Inno Setup script yet that can update files required by DCUpdater? So I would have had to implement them anyway. But you might be right in that it would haven been better to do that with ISPP instead of C++

ISPP can handle quite some stuff, but as I said, you have to press it a little (meaning it's not really easy) It can update external files, but afaics, it doesn't handle s&r based on regex's, but a simple s&r it should be capable of. And looking at the help, it seems it can only write in ini format files...And then there's the occasional Exec(), ofcourse, so some external tool can come in handy

This looks like an awesome tool, and I wish I looked into it before the screencasts came out.

However, as much as there is the ability for me to test and prod around with test files, I'd love to have a bit more verbose output possible, so I can see exactly what lines / tags it adjusts. As it is now, I've got a preprelease.bat sitting in the directories of my tools, and that one prepares the appropriate packages for my files (copying files from build/editing locations), which then does the zipping up and/or ISS compilation.

So, stuff I'd love to see added:

A verbose switch to see what lines it adjusts in what files.

An ability not to update the FileSize in the pad_file, as it differs considerably for my JottiQ releases and I use a hardcoded size of the installer instead. (It seems the most appropriate size.)

Same with long and short descriptions, as I don't believe those files match my executable very well (if I even use them - I don't remember.)

@mouser: Damn, you made a screen-cast of UpdateVersion. How cool is that . Thanks!

@worstje: - Concerning verbose output, I'll see how easy that would be to implement.- Getting rid of FileSize, ShortDescription and LongDescription should be easy: just open your local copy of UpdateVersion.xml and delete the <FileSize>, <ShortDescription> and <LongDescription> elements in the <Type>xml,rootnode,XML_DIZ_INFO</Type> target.

Ahh. Shame on me for only watching the screencast - I hadn't even seen there was an entire .xml file with configuration settings and such. Shame on me indeed.

It's just nice having the output visible - I always have to go over my preprelease.bat to see if it went allright (Idiotic me tends to test from there at occasion, and then stupid explorer/opera/whatever end up using DLLs which can't be replaced.. afin, you get the idea). The more I can see about stuff being successful, the less worries I'll have and the less problems that suddenly sprout up when users download the final product.