Jump to content

NI installer - additional installers - pain


Recommended Posts

When building an NI installer, you can specify additional installers. How does this list get populated? Does it depend upon what you have installed already? How do you specify a different version? Must you install that specific version in order for it to show in the list and include it in your installer build? I have a specific issue:

I see in my list that I have NI-Serial 3.2 installed and available. When I do the build, it prompts me for the driver CD which I provide. Even though the version of NI-Serial on the CD is the same as the one shown, it does not accept it. I'm giving it Feb 2007 - Disk2 but it asks for Nov. 2006 - Desk2. I even tried to uninstall NI-Serial and re-install the one from my CD but no-joy. I even tried copying the source NI-Serial folder from the CD to my hard drive and pointing to it but it still did not like it. It complained about not locating {GUID}.

Question: Why can't we just point to the #$%$@&! NI *.msi files we need?

Note: NI support has been contacted.

Link to comment

QUOTE(NI Support)

The problem you are seeing is due to the fact that some component that the NI-Serial driver relies upon was installed from the November 2006 driver CD, and was not reinstalled by the February 2007 driver CD. This means that, in order to include the driver in an installer, you will need to supply the November 2006 driver CD in order to allow the appropriate component to be pulled from it. This is a pain point that we are aware of, and R&D is working to find a solution to this problem.

So it turns out that the best way to resolve this is to uninstall ALL drivers and install the one I want before the build. Does anyone else see problems with this methodology? I mean, let's say for instance that you are supporting multiple projects with differnet driver version requirements. What then? If anyone's gone down this path, do you have any suggestions?

Link to comment

QUOTE(Michael_Aivaliotis @ May 16 2007, 07:57 PM)

As I've stated in other threads, I use http://nsis.sourceforge.net/Main_Page' target="_blank">NSIS and have been pleased. You can include the specific runtime as well as fieldpoint / daqmx / vision installers and compile it all into one (compressed) exe. I know its not the NI version, but when using the OpenG Builder, I usually give myself the option to build the installer (NSIS can be called from the command line) in a post-build vi.

Link to comment

WOW. This used to work, or may still work with some of the installers. I have always copied the CD Directly to my HDD... haven't included additional installers in a while... this is bad... real bad.

I actually just started a thread on forums.ni.com about updating Dev Suite...

Link to comment
QUOTE(chrisdavis @ May 16 2007, 06:44 PM)
Question for you. How are the additional msi files included? Are they a post or pre install task? Also, upon an upgrade, what happens when the additional msi gets called again? Do you get the repair, or uninstall dialog for the msi?
Link to comment

QUOTE(Michael_Aivaliotis @ May 21 2007, 02:02 AM)

Question for you. How are the additional msi files included? Are they a post or pre install task? Also, upon an upgrade, what happens when the additional msi gets called again? Do you get the repair, or uninstall dialog for the msi?

With NSIS you get the same amount of control as you would get if you ran the msi file from the command line. I usually copy the msi file to the target directory/install directory, run it from there, either silently or with user interaction if it can't be run silently. So, if the user already has a newer or the same version of the software you want to install, they would get the restore dialog instead of the install dialog.

Link to comment
  • 4 months later...

QUOTE(Michael_Aivaliotis @ May 16 2007, 12:01 AM)

...

I see in my list that I have NI-Serial 3.2 installed and available. When I do the build, it prompts me for the driver CD which I provide. Even though the version of NI-Serial on the CD is the same as the one shown, it does not accept it. I'm giving it Feb 2007 - Disk2 but it asks for Nov. 2006 - Desk2. I even tried to uninstall NI-Serial and re-install the one from my CD but no-joy. I even tried copying the source NI-Serial folder from the CD to my hard drive and pointing to it but it still did not like it. It complained about not locating {GUID}.

...

I just ran into this problem with a slight twist. Last night I tried making an installer and including some drivers. It started up, then asked for the Aug 06 Drivers CD 2. After searching through a half-dozen CD cases of NI disks, I found the Aug 2006 Dev Suite set and put in disk 2 of the Drivers. It still wouldn't take it!m After doing multiple installations and uninstalls, betas and what-not, I can't say for sure that the CD I tried was the exact one that was used to install some particular driver, but the label on the CD sure seemed to match.

There's got to be a better way. Perhaps there should be an option for caching the installation CDs on your hard disk right when you install them. Might require a sizeable chunk of hard disk, but that isn't such a problem these days. At least those of us who develop with multiple versions could plan for this.

