standalone setup sample

Mar 23, 2010 at 6:34 PM

Just starting to learn dotNetInstall, so please be patient with me. Initial impression is that it is a really good package.

There are two major segments appearantly for two different languages (English and Italian), each with repeated entries for Microsoft Jet 4.0,

each for a different OS. 

Note that I have NOT executed the complete standalone sample install because I don't want all that stuff jammed onto my development machine.

Question 1: What determines which major segment is used and what deterimines which of the Jet engines to install.

              2: The command line /x switch does a remove installation. How does the customer know to execute it with the /x command (my thinking is that most customers will just double-click on the executable and run it, not try to use the command prompt approach)?

              3: When removing an install, are all the dependent packages also removed?

              4: Tried to execute the 'simple' package, it hung; tried again (OS is Windows 7) using "run as administrator" feature and it said that it went in, but I can't find any traces of the log files it was supposed to create - where are they? I did find the 'temporary' files - fully intact - why were they not deleted, or was that intentional?

              5: The simple example was supposed to install into a specified directory in 'Program Files', but there is no sign of that directory. Is that intentional or did something go wrong?

All in all, this looks like it would be much cleaner and simpler to use than the mess that Microsoft has made - not surprise there.

Thanks in advance for any help you can give me.

rkjm42

Coordinator
Mar 23, 2010 at 7:51 PM
  1. That demo shows how to do two configurations switched based on the user's LCID. That is his operating system's locale (Italian or everything else). So basically dotNetInstaller picks one or the other configuration accordingly. Personally, I think that multilingual is nice, but managing two configurations this way is a headache.
  2. While the bootstrapper is capable of switching the mode automatically (if all components are installed, it switches to uninstall). I suggest installing an empty bootstrapper (no embedded files) on the customer machine and providing a link to uninstall the software in a shortcut menu.
  3. Uninstall is exactly the opposite of install. So yes.
  4. The log files for that demo go to #TEMPPATH\#GUID.log, as defined in the configuration.xml, so you'll find a new log file every time you run the bootstrapper that looks like a GUID in %TEMP%. If you're unsure where this is, run setup.exe /log /logfile install.log and check install.log.
  5. I think something went wrong. Check the log of whether Simple.msi actually installed.

Thanks for the kind words about dotNetInstaller. It has been around for a while and recently quite a bit of work went into the code to make it more reliable and robust. As you start, use the 1.9 Beta, it might avoid you some known bugs. 1.9 should ship in April.

Mar 24, 2010 at 3:23 PM

Thank you for the prompt reply and explanation. I ran setup with the switches and the resulting log file is attached, along with the directory listing of the GUID folder in Temp. The folder was not deleted. I’ll try V 1.9 and see how it goes.

From: dblock [mailto:notifications@codeplex.com]
Sent: Tuesday, March 23, 2010 1:52 PM
To: jmealing3@verizon.net
Subject: Re: standalone setup sample [dotnetinstaller:207044]

From: dblock

1. That demo shows how to do two configurations switched based on the user's LCID. That is his operating system's locale (Italian or everything else). So basically dotNetInstaller picks one or the other configuration accordingly. Personally, I think that multilingual is nice, but managing two configurations this way is a headache.

2. While the bootstrapper is capable of switching the mode automatically (if all components are installed, it switches to uninstall). I suggest installing an empty bootstrapper (no embedded files) on the customer machine and providing a link to uninstall the software in a shortcut menu.

3. Uninstall is exactly the opposite of install. So yes.

4. The log files for that demo go to #TEMPPATH\#GUID.log, as defined in the configuration.xml, so you'll find a new log file every time you run the bootstrapper that looks like a GUID in %TEMP%. If you're unsure where this is, run setup.exe /log /logfile install.log and check install.log.

5. I think something went wrong. Check the log of whether Simple.msi actually installed.

Thanks for the kind words about dotNetInstaller. It has been around for a while and recently quite a bit of work went into the code to make it more reliable and robust. As you start, use the 1.9 Beta, it might avoid you some known bugs. 1.9 should ship in April.

