Problems with deploying an app without an installer

T

Tony Toews [MVP]

Folks

I have an app which runs on client PCs without requiring an installer.
Indeed the users run it from the server. It's currently written in
VB6 without any controls, etc, etc. However the long term future of
VB6 runtime in the next version of Windows is hazy to say the least.
Therefore I need to consider alternatives.

1) Can a C# app be executed at a PC without any install routine.

2) I read about the CLR but don't understand all or indeed any the
quirks and nuances. Are there some good URLs about what versions of
Windows have what CLR installed?

Of course I have no idea what the questions are that I should be
asking as I've never worked with .Net or C#.

I want to ensure I continue to use the drag and drop method of
deployment without requiring IT staff and/or an admin account to
install software

Tony
--
Tony Toews, Microsoft Access MVP
Tony's Main MS Access pages - http://www.granite.ab.ca/accsmstr.htm
Tony's Microsoft Access Blog - http://msmvps.com/blogs/access/
For a free, convenient utility to keep your users FEs and other files
updated see http://www.autofeupdater.com/
Granite Fleet Manager http://www.granitefleet.com/
 
P

Peter Duniho

Tony said:
[...]
1) Can a C# app be executed at a PC without any install routine.

Yes. Maybe. It depends.
2) I read about the CLR but don't understand all or indeed any the
quirks and nuances. Are there some good URLs about what versions of
Windows have what CLR installed?

You should consider using an installer. The biggest advantage is that
you can create a setup project that will offer to install the
appropriate version of .NET if it's not already present.

Barring that, version dependencies will show up as an error message to
the user when they try to run a program that depends on a version of
..NET not already installed. Not very user-friendly, but if you instruct
your users on how to install .NET manually, it should be fine.

Of course, Vista comes with .NET 2.0, and Windows 7 with .NET 3.5. So
to some extent, you may be able to know in advance your users will have
..NET already.
Of course I have no idea what the questions are that I should be
asking as I've never worked with .Net or C#.

I want to ensure I continue to use the drag and drop method of
deployment without requiring IT staff and/or an admin account to
install software

At a minimum, your users will need an admin account to install .NET, if
it's not already installed. Once they have .NET installed, they don't
need any special installer to use an actual .NET program. A
"drag-and-drop" of the .exe file to their own computer will work fine.

Pete
 
T

Tony Toews [MVP]

Peter Duniho said:
You should consider using an installer.

Access devs are the users of my tool. This tool is currently
distributed in a zip file and the Access dev setups the iNI file and
copies the utility exe to the server without requiring IT staff. If
I was to require an installer or admin privileges then the acceptance
rate of my free utility would drop by 95% and the hassle rate would
being an order or two of magnitude higher.
Of course, Vista comes with .NET 2.0, and Windows 7 with .NET 3.5. So
to some extent, you may be able to know in advance your users will have
.NET already.

What does Windows XP come with? When I poke about in a fully
patched Win XP system I see folders for V1.0, 1.1, 2.0, 3.0 and 3.5.
Does that mean they're installed?

Hmm, my clean Windows 2000 doesn't have any but then I don't expect
many organizations to be running Windows 2000 now.

Will the same C# program work with .NET 2.0 and 3.5 without any
changes?

Tony
--
Tony Toews, Microsoft Access MVP
Tony's Main MS Access pages - http://www.granite.ab.ca/accsmstr.htm
Tony's Microsoft Access Blog - http://msmvps.com/blogs/access/
For a free, convenient utility to keep your users FEs and other files
updated see http://www.autofeupdater.com/
Granite Fleet Manager http://www.granitefleet.com/
 
P

Peter Duniho

Tony said:
Access devs are the users of my tool. This tool is currently
distributed in a zip file and the Access dev setups the iNI file and
copies the utility exe to the server without requiring IT staff. If
I was to require an installer or admin privileges then the acceptance
rate of my free utility would drop by 95% and the hassle rate would
being an order or two of magnitude higher.

