Visual Studio 2010, Crystal Report for Visual Studio 2008 and ClickOnce
I'm in a bit of trouble here. I upgraded one of our Winforms products from VS2008 to VS2010 about 4 weeks ago. The convers开发者_如何学Goion was fine but we used Crystal Reports so had to install the VS2010 Crsytal Reports for Visual Studio 2010 Beta 2. This was fine and gave me the designer etc. back for crystal. I chose not to convert the reports when the solution opens so they are still setup for the original version of crystal.
We then continued with 4 weeks worth of development and now I come to do my first ClickOnce deploy under Vsiaul Studio 2010 and I'm having serious issues. ClickOnce Application files are set to having CrystalReports related modules as Prerequisites. I still want the end user to use the Crystal Reports for VS2008 rather than the runtime for 2010 which is ridiculously big and a beta.
When I publish the manifest is saying that the dependency for crystal is on version 14.0.2000.0 (VS2010 version of crystal report) but all the DLL references in the projects are set to use specific version and to point to 10.5.3700.0 (VS2008 version of crystal report). This means when trying to install from ClickOnce it fails saying:
"Unable to install or run the application The application requires that assembly CrystalDecisions.CrystalReports.Engine Version 14.0.2000.0 be installed in the Global Assembly Cache (GAC) first)"
I can't work out why the manifest is intent on using that version number given all the references are pointing to another version. If I bundle the VS2010 crystal runtimes that are beta into the ClickOnce deploy then the client gets the opposite error message saying that 10.5.3700.0 is required. If I install 10.5.3700.0 on the client they get a working system but I have to install the 10.5.3700.0 version manually and before that they've first had to endure an epic install of the 2010 runtime (14.0.2000.0) which doesn't even get used.
Essentially I am trying to get the manifest to say 10.5.3700.0 or figure out why VS2010 is intent on putting a newer version number in there.
Please help. Thanks
I converted the solution back to VS2008. Going back was relatively seamless. Since Crystal is in beta, the runtimes used to be ridiculously big, and I was losing large amounts of time on the ClickOnce deploys. The rollback solved all three.
I'm not happy about going back but the realities of using Crystal Reports in the year 2010 are pretty bad. I'll monitor progress from SAP as I know they are aiming to reduce runtimes this quarter and move out of beta.
Do you have the new CR stuff installed on your computer where you are building the application? If so, it's probably referencing the assemblies in the GAC.
You can try copying the assemblies you need into the project and setting the reference to point at the local copies, then on the reference set "copy local" to true. This will make sure it is referencing the local copies and not the ones in the GAC.
If that doesn't work, I would try copying the prerequisite for the previous version of Crystal Reports from the VS2008 folder to the VS2010 folder. You will find the packages here:
C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages (64-bit machine)
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages
Then close and reopen Visual Studio, and the old prerequisite should show up in VS and allow you to select it.
精彩评论