Erik Porter's Blog

Life and Development at Microsoft and Other Technology Discussions

News

    Using a Setup Project on a Machine Without .NET Installed

    <rant>

    Today, I setup a VPC instance of XP w/ SP1a (and nothing else) to test an extension of our product that is a Smart Client application.  The setup realizes that .NET is not installed and asks if the user would like to install it now.  Neat.  I clicked yes, only to be taken to this page.  I'm sorry Microsoft, but WHAT THE HELL is that?

    1. That is totally lame that it takes you to a page that says it's been moved.
    2. These are end users clicking these links.  It could be anybody!  Why would they want to go to the .NET Developer Center?
    3. Where in the heck do I download .NET redist from there?  I finally found it, but it just says “It is recommended that all general users go to Microsoft Windows Update to install the .NET Framework“.  There is no way an end user could figure this out.
    4. WindowsUpdate?  On a new machine there's a lot of critical updates and regular updates to wade through to find .NET 1.1.  How many extra steps is this now that the end user of my product has to go through just to get .NET on their machine?

    I realize that LH will have it in the OS (thank you sweet jesus) but that is SO far out it's not even worth point out.  How do you expect we ISV's to distribute our smart clients?  NO, I DON'T think it's a good idea to include the Framework with the setup (let alone trying to figure out how to do it with what's built into VS today anyway).

    </rant>

    Ok, now that I have that out of my system, how's about we just tweek the setup a bit so it takes the user straight to download .NET (as one would expect it to  :P).

    If you want to do this yourself, just go into the setup project file (.vdproj) using notepad (or whatever you like) and go down to the DeployProject -> Deployable -> ExternalPersistence -> LaunchCondition and under there you should see the Url that it points to when they say Yes.  It currently points to http://go.microsoft.com/fwlink/?LinkId=9832.  BAD LINK, BAD...BYE BYE!  Change it to this: http://www.microsoft.com/downloads/details.aspx?FamilyID=262d25e3-f589-4842-8157-034d1e7cf3a3&DisplayLang=en  YUMMY!  Recompile your setup and let'er fly!  Next time a user runs your setup, they should be taken right to the redist (until Microsoft decides to change their links, AGAIN  :P).

    Another option is to just flat out tell the user they don't have the framework installed from say, an ASP.NET page and give them the link to the redist before supplying them with the link to your setup.

    I'm not usually much of a ranter, but this one really amazed me!  :-|

    Comments

    Nidhogg said:

    I thought these go.microsoft.com addresses were redirector pages that point to the right page given a LinkID, even if it has moved 25 times in the past 6 months ... Looks like someone forgot to update this one.
    # July 22, 2004 6:06 AM

    HumanCompiler said:

    Yah, I guess so...funny how something so small can be such a big deal...at least I think it is! :P
    # July 22, 2004 6:09 AM

    MrB said:

    It's also annoying that after following the revised link that you are initially presented with a list of Betas for NET Framework Beta 2! This is early beta software - someone could easily download this without realsing the consequences.

    I agree in making Beta software available but it shouldn't be presented to end users in this situation.
    # July 22, 2004 12:12 PM

    HumanCompiler said:

    Yes, absolutely...I thought the same thing, but forgot to mention...great point, MrB!
    # July 22, 2004 1:08 PM

    College Student said:

    Another reason not to upgrade to .NET. Long live VB6!
    # July 24, 2004 8:12 PM

    Erik Porter said:

    Yah, well, I didn't say that...you go ahead and stay using the old stuff if you like doing more work than necessary and taking longer to get the things you need to get done. ;)
    # July 25, 2004 4:29 AM

    Defkon1 said:

    # September 5, 2008 11:04 AM