Read the full discussion online.

To add a post to this discussion, reply to this email (dotnetinstaller@discussions.codeplex.com)

To start a new discussion for this project, email dotnetinstaller@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe on CodePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at CodePlex.com

Mar 29, 2010 at 12:35 AM

I think that I am totally confused. Please help me understand what the dotNetInstaller (DNI) creates and what that is supposed to do.

I thought that when the setup.exe built by DNI is run, it COMPLETELY installs everything. After some additional testing and probing, I’m beginning to suspect that what it really does is simply extract all the stuff that is needed for the customer to finish the install. Is that correct?

When I run the setup.exe in the F:\Downloads\CodeProject\dotNetInstaller\dotNetInstaller 1.8\Samples\PackagedSetup\Package location, it puts multiple copies of the simple.msi file into C:\Users\John\AppData\Local\Temp\{B91AD320-1BCF-487F-BD30-49A484343280}.

What is actually in the simple.msi file? When I execute it (see attached log file), nothing is really done, except for the log file.

So, please explain how DNI is supposed to be used. I like the idea, I have to install several dependencies and execute a program, and boy am I lost! Yes, I did read the help file but it didn’t help much.

I have some very serious questions about making registry entries (does DNI do that, or do I?) and registering a DLL without the user seeing it: target OS: XP, Vista and Win7.

I keep seeing the macros like #TEMPPATH, but don’t see where to set them: are they hard coded?

Any help will be appreciated.

John Mealing

Jmealing3@verizon.net

From: dblock [mailto:notifications@codeplex.com]
Sent: Tuesday, March 23, 2010 1:52 PM
To: jmealing3@verizon.net
Subject: Re: standalone setup sample [dotnetinstaller:207044]

From: dblock

1. That demo shows how to do two configurations switched based on the user's LCID. That is his operating system's locale (Italian or everything else). So basically dotNetInstaller picks one or the other configuration accordingly. Personally, I think that multilingual is nice, but managing two configurations this way is a headache.

2. While the bootstrapper is capable of switching the mode automatically (if all components are installed, it switches to uninstall). I suggest installing an empty bootstrapper (no embedded files) on the customer machine and providing a link to uninstall the software in a shortcut menu.

3. Uninstall is exactly the opposite of install. So yes.

4. The log files for that demo go to #TEMPPATH\#GUID.log, as defined in the configuration.xml, so you'll find a new log file every time you run the bootstrapper that looks like a GUID in %TEMP%. If you're unsure where this is, run setup.exe /log /logfile install.log and check install.log.

5. I think something went wrong. Check the log of whether Simple.msi actually installed.

Thanks for the kind words about dotNetInstaller. It has been around for a while and recently quite a bit of work went into the code to make it more reliable and robust. As you start, use the 1.9 Beta, it might avoid you some known bugs. 1.9 should ship in April.

Read the full discussion online.

To add a post to this discussion, reply to this email (dotnetinstaller@discussions.codeplex.com)

To start a new discussion for this project, email dotnetinstaller@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe on CodePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at CodePlex.com

Coordinator
Mar 29, 2010 at 12:50 AM

Heh. I am really surprised you're confused, but I am going to assume that you've read all the tutorials and that eventually you'll unconfuse yourself and help make the documentation better by submitting patches.

I thought that when the setup.exe built by DNI is run, it COMPLETELY installs everything. After some additional testing and probing, I’m beginning to suspect that what it really does is simply extract all the stuff that is needed for the customer to finish the install. Is that correct.

Your suspiscion is wrong. Although I suspect that you are assuming that DNI does "the actual install". Your installer does the actual install, DNI runs your installer and its pre-requisites.

When I run the setup.exe in the F:\Downloads\CodeProject\dotNetInstaller\dotNetInstaller 1.8\Samples\PackagedSetup\Package location, it puts multiple copies of the simple.msi file into C:\Users\John\AppData\Local\Temp\{B91AD320-1BCF-487F-BD30-49A484343280}.

