EPiServer.UI referencing older EPiServer.Cms.Core?

Vote:
 

In a 7.0 -> 7.5 upgrade I'm having some issues.

The project won't compile, the oh-so-famous "Unable to load one or more requested types. Retrieve the LoaderExceptions property for more information" SGEN error is all the info I get from the error list in Visual Studio.

So I enabled Fusion Log. It tells me, if I'm not mistaken, that EPiServer.UI is trying to find EPiserver.dll version 7.13.2:

The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Running under executable  C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\sgen.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: DisplayName = EPiServer, Version=7.13.2.0, Culture=neutral, PublicKeyToken=8fe83dea738b45b7
 (Fully-specified)
LOG: Appbase = file:///C:/Program Files (x86)/Microsoft SDKs/Windows/v8.1A/bin/NETFX 4.5.1 Tools/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = sgen.exe
Calling assembly : EPiServer.UI, Version=7.13.0.0, Culture=neutral, PublicKeyToken=8fe83dea738b45b7.
===
LOG: This bind starts in LoadFrom load context.
WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load().
LOG: No application configuration file found.
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Post-policy reference: EPiServer, Version=7.13.2.0, Culture=neutral, PublicKeyToken=8fe83dea738b45b7
LOG: GAC Lookup was unsuccessful.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/Microsoft SDKs/Windows/v8.1A/bin/NETFX 4.5.1 Tools/EPiServer.DLL.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/Microsoft SDKs/Windows/v8.1A/bin/NETFX 4.5.1 Tools/EPiServer/EPiServer.DLL.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/Microsoft SDKs/Windows/v8.1A/bin/NETFX 4.5.1 Tools/EPiServer.EXE.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/Microsoft SDKs/Windows/v8.1A/bin/NETFX 4.5.1 Tools/EPiServer/EPiServer.EXE.
LOG: Attempting download of new URL file:///D:/MyProject/packages/EPiServer.CMS.UI.Core.7.13.0/lib/net40/EPiServer.DLL.
LOG: Attempting download of new URL file:///D:/MyProject/packages/EPiServer.CMS.UI.Core.7.13.0/lib/net40/EPiServer/EPiServer.DLL.
LOG: Attempting download of new URL file:///D:/MyProject/packages/EPiServer.CMS.UI.Core.7.13.0/lib/net40/EPiServer.EXE.
LOG: Attempting download of new URL file:///D:/MyProject/packages/EPiServer.CMS.UI.Core.7.13.0/lib/net40/EPiServer/EPiServer.EXE.
LOG: All probing URLs attempted and failed.

The latest EPiServer.Cms.Core nuget is version 7.13.3, and I do not have 7.13.2 installed. I do have the latest EPiServer.UI.Core package installed (7.13.0).

If this is the cause of the compile error - does anyone know a workaround?

#90740
Sep 17, 2014 9:58
Vote:
 

Is there a binding redirect in config for EPiServer.dll and is it set to 7.13.3?

#90746
Sep 17, 2014 11:13
Vote:
 

Yes, like this:






#90748
Sep 17, 2014 11:21
Vote:
 

I managed to fix it by comparing references with Alloy and adding assemblies that were missing. Also compared assembly redirects in web.config with Alloy, and added those missing.

Also - found out that .dll's in modulesbin will override whatever you've specificed in assembly redirects. In my case I had old versions which prevented the site from starting.

#90758
Sep 17, 2014 13:44
Vote:
 

Sorry for bumping old issue, but we are facing currently similar issues with EPiServer.UI.dll and EPiServer.dll after updating EPiServer Commerce packages from nuget from 7.5 to 8.6.1. 

Do you remember what exactly solved this issue? I've been trying with your previous trip and trying with various tips from around internet but nothing seems to be working.

Basically in debug mode the build is successful, and by turning project file setting: Generate serialization assembly: Off from release builds, they work also. But using the default Auto setting on release builds (which worked on EPiServer 7.5) this issue occurs. Assemblies and bindings should be correct.

I also wonder does turning Generate serialization assembly: off cause any issues on EPiServer Commerce site?

Any help would be appreciated.

#115283
Edited, Jan 13, 2015 10:15
Vote:
 

Hi,

I remember the key to my issue was that I had older dll's in the modulesbin folder. Deleting the contents of that folder solved it for me.

Unfortunatly, I don't have any experience with Commerce, but I would give fusion log a shot (enable fusion log).

#115288
Jan 13, 2015 11:07
Vote:
 

I cleared the modulesbin as well as you suggested, but that was no help for me. The fusion log looks pretty much the same as yours, of course with different version numbers.

Anyway, thanks for quick answer!

If anyone else has some information related to this issue, please let me know.

#115290
Jan 13, 2015 11:17
Vote:
 

I have the same problem, now with Episerver.UI ver 8.1.0.0 looking for Episerver ver 8.2.0.0, while 8.4.0.0 of the latter is installed. I cleaned modulesbin, checked redirects in web.config, compared with clean Alloy setup (which works, annoyingly). Have you managed to fix the problem, Samuli?

