.NET Installer

Posted on 2006-04-14
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
    LVL 32

    Expert Comment

    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.
    LVL 2

    Author Comment

    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

    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.
    LVL 2

    Author Comment

    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

    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.

    Write Comment

    Please enter a first name

    Please enter a last name

    We will never share this with anyone.

    Featured Post

    Why You Should Analyze Threat Actor TTPs

    After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

    Suggested Solutions

    Title # Comments Views Activity
    twoTwo  challenge 35 71
    MaxSpan challenge 9 50
     shows up in Outlook, not OWA or on phone 3 45
    python sqlite question 11 21
    This article will show, step by step, how to integrate R code into a R Sweave document
    A short article about a problem I had getting the GPS LocationListener working.
    An introduction to basic programming syntax in Java by creating a simple program. Viewers can follow the tutorial as they create their first class in Java. Definitions and explanations about each element are given to help prepare viewers for future …
    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 …

    761 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

    Need Help in Real-Time?

    Connect with top rated Experts

    12 Experts available now in Live!

    Get 1:1 Help Now