Polyview
asked on
Software Deployment problem - CLR20r3 System.InvalidOperationException
• The deployment package was designed using InstallShield Professional 2011
o My current test deployments are being distributed on CD
• The software program was designed using Visual Basic in Visual Studio 2010 and .net 4.0
• The problem is:
o The program deploys OK on the development machine (64 bit Windows 7)
o The program deploys OK on the three non-development 32 bit Windows XP machines
o The program fails to work on two 64 bit windows 7 computers, one of which was brand new “Straight out of the package”. InstallShield says “Program successfully installed”, however as soon as the program is run, a message comes up “Program has stopped working”. The associated Error message is: CLR20r3 System.InvalidOperationExc eption
o I have some difficulty testing various possible solutions found on the web, because I have not got a clean 64 bit (or 32 bit) windows 7 computer readily available for testing (Maybe I have to purchase one?)
I have no idea as to the root cause of this error message or how to find out what it is: i.e.
• Missing files?
• Incorrect revision Nos of Dlls?
• Database connection strings?
Any advice on how to go about solving this problem would be greatly appreciated.
I have been working on this for weeks, trying all sorts of various program changes to no avail.
Why should it work on old 32 bit XP machines and not on newer 64 bit Windows 7 machines, even when the new machines are set to run in XP emulation?
I have included some background information in the attached PDF file in the hope it may assist.
Thank you
ExamPlannerV2-Installation-Probl.pdf
o My current test deployments are being distributed on CD
• The software program was designed using Visual Basic in Visual Studio 2010 and .net 4.0
• The problem is:
o The program deploys OK on the development machine (64 bit Windows 7)
o The program deploys OK on the three non-development 32 bit Windows XP machines
o The program fails to work on two 64 bit windows 7 computers, one of which was brand new “Straight out of the package”. InstallShield says “Program successfully installed”, however as soon as the program is run, a message comes up “Program has stopped working”. The associated Error message is: CLR20r3 System.InvalidOperationExc
o I have some difficulty testing various possible solutions found on the web, because I have not got a clean 64 bit (or 32 bit) windows 7 computer readily available for testing (Maybe I have to purchase one?)
I have no idea as to the root cause of this error message or how to find out what it is: i.e.
• Missing files?
• Incorrect revision Nos of Dlls?
• Database connection strings?
Any advice on how to go about solving this problem would be greatly appreciated.
I have been working on this for weeks, trying all sorts of various program changes to no avail.
Why should it work on old 32 bit XP machines and not on newer 64 bit Windows 7 machines, even when the new machines are set to run in XP emulation?
I have included some background information in the attached PDF file in the hope it may assist.
Thank you
ExamPlannerV2-Installation-Probl.pdf
Almost certainly, incompatibility of the .Net Framework. Check the version of .Net on your development machine vs. target one.
ASKER
Thank you very much for these comments. I have to go out, but I will test both replies in two days and advise.
ASKER
Re: incompatibility of the net framework. I have checked with the client. The version number was obtained by checking in control panel add/remove programs without actually uninstalling. In both my computer and the client's computer the version was identical I.e. Microsoft .NET Framework 4 client profile 38.8 MB, Version 4.0.30319, so this does not seem to be the problem.
Re: using the Click once deployment to test for Dll deployment, there was three files that were listed and were not on my InstallShield requirements:
1. Windows Installer 3.1
2. ATODExamPlanner.exe.config
3. ATOD ExamPlanner.exe.manifest
Are all three of these these files required?
In any event, I cannot find the file ATODExamPlanner.exe.manife st in the bin files in Visual Studio. The only similar file is ATODExamPlanner.vshost.exe .manifest.
Re: using the Click once deployment to test for Dll deployment, there was three files that were listed and were not on my InstallShield requirements:
1. Windows Installer 3.1
2. ATODExamPlanner.exe.config
3. ATOD ExamPlanner.exe.manifest
Are all three of these these files required?
In any event, I cannot find the file ATODExamPlanner.exe.manife
> In both my computer and the client's computer the version was identical I.e. Microsoft .NET Framework 4 client profile 38.8 MB, Version 4.0.30319, so this does not seem to be the problem.
This may be not enough. Framework is making heavy use of side-by-side assemblies, when different versions coexist on the same computer and are used by different applications. I would suggest that you create setup with including the framework prerequisite - that guarantees that it will put in exactly the version your executable is looking for.
The requirement for Installer 3.1 is somewhat odd, since this is already relatively old version. Most likely both you and client already have 4.5, or even 5.
Regarding two other files - only you know what you application consists of. ATODExamPlanner.exe - is it your executable?
Finally, see this thread
http://runtingsproper.blogspot.com/2010/02/solved-error-1053-eventtype-clr20r3.html
maybe you can do the same, i.e. enclose something in proper try/catch block.
Another: http://channel9.msdn.com/Forums/TechOff/258689-NET-20-Win-App-Eror-EventType-clr20r3
see if you can implement unhandled exception block to get more details.
This may be not enough. Framework is making heavy use of side-by-side assemblies, when different versions coexist on the same computer and are used by different applications. I would suggest that you create setup with including the framework prerequisite - that guarantees that it will put in exactly the version your executable is looking for.
The requirement for Installer 3.1 is somewhat odd, since this is already relatively old version. Most likely both you and client already have 4.5, or even 5.
Regarding two other files - only you know what you application consists of. ATODExamPlanner.exe - is it your executable?
Finally, see this thread
http://runtingsproper.blogspot.com/2010/02/solved-error-1053-eventtype-clr20r3.html
maybe you can do the same, i.e. enclose something in proper try/catch block.
Another: http://channel9.msdn.com/Forums/TechOff/258689-NET-20-Win-App-Eror-EventType-clr20r3
see if you can implement unhandled exception block to get more details.
ASKER
!. The set up program does include the Microsoft .NET Framework 4 client profile as a prerequisite.
2. yes, ATODExamPlanner.exe - is my executable, but I have never included the config file or the manifest file as a part of my distributed files. I do not know what these files do, and also their absence did not affect the installation on the XP computers.
3. Trying the unhandled exception will take a fair bit of time. I will study the threads and see what I can do.
Thank you for your attention to my problem.
2. yes, ATODExamPlanner.exe - is my executable, but I have never included the config file or the manifest file as a part of my distributed files. I do not know what these files do, and also their absence did not affect the installation on the XP computers.
3. Trying the unhandled exception will take a fair bit of time. I will study the threads and see what I can do.
Thank you for your attention to my problem.
re. manifest files - yes, this is new; was already possible in XP, but has increasing importance in Vista and 7, due to their increasing efforts to "protect" the user. Basically, it tells Windows to what degree to worry about running this executable. Examples:
http://msdn.microsoft.com/en-us/library/dd371711%28v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/aa374191%28v=vs.85%29.aspx
.config file mostly for storing the settings, instead of doing it in the Registry. http://www.codeproject.com/KB/dotnet/config.aspx.
http://msdn.microsoft.com/en-us/library/dd371711%28v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/aa374191%28v=vs.85%29.aspx
.config file mostly for storing the settings, instead of doing it in the Registry. http://www.codeproject.com/KB/dotnet/config.aspx.
ASKER
I am very hopefull that the comment "Almost certainly, incompatibility of the .Net Framework. Check the version of .Net on your development machine vs. target one" is correct.
My Installation deployment program did install the correct version on the target machine as a "Prerequisite" however further enquiries reveals that InstallShiled has a separate area under Tools-Options--.Net tab which apparantly sets the .net version that is to be used.
I have adjusted this and I have sent another disk to the Client and I should have an answer within a few days.
Testing is a big problem, so I have bought a new 64 bit Windows 7 computer which is due for delivery tomorrow, and I should also be able to test the installation on this machine.
My Installation deployment program did install the correct version on the target machine as a "Prerequisite" however further enquiries reveals that InstallShiled has a separate area under Tools-Options--.Net tab which apparantly sets the .net version that is to be used.
I have adjusted this and I have sent another disk to the Client and I should have an answer within a few days.
Testing is a big problem, so I have bought a new 64 bit Windows 7 computer which is due for delivery tomorrow, and I should also be able to test the installation on this machine.
> so I have bought a new 64 bit Windows 7 computer which is due for delivery tomorrow, and I should also be able to test the installation on this machine.
The best is to create a clean virtual machine(s), for example with VirtualBox, with various o/s, and try on them. Once the clean machine is ready, make a snapshot, then you can reset to that snapshot with a click of the mouse. With several v.m.'s, you can test your installation on pretty much all platforms.
The best is to create a clean virtual machine(s), for example with VirtualBox, with various o/s, and try on them. Once the clean machine is ready, make a snapshot, then you can reset to that snapshot with a click of the mouse. With several v.m.'s, you can test your installation on pretty much all platforms.
Also, article "Deploying Visual C++ Runtime Files as Private Assemblies" gives useful information
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
you can try deploying software using a free version:
http://www.manageengine.com/products/desktop-central/windows-software-installation.html
http://www.manageengine.com/products/desktop-central/windows-software-installation.html
ASKER
Thanks, I did not know about this free software. However I am currently using the Click once deployment in Visual studio. This seems to have worked so far. My current version of InstallShield is not being used.
ASKER
The original problem with the InstallShield installation has not been resolved
http://msdn.microsoft.com/en-us/library/ms953320.aspx