My FusionLog:

*** Assembly Binder Log Entry  (10.12.2015 @ 16:05:35) ***

The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Running under executable  C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\sgen.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: DisplayName = EPiServer, Version=8.2.0.0, Culture=neutral, PublicKeyToken=8fe83dea738b45b7
 (Fully-specified)
LOG: Appbase = file:///C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0A/bin/NETFX 4.0 Tools/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = sgen.exe
Calling assembly : EPiServer.UI, Version=8.1.0.0, Culture=neutral, PublicKeyToken=8fe83dea738b45b7.
===
LOG: This bind starts in LoadFrom load context.
WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load().
LOG: No application configuration file found.
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Post-policy reference: EPiServer, Version=8.2.0.0, Culture=neutral, PublicKeyToken=8fe83dea738b45b7
LOG: GAC Lookup was unsuccessful.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0A/bin/NETFX 4.0 Tools/EPiServer.DLL.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0A/bin/NETFX 4.0 Tools/EPiServer/EPiServer.DLL.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0A/bin/NETFX 4.0 Tools/EPiServer.EXE.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/Microsoft SDKs/Windows/v8.0A/bin/NETFX 4.0 Tools/EPiServer/EPiServer.EXE.
LOG: Attempting download of new URL file:///C:/dev/branches/epi_upgrade/src/packages/EPiServer.CMS.UI.Core.8.1.0/lib/net45/EPiServer.DLL.
LOG: Attempting download of new URL file:///C:/dev/branches/epi_upgrade/src/packages/EPiServer.CMS.UI.Core.8.1.0/lib/net45/EPiServer/EPiServer.DLL.
LOG: Attempting download of new URL file:///C:/dev/branches/epi_upgrade/src/packages/EPiServer.CMS.UI.Core.8.1.0/lib/net45/EPiServer.EXE.
LOG: Attempting download of new URL file:///C:/dev/branches/epi_upgrade/src/packages/EPiServer.CMS.UI.Core.8.1.0/lib/net45/EPiServer/EPiServer.EXE.
LOG: All probing URLs attempted and failed.

My packages.config:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="AntiXSS" version="4.2.1" targetFramework="net45" />
  <package id="Castle.Core" version="3.2.0" targetFramework="net45" />
  <package id="Castle.Windsor" version="3.2.1" targetFramework="net45" />
  <package id="DotNetZip" version="1.9.1.8" targetFramework="net40" />
  <package id="EPiServer.CMS.Core" version="8.4.0" targetFramework="net45" />
  <package id="EPiServer.CMS.UI" version="8.1.0" targetFramework="net45" />
  <package id="EPiServer.CMS.UI.Core" version="8.1.0" targetFramework="net45" />
  <package id="EPiServer.Framework" version="8.4.0" targetFramework="net45" />
  <package id="EPiServer.Logging.Log4Net" version="1.0.0" targetFramework="net45" />
  <package id="EPiServer.Packaging" version="3.2.2" targetFramework="net45" />
  <package id="EPiServer.Packaging.UI" version="3.2.2" targetFramework="net45" />
  <package id="HtmlAgilityPack" version="1.4.6" targetFramework="net45" />
  <package id="log4net" version="1.2.10" targetFramework="net45" />
  <package id="Microsoft.AspNet.Mvc" version="4.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.Razor" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebPages" version="2.0.20710.0" targetFramework="net45" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
  <package id="Nancy" version="0.13.0" targetFramework="net45" />
  <package id="Nancy.Hosting.Aspnet" version="0.13.0" targetFramework="net45" />
  <package id="NBuilder" version="3.0.1.1" targetFramework="net45" />
  <package id="Newtonsoft.Json" version="5.0.8" targetFramework="net45" />
  <package id="NuGet.Core" version="2.5.0" targetFramework="net45" />
  <package id="ServiceStack.Text" version="3.9.27" targetFramework="net45" />
  <package id="structuremap" version="2.6.4.1" targetFramework="net45" />
  <package id="TweetSharp" version="2.3.1" targetFramework="net45" />
</packages>

And relevant redirects in web.config:

      <dependentAssembly>
        <assemblyIdentity name="EPiServer" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-8.4.0.0" newVersion="8.4.0.0" />
      </dependentAssembly>

      <dependentAssembly>
        <assemblyIdentity name="EPiServer.UI" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-8.1.0.0" newVersion="8.1.0.0" />
      </dependentAssembly>
#142438
Dec 10, 2015 16:46
Vote:
 

Paweł: I couldn't find any fix for this, but I as far as I remember turning project file setting: Generate serialization assembly: Off was the way to go for me.  

I have not noticed any problems with that change in the past year.

#143237
Jan 18, 2016 11:06
This topic was created over six months ago and has been resolved. If you have a similar question, please create a new topic and refer to this one.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.