Any other progress on this issue?

Regards,

Dave T.

Link to comment

QUOTE(Michael_Aivaliotis @ Oct 4 2007, 09:03 AM)

Sorry, no progress on this issue. It's still a @% pain in the buttocks. The solution for me is to upgrade to the latest driver and restart the build. So now it asks for a CD I have.

The way this feature works is pretty ridiculous and needs to be fixed. There MUST be a way to tell the builder what msi files we want.

Michael,

Thanks for the reply. Just to verify, before I go messing up my entire installation of NI software: Your recommendation is to insert the newest, latest, greatest 3 CD set of NI drivers, upgrade everything on the computer doing the build, then re-run the build and it will ask you for those same CD's? Sounds like it should work... I agree that this is a major pain, and could really use some improvement.

Thanks again,

Dave

Link to comment

QUOTE(dthomson @ Oct 4 2007, 09:30 AM)

Michael,

Thanks for the reply. Just to verify, before I go messing up my entire installation of NI software: ...

Dude, I wouldn't trust anything. :nono: This worked for me, but NI drivers and installation code is unpredictable. Meaning that some subcomponent MAY still point to the old stuff. You can never be certain.

Let's put it this way, you don't have much choice in the matter...

Link to comment

I just created my first NI installer a week ago and I was also bothered by the frustrations of adding the additional install components. When it comes to building a product, one should have a controlled build environment in which the build environment can be reproduced at a later point in time for small revisions or upgrades. The discussions about unloading and reloading files then hoping the build works is risky.

My recommendation and the path I will take is to use a VMWare Workstation image to build the product. I'll load whatever software and drivers that are necessary to build the product and then I'll create a snapshot. As long as I keep the snapshot, I can come back in the future and start with the same environment as the original. I already use VMWare snapshots for install testing with different initial conditions.

Link to comment

QUOTE(Michael_Aivaliotis @ Oct 4 2007, 09:17 PM)

Karl - Excellent suggestion. This seems like the best way to go...

The VMWare idea is a good one, though I've been frustrated with the performance of running under VMWare. I realize you are just talking about doing the builds there, but it seems like a somewhat laborious process to create an installation with all the right drivers for each build. Given the current situation, it might be the best solution. Shouldn't be necessary, though.

Also, just a quick update on my recent situation.

