I designed few Crystal reports in CRVS2010 while developing the windows application in Visual Studio 2010. I decided to drag the CrystalReportViewer control from Toolbox on Windows form; to my dismay I couldn’t see the control in Toolbox. I went to Choose Toolbox Items, looked into .Net Framework Component for Crystal Reports components & found few of them were checked by default. Unchecking & checking these Crystal components several times did no magic as control still was not visible. First thing that came to my mind was – “BUG”; so I created a web application to check if the control was available, when checked I could see it under Reporting section of Toolbox.
Quite surprised by the behavior of the control, I decided to check the Project Properties of Windows & Web application, started comparing them. There was something different with Target Framework for these applications, Web app was set to .NET Framework 4.0 & Windows to .NET Framework 4 Client Profile. I never bothered about Target Framework being used for project, as I remember selecting 4.0 during initial stage of creation.
I was not aware of .NET Framework 4 Client Profile, so searched on Internet & found very interesting article about it. After reading it I decided to change the Target Framework for Windows app & set it to .NET Framework 4, saved the project. Opened the form where I wanted to drag the control, went to Toolbox expanded the Reporting section & I could see the control, to ensure it works I placed it on form, tried running the project & everything was successful.
After the reading the article about .NET Framework 4 Client Profile I learnt
- .NET Framework 4.0 is made up of the .NET Framework 4 Client Profile and .NET Framework 4 Extended.
- .NET Framework 4 Client Profile does not include many features & assemblies.
- All platforms and CPU architectures supported by the .NET Framework 4 except IA64.
and more which helped me conclude that Crystal Report viewer controls attempts to use components (assemblies) that are not a part of .NET Framework 4 Client Profile. Control either uses components of .NET Framework 4 Extended only or Client Profile & Extended i.e. .NET Framework 4.0.