Archive: Is this possible with NSIS?


Is this possible with NSIS?
Hello,

First of all, let me apologize for such a long question. I'm new to NSIS and would like to hear from you before dwelving into the system.
We're finishing a new version of our application built using .NET Framework 2.0 and I would like to know if the following is possible with NSIS:
Our software has an application server for ASP.NET webservices that has to run inside IIS connected to an SQL Server database.
Then it has the client, which is a .NET WinForms application to be distributed in a LAN Intranet.
The ASP.NET server must be updated from time to time and this update will also have to run some SQL scripts on the database, and it should have an option to auto-update itself from the Web. It may also be needed to update the server manually with an executable that will do the job. Either way, during the server update process, the new client version will also be put into a specific place on the server. Every Client should check if there is a new version on the server, and automatically update itself before launch. This way, clients (which may only have intranet access) always get the update first.
I know this is a bit complex, but we have done this with the previous version of our application in Win32 and we don't want to go into developing it again for .NET.
Is it possible to do this with NSIS?
Thank you very much for your attention.

Regards,
paulo


NSIS can do just about anything you want it (limited only by your imagination.) It's up to you (the developer) to decide how to implement each task.

Here's a few broad suggestions to get you started:

  1. First, you want your ASP.NET application to be able to update itself from the web. I'd start by looking at the InetLoad plugin.
  2. Next, you say you need your application server to be able to run SQL scripts. I assume you are using MS SQL? If so, I'd look into using osql.exe . This is a command line utility from Microsoft that you can use to issue SQL commands. If you need to hide the DOS screens, you can use nsExec (included with NSIS) or the ExecDOS plugin.
  3. Finally, you say that you'd need the client to automatically update. For this, I'd put a text file (or INI file) in the client's directory on the server. Then, just make a 'helper' exe that checks the file for the version number and compares it to what's on the client and then runs an update if necessary. (There is a nice version compare header included with NSIS. Look at Appendix E in the help file.) The 'helper exe' would be nothing more than an NSIS setup program.

Hello Comperio,

Thank you for reply and advice. It is most needed.

Regards,
paulo