Those are temporary files. DNI extracts them there and THEN runs Simple.msi from there.

What is actually in the simple.msi file? When I execute it (see attached log file), nothing is really done, except for the log file.

Simple.msi is a demo MSI windows installer. Run it by itself, you will see a UI that asks you where you want to install it. Or maybe you have it already installed? Then uninstall it first, right click on it and choose uninstall.

So, please explain how DNI is supposed to be used. I like the idea, I have to install several dependencies and execute a program, and boy am I lost! Yes, I did read the help file but it didn’t help much.

Yes, this is what it does, quite successfuly for hundreds of people out there.

I have some very serious questions about making registry entries (does DNI do that, or do I?) and registering a DLL without the user seeing it: target OS: XP, Vista and Win7.

DNI doesn't do that. Use an installer, InstallShield, WIX or something else to do that. DNI chains several installers.

I keep seeing the macros like #TEMPPATH, but don’t see where to set them: are they hard coded?

Those are resolved on each computer. TEMPPATH is what the user sets as %TEMP%, etc.

...

So, do you have a program or dependencies that you're trying to install? Start by creating components for each of these. Then figure out installed checks for each. Go from there. 

 

Mar 29, 2010 at 3:05 AM

Thanks, that does help. I just need to keep hitting it. I’m thinking a VERY small sample program of my own and then build the msi with the VS tool and go from there.

From: dblock [mailto:notifications@codeplex.com]
Sent: Sunday, March 28, 2010 6:51 PM
To: jmealing3@verizon.net
Subject: Re: standalone setup sample [dotnetinstaller:207044]

From: dblock

Heh. I am really surprised you're confused, but I am going to assume that you've read all the tutorials and that eventually you'll unconfuse yourself and help make the documentation better by submitting patches.

I thought that when the setup.exe built by DNI is run, it COMPLETELY installs everything. After some additional testing and probing, I’m beginning to suspect that what it really does is simply extract all the stuff that is needed for the customer to finish the install. Is that correct.

Your suspiscion is wrong. Although I suspect that you are assuming that DNI does "the actual install". Your installer does the actual install, DNI runs your installer and its pre-requisites.

When I run the setup.exe in the F:\Downloads\CodeProject\dotNetInstaller\dotNetInstaller 1.8\Samples\PackagedSetup\Package location, it puts multiple copies of the simple.msi file into C:\Users\John\AppData\Local\Temp\{B91AD320-1BCF-487F-BD30-49A484343280}.

Those are temporary files. DNI extracts them there and THEN runs Simple.msi from there.

What is actually in the simple.msi file? When I execute it (see attached log file), nothing is really done, except for the log file.

Simple.msi is a demo MSI windows installer. Run it by itself, you will see a UI that asks you where you want to install it. Or maybe you have it already installed? Then uninstall it first, right click on it and choose uninstall.

So, please explain how DNI is supposed to be used. I like the idea, I have to install several dependencies and execute a program, and boy am I lost! Yes, I did read the help file but it didn’t help much.

Yes, this is what it does, quite successfuly for hundreds of people out there.

I have some very serious questions about making registry entries (does DNI do that, or do I?) and registering a DLL without the user seeing it: target OS: XP, Vista and Win7.

DNI doesn't do that. Use an installer, InstallShield, WIX or something else to do that. DNI chains several installers.

I keep seeing the macros like #TEMPPATH, but don’t see where to set them: are they hard coded?

Those are resolved on each computer. TEMPPATH is what the user sets as %TEMP%, etc.

...

So, do you have a program or dependencies that you're trying to install? Start by creating components for each of these. Then figure out installed checks for each. Go from there.

Read the full discussion online.

To add a post to this discussion, reply to this email (dotnetinstaller@discussions.codeplex.com)

To start a new discussion for this project, email dotnetinstaller@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe on CodePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at CodePlex.com