[quoted text, click to view] > Based on your description, I understand you got an error 4012 while apply
> quiet installation command *dotnetfx.exe /q:a /c:"install /l /q"* in your
> VS Setup package, please let me know if I have misunderstood anything.
>
> If so, I think you cannot run the dotnetfx.exe command within installation
> process(VS Setup package's), you need
> a bootstrapper (setup.exe) that will install the .NET Framework first if
> needed, then run your Windows Installer package (.msi file) for your
> Visual Studio .NET applicationrun. Please refer to the following MSDN
> article for more details:
>
> HOW TO: Distribute the .NET Framework with a Visual Studio .NET Deployment
> Project
>
http://support.microsoft.com/default.aspx?scid=kb;en-us;324733 >
>
> Thanks for your understanding!
Thanks for the feedback (appreciated). I have read most of the
"dotnetfx.exe" literature now including details about the bootstrapper which
I've also tested. The MSI app I'm working on however wasn't created by VS
and I wanted to simply launch "dotnetfx.exe" silently behind the scenes.
Unfortunately, it doesn't appear that I can do this and I'd probably need an
engineer on the MSI or .NET team to actually confirm it (and explain why).
For instance, MSI's support for nested installations is weak in general (see
http://msdn.microsoft.com/library/en-us/msi/setup/concurrent_installations.asp?frame=true)
but it can be done in a crude way that I won't get into here. I don't know
why "dotnetfx.exe" fails however since I can get all other MSI apps I've
tried to work. The reality however is that the boostrapper is a poor way of
handling this in any case. I'm a big supporter of MS in general but they
goofed up on this one. The .NET framework is a major piece of work and a
more professional installation tool should have been provided for developers
to distribute this with their own setup programs (an MSI merge module would
have been the most obvious choice). For example, using the boostrapper, by
the time my own setup program actually runs, .NET has already been
installed. Now if someone cancels my own setup program I have to manually
uninstall .NET to properly restore things (note BTW that if someone simply
cancels the .NET installation then the boostrapper eventually pops up a
message stating that the installation was cancelled due to an "error"). This
is unpolished and unprofessional. Moreover, using the bootstrapper requires
you to go through two separate installations, the .NET installation followed
by my own. This is confusing for users who now have two distinct interfaces
to go through as well as two license agreements to accept, the .NET license
followed by my own. Again, this is confusing for users who should have to
deal with only one integrated installation package only (my own). I should
be able to silently install .NET behind the scenes without users having to
see or deal with it at all (also note that our installation program can be
run in multiple languages which are selected at runtime - using the
bootstrapper doesn't give you the control we need to do this cleanly). In
any case, I know it's not your doing personally but the bootstrapper really
is too crude for a professional installation and it was a shoddy decision
for a major component like .NET Again, please note that is meant
constructively since I've developed on MS platforms almost since the start
of the company and they usually do a great job. Finally, I'm still
bewildered by the other package I'm seeing when doing this from the command
prompt.