I have a question about upgrade of Commerce 1 SP1 Sample site to Commerce 1 R2 SP1.
I am trying to make an upgrade according to Upgrading EPiServer Commerce from version 1.0 SP1 to 1 R2 SP1 manual. I have got "Failedto load some types from "EPiServer.Business.Commerce.Payment"..." exception after upgrade. I have fixed it by copying of the EPiServer.Business.Commerce.Payment.dll from Upgrading Files - EPiServer Commerce 1 R2 SP1 package.
The main page of the sample site is working after that however there is exception when I am trying to open any catalog using main menu items ("Digital cameras", "Camera accessories"....):
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately. Parser Error Message: Could not load type 'EPiServer.Business.Commerce.Sample.Templates.Commerce.MasterPages.MasterPage'.Source Error:
Line 1: <%@ Master Language="C#" AutoEventWireup="true" CodeBehind="MasterPage.master.cs"
Line 2: Inherits="EPiServer.Business.Commerce.Sample.Templates.Commerce.MasterPages.MasterPage" %>
Source File: /Templates/Commerce/MasterPages/MasterPage.Master Line: 1
Whether I have missed anything during upgrade that it does not work and how this problem could be fixed?
The error indicates that ASP cannot find your type EPiServer.Business.Commerce.Sample.Templates.Commerce.MasterPages.MasterPage in the assemblies. Have you recompiled the project after the upgrade, so you know that the project is compilable?
Yes, I have tried to recompile the CommerceSample project. The compilation is successful.
The problem is that \Templates\Commerce and \Templates\Everything folders were excluded from the project in EPiServer Commerce 1 R2 SP1 Sample Templates upgrade however aspx pages still have reference to the Templates.Commerce.MasterPages.MasterPage (which is inside \Templates\Commerce folder).
I have tried to add to the project the \Templates\Commerce and \Templates\Everything folders from the previous version of the Sample site. However the project became not compilable in this case as code inside these folders uses Mediachase.Search.FacetGroup type which does not exist any more in Mediachase.Search assembly of the 5.2.377.1 version.
Could you please suggest the solution for this problem?
Yes, there are some breaking changes which will break the old templates. include the templates again and repair all the errors, then the site will work again.
Download the API reference for Commerce R2 SP2, there you will for example find that the class FacetGroup is now in the Mediachase.Search.Extensions assembly.
Thank you for the quick replay.
Hi have tried this way.
I had only 2 wrong references: for FacetGroup and for CreditCardValidator. I have used new namespaces for them: Mediachase.Search.Extensions and Mediachase.Commerce.Shared accordingly.
However now I have 11 hardly fixed errors like:
'Mediachase.Search.SearchManager' does not contain a definition for 'GetIndexSearcher' and no extension method 'GetIndexSearcher' accepting a first argument of type 'Mediachase.Search.SearchManager' could be found (are you missing a using directive or an assembly reference?) C:\EPiServer\Sites\EPiCommerce\Templates\Commerce\Pages\ProductListing.aspx.cs
The best overloaded method match for 'Mediachase.Commerce.Orders.IShippingGateway.GetRate(System.Guid, Mediachase.Commerce.Orders.Shipment, ref string)' has some invalid arguments C:\EPiServer\Sites\EPiCommerce\Templates\Everything\BusinessControls\CheckoutControls\SharedModules\ShippingModule.ascx.cs
Argument '2': cannot convert from 'Mediachase.Commerce.Orders.LineItem' to 'Mediachase.Commerce.Orders.Shipment' C:\EPiServer\Sites\EPiCommerce\Templates\Everything\BusinessControls\CheckoutControls\SharedModules\ShippingModule.ascx.cs
and so on. It looks like this way needs quite sufficient changes in source code of the sample.
Any ideas for some easier solution for this issue?