.NET Installer

Posted on 2006-04-14
Medium Priority
Last Modified: 2010-04-17
I am putting together a screensaver.  To do this, I am using VB.NET and when I tried to install it on an old PC the following happened:

1. It asked for .NET framework v1.1.4322 (I guessed this would happen - is there no way around this?)
2. I downloaded the .NET framework and the only version I could get was v2.0 (Can I distribute this with the software?)
3. Installed this version and went to install it.  It then asked for MS Installer v3.0.
4. Back to MS website, d/l it and installed it.  (Can I distribute this with my app?)  The installation went fine.  Restarted computer
5. Back to .NET framework v2.0.  Installed it without a problem.
6. Went back to the installer and it asked for .NET v1.1.4322 and it refused to continue, even though v2.0 was correctly installed.

OK - apart from the 3 embedded questions:

a. Can you make the installer .NET version independent?
b. Can you use VB.NET without the framework at all if you only use simple functionality?
c. Can you make the installer .NET framework with a minimum version?  If not, what happens for the next upgrade?  I would need to recompile and that just doesn't make sense?

Hoping to get some good answers to this one.
Question by:Chrism
  • 3
  • 2
LVL 32

Expert Comment

ID: 16452258
Confusing question but here goes:

1) If your app needs the 1.1 .NET RTL, you CAN redistribute it and you CAN download it from:


Read the license information there to be sure you comply.  I don't understand why you say "the only version I could get was v2.0".  V1.1, even V1.0 are available from MS.

2) You can redistribute according to the license agreement.  Read it and follow its requirements.

3) Many apps build using the V1.1 RTL will not work right on the 2.0 .NET RTL.  Get the 1.1 and use it for you 1.1 app OR upgrade your app to v2.0.

4) The installer should not be .NET independent but rather should verify that the version of the .NET RTL that is needed for your application is installed on the system and either direct the user to install it or install it itself.

5) No, ANY .NET application regardless of complexity is dependent on the .NET RTL (BTW, RTL = runtime library).  If you want to make an application that is not dependent on the .NET RTL, use C++ (not managed C++), C, or MFC.  VB6 is not dependent on .NET but it is dependent on the VB RTL.

Author Comment

ID: 16452353
Hmmm...that being the case, it would appear that I am better off using VB6?  Would there be any problems using it even though it is an older technology?

Thanks for the link to v1.1 - but what happens if the client already have v2.0?  Does it overwrite this version or introduce any instability?

Finally, using VB6 or VB.NET, as I am using an animation, it is possible to get the WMV compiled into the resource file and played, or do the files need to be in WMV format as a standalone file?

LVL 32

Expert Comment

ID: 16452393
I would not suggest going back to VB6.  It's an end-of-life technology.  You have the same issues with runtime.  VB6 needs the VB6 runtime.  .NET apps need the .NET runtime.  Same problem...

Microsoft has designed the .NET runtime versions to co-exist.  So if a customer has .NET 2.0 but not 1.1 you can install the 1.1 in addition to 2.0.  No problem and, in fact, what you must do to run a 1.1 app.

Author Comment

ID: 16452537
Damn I hate MS.  How many applications (or 'frameworks') in the world are intentionally designed to co-exist.  Almost every other software provider provides upgrades or patches and strives for backward compatibility...

Still, thanks for your help jhance.

I don't suppose you know anything about the scr having a wmv compiled into it?
LVL 32

Accepted Solution

jhance earned 1500 total points
ID: 16453027
I think the .NET scheme is a great improvement over the old way.  Remember "DLL HELL", this is the situation where you app was built using an old version of a DLL that had been updated at some point.  But the upgrade was not 100% compatible and your application breaks.

.NET provides a way of keeping the original runtime intact for all eternity (in theory) so that even an old v1.1 .NET application will work 10 years from now.  Since all the .NET runtimes are designed to be installed side-by-side, the one your app needs to run (i.e. the one it was built to use and is specified in its assembly) will be used and the app should run perfectly.

In general, this scheme works really well.  The original idea was the the .NET runtimes would be able to provide both backwards and forwards compatibility in themselves as well but that proved to be impractical.  It's possible that a v1.1 app will work with a v2.0 framework but that can be tricky.  The best approach is to have your app use the version of the runtime framework that it was designed for.

Featured Post

Prep for the ITIL® Foundation Certification Exam

December’s Course of the Month is now available! Enroll to learn ITIL® Foundation best practices for delivering IT services effectively and efficiently.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Monitor input from a computer is usually nothing special.  In this instance it prevented anyone from using the computer.  This was a preconfiguration that didn't work.
What do responsible coders do? They don't take detrimental shortcuts. They do take reasonable security precautions, create important automation, implement sufficient logging, fix things they break, and care about users.
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …
Simple Linear Regression

830 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question