For better or worse, your use of .NET may well require _some_ installer
to be run. None of the comments above regarding your specific situation
change anything I wrote.

I doubt that your estimate of the change in acceptance rate is valid,
but if it is, I don't think you should be using .NET.
What does Windows XP come with?

What service pack? Plain old XP doesn't come with any .NET. My
recollection is that SP2 and SP3 for XP include .NET 1.0/1.1, but it may
not have been an integral part of the SP (i.e. the user may be able to
decline installation of .NET).

I'm sure Google can help you learn more about what versions of .NET are
included in what versions of Windows, if it's really important to you.
Generally, it wouldn't be, except in an academic sense; regardless, you
have a high chance of your users needing to install the latest .NET
version, unless your users are all running Windows 7 or you unreasonably
limit yourself by targeting .NET 1.1 instead of a more recent version.
When I poke about in a fully
patched Win XP system I see folders for V1.0, 1.1, 2.0, 3.0 and 3.5.
Does that mean they're installed?

It means they're probably installed. To know for sure what's installed,
you need to look at the actual libraries in the folders. Here's a
Microsoft article with a little more detail:
http://msdn.microsoft.com/en-us/kb/kb00318785.aspx
Hmm, my clean Windows 2000 doesn't have any but then I don't expect
many organizations to be running Windows 2000 now.

I don't think the latest .NET is supported on Windows 2000. For sure,
it's not an included part of the OS. It would have to be installed
after the fact.
Will the same C# program work with .NET 2.0 and 3.5 without any
changes?

It should, yes. In fact, .NET 2.0 and 3.5 use the same CLR version;
only the Framework libraries have changed, and for the most part only in
that 3.5 includes new libraries.

Of course, every software revision includes bug fixes, and code that for
whatever reason relied on a particular bug might wind up breaking. And
there may be minor changes to default settings that might affect the
rare application. But on the whole, backward compatibility is essential
in .NET.

Even in the v1.1 to 2.0 transition, most applications work fine without
any changes, and there were a number of well-documented breaking changes
between 1.1 and 2.0. Between the later versions, the chances of an
existing application having new problems in a new version of .NET are
very tiny.

You can Google for ".NET version breaking changes" and I'm sure that
will turn up some useful information along those lines.

Pete
 
T

Tony Toews [MVP]

Tony Toews said:
What does Windows XP come with? When I poke about in a fully
patched Win XP system I see folders for V1.0, 1.1, 2.0, 3.0 and 3.5.

When I think about this I may very well have installed the optional
files as well at some point in time.

Tony
--
Tony Toews, Microsoft Access MVP
Tony's Main MS Access pages - http://www.granite.ab.ca/accsmstr.htm
Tony's Microsoft Access Blog - http://msmvps.com/blogs/access/
For a free, convenient utility to keep your users FEs and other files
updated see http://www.autofeupdater.com/
Granite Fleet Manager http://www.granitefleet.com/
 
T

Tony Toews [MVP]

Peter Duniho said:
For better or worse, your use of .NET may well require _some_ installer
to be run. None of the comments above regarding your specific situation
change anything I wrote.

I doubt that your estimate of the change in acceptance rate is valid,
but if it is, I don't think you should be using .NET.

Well, even if it's 50% none acceptance that's still quite significant.
So yes, I would agree that .NET is becoming a less likely answer.

Thanks for all your comments. Although I will be monitoring this
thread for some time to come for other comments.

Tony
--
Tony Toews, Microsoft Access MVP
Tony's Main MS Access pages - http://www.granite.ab.ca/accsmstr.htm
Tony's Microsoft Access Blog - http://msmvps.com/blogs/access/
For a free, convenient utility to keep your users FEs and other files
updated see http://www.autofeupdater.com/
Granite Fleet Manager http://www.granitefleet.com/
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top