As per Michael's suggestion (echo'ed by a helpful NI engineer), I did an uninstall and reinstall and then the build. It seems to have worked (though the build took forever...) That's the good news. The bad was anticipated in Michael's caveat: Since I was using DAQmx and VISA, and due to the multitude of dependencies, I had to uninstall almost every NI driver on my machine. When I got done with that, I found that it had partially uninstalled LV 8.2! The directory was still there, but the desktop shortcut wouldn't launch it. Double-clicking on the LabVIEW.exe file brought up a dialog saying that it wasn't activated. (I didn't push it any further, just bailed and reinstalled LV.) Anyway, after some grief, it looks like all is working, but there just has to be a better way...

One last issue - my installation turned out to be 706 MB, and my CD only holds 702!!!!!

Cheers,

Dave T.

Link to comment

QUOTE(Michael_Aivaliotis @ May 16 2007, 07:57 PM)

So it turns out that the best way to resolve this is to uninstall ALL drivers and install the one I want before the build. Does anyone else see problems with this methodology? I mean, let's say for instance that you are supporting multiple projects with differnet driver version requirements. What then? If anyone's gone down this path, do you have any suggestions?

I think NI shoot in their own foot when they decided to go with MSI as their installer solution. Not only is MSI even according to some of the people involved in its development quite an overkill in many aspects to the problem of software installation but it is such a huge and infelxible beast that you simply have two choices: Dump it and go for something else or live with its difficulties and inefficiencies. And as longer as you do the second as harder its gets to do the first.

Rolf Kalbermatter

Link to comment

QUOTE(rolfk @ Oct 8 2007, 05:01 AM)

Not only is MSI even according to some of the people involved in its development quite an overkill in many aspects to the problem of software installation but it is such a huge and infelxible beast...

Do you have any references where we could read more about that Rolf? I've been using msi for years and haven't really had a problem, and I'd be interested to hear why you and others think that it's overkill, huge and inflexible.

Link to comment

QUOTE(crelf @ Oct 7 2007, 03:01 PM)

Do you have any references where we could read more about that Rolf? I've been using msi for years and haven't really had a problem, and I'd be interested to hear why you and others think that it's overkill, huge and inflexible.

Hard to find that back! I was looking about 6 months ago for a tool to see how MSI is built up to fix some issues with a corrupted installation that refused to allow me to uninstall it nor upgrade it to a newer version. And on the MS site I came across an article about the tool Orca which is basically the original tool to look into and edit MSI files.

In there one of the persons involved in the development of MSI quite at the start explained how it got started and the decision to use a relational database structure as the base of an MSI file and he was strongly suggesting that that use of a relational database was quite an overkill in terms of what needed to be solved but that at the time they started to realise it it was already a fact.

I would be glad to point you to that article but have to admit that I have no idea anymore what search criteria got me there in the first place but it was on an MS or MSDN site somewhere.

And on my current system most of the software that used to show up under the National Instruments Installer now also shows up in the main installed components section and refuses to uninstall from either location. Upgrading still seems to work for that software but I also have components visible that are really subcomponents of other (non NI) software and don't give any option to uninstall, repair or whatever. So I'm sure my MSI registry database is currently quite messed up but I hesitate to do a full reinstall of this machine as that takes me at least 3 days to do, with all the NI software and other tools that I frequently use. The MS registry clean utilities that should help don't do anything for these entries either!

PS: I do follow Wine development too and they did a lot of work on MSI support in the last two years and the overal consent there seems to be that MSI might be to most overengineered part of Windows and contains quite some rather questionable design decisions and implementations.

Rolf Kalbermatter

Link to comment

QUOTE(rolfk @ Oct 8 2007, 08:06 PM)

I hear you! My rebiuld is usually at 2 days, and that just something that I can't afford very often.

QUOTE(rolfk @ Oct 8 2007, 08:06 PM)

I do follow Wine development too and they did a lot of work on MSI support in the last two years and the overal consent there seems to be that MSI might be to most overengineered part of Windows and contains quite some rather questionable design decisions and implementations.

Do you have any reference to those articles/discussions? I'd be really interested to read them.

Link to comment

QUOTE(crelf @ Oct 8 2007, 06:48 AM)

That is mostly from comments on the wine-devel mailing list at http://www.winehq.org/pipermail/wine-devel/. But searching through all of the mailing list archives won't be trivial. A lot of work on MSI was done by Mike Mc Cormack and Robert Shearman from Codeweavers and they had some comments on MSI in a few mailings.

I couldn't find easily a specific wiki page for MSI on wiki.winehq.org so I'm not sure about a more concise collection on findings about MSI.

Rolf Kalbermatter

Link to comment

QUOTE(Michael_Aivaliotis @ Oct 4 2007, 10:03 AM)

The solution for me is to upgrade to the latest driver and restart the build. So now it asks for a CD I have.

The way this feature works is pretty ridiculous and needs to be fixed. There MUST be a way to tell the builder what msi files we want.

Michael,

I encountered this problem back in 8.0 it's a mess. One thing I might point out is in 8.2 and up there is a check box in the dialog that ask for the source CD. I can't remember exactly what it says but if you select it the source from the cd will be copied to your hard drive, and the next time you do a build it will get the source from this location without a prompt. If you check this at least you won't have to dig for the CD's the next time you do the build. The downside is the hard drive space you consume over time.

Link to comment

In the same vein, here is another very poor experience I had today with the NI installer builder.

I have a project (8.21) that depend only on NI DAQmx 8.6.

So in the additional installer I have selected:

  • LV Runtime 8.21
  • NI DAQmx 8.6

So after swapping cds and DVD for about 40 min (by the way with the Aug 07 device driver, when the installer say "insert Aug 07 cd1" one has to read "insert DVD"...) I end up with the installer builder asking me to insert NI Vision 8.0 CD!!!!

I have the vision stuff install on my Laptop, but my project does NOT depend on vision, my customer does not even have vision ...

To make a long story short, since I did not have (nor did my customer) the NI vision 8.0 CD, I was not able to build the installer, and I had to install the executable (and NI DAQmx) manually on the target machine.

It used to be a lot more straigthforward to create an installer in LV 7.1 and lower; since LV 8.x has been released, the installer builder has - in my opinion - getting way more difficult to use.

PJM

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.