In this blog I want to discuss what to look out for if you are re-installing the Coveo package unto Sitecore 8. In developing within a Sitecore 8 site recently I had installed the Coveo version 1266 package on the site but needed to replace it with the Coveo version 1226. Each time I tried to replace the Coveo package installation and then tried to access the Sitecore instance, this error would appear and the instance would become unusable (thank goodness for back-ups in my case, always make a backup when you are installing a package you are unfamiliar with).
The third time was the charm when I realized what had to happen to successfully replace one Coveo package with another.
Like any Sitecore package, it comes in the form of a zip file and this zip file contains many Sitecore items, needed DLLs and configuration files. The Sitecore items and the DLLs are generally fine in terms of replacement but the configuration files are another issue all together.
When you first install the Coveo package, it installs the following configuration files.
- SearchProvider.config.example
- SearchProvider.Licensing.config.example
- SearchProvider.Rest.config.example
- UI.Controls.config.example
Note that each file has an example file extension. Part of the installation process is loading these files into the App_Config\Include folder of the Sitecore installation. The Coveo installation will alert you to rename the configuration files by removing the example file extension so Sitecore can find the files and add it to its overall web.config when launched.
Once I gave the situation more thought, the following became apparent. The installation process to replace the existing Coveo package installation was dropping off the example configuration files as usual. When the package installation process was trying to complete by launching its admin tool, it was running with the previously installed set of configuration files. Unfortunately, this configuration is not compatible with the version of the Coveo package I was trying to install in its place resulting in the error which would render my Sitecore instance unusable.
Once I did one more back-up restore, I renamed the previous set of Coveo configuration files by adding disabled at the end of each configuration file as shown below. Then I re-installed the Coveo package. Since the installation no longer saw a set of configuration files to use (since the previous set is renamed to disabled and the new set still has the example extension), it completed the process by running the Coveo package installation administrator and allowed the installation process to complete as if installing it for the first time. I then renamed the new configuration files by removing the example extension as before which leaves me with the configuration file set seen in the image below, problem solved.
I had a back-up environment to work from so I always went back to that when I could not get the instance to work at all while trying to solve this issue. If you did not have the same fortune, I would suggest disabling the previous set of configuration files and then see if you can run the Sitecore instance without a running Coveo installation. If that works, you can then re-install the Coveo package and replace the configuration files as discussed in this blog, leading to a working Sitecore instance again with the proper Coveo package in place.