November Happy Hour will be moved to Thursday December 5th.
November Happy Hour will be moved to Thursday December 5th.
Hi Rudi,
The newer versions of EPiServer does not use modulesbin for the EPiServer.Cms.Shell.UI assembly. It should be removed, not sure why you get a build error. Is the assembly still included by the VS project?
Regards,
T
Hi Toni,
Yes, it's included as one of the references. There's something strange here though. There are two versions of the file, one in the bin directory (in root) and one in the bin/modulesbin directory. I'm not sure if the bin/modulesbin directory should even be there? The version of the file in the bin directory is 7.19.1.0, but the version of the file in the bin/modulesbin directory is 3.0.1097.0. The one in the bin/modulesbin directory is the one that's automatically registered. If I remove the reference and add it again manually (in VS), even though I add the one in the bin directory, it registers the one int he modulesbin directory.
If I delete the file in the bin/modulesbin directory, it finds the file in the packages directory before the bin directory. If I then manually add the assembly from the bin directory, it registers the right path, but still gives the same build error.
In case it makes a difference, I got here by the following process:
I thought it might be an issue with using version 8 assemblies, so I reinstalled the assemblies from version 7, but the error is still the same.
Any idea what's going on?
Thanks,
Rudi
Hi Quan,
I tried that, but it's still giving the same build error. What would make it look in the modulesbin folder? There must be some legacy config issue?
Thanks,
Rudi
Edit: my bad, it is still required.
Edit 2: So it's only one project that giving you the error? Would you mind to find your entire solution (use Notepad++, for example) to see any references to modulesbin?
Regards.
/Q
Strange, when you install new package, it should be add references to new version and when you build the project, those assemblies should be copied to bin folder. Might be because you got error while compiling so those new are not copied over.
My suggestion is as above, make sure your solution has no references to the file in modulesbin, delete those and add new references.
/Q
Thanks Quan, I found the error in the project .csproj file. I removed the following lines and after that it managed to build:
<Content Include="bin\modulesbin\EPiServer.Cms.Shell.UI.dll" /> <Content Include="bin\modulesbin\EPiServer.Shell.UI.dll" /> <Content Include="modulesbin\EPiServer.Cms.Shell.UI.dll"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> <Content Include="modulesbin\EPiServer.Shell.UI.dll"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content>
Now, when I load the site it's giving me version conclict errors:
[FileLoadException: Could not load file or assembly 'EPiServer.Data.Cache, Version=7.19.1.0, Culture=neutral, PublicKeyToken=8fe83dea738b45b7' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]
The assemblies in the bin folder are still the 7.5 versions. Is it safe to just remove them and hope the new ones will be copied when I build, or should I replace them manually?
I think you should check that your references are set Copy Local = true, then rebuild your project. It should overwrite the old ones.
Regards.
/Q
Uh-oh, not out of the woods yet. The site loads, but the login page gives a 404 error:
Requested URL: /Util/login.aspx
I wonder if it's not time to restore a backup version and start again?
It looks like you missed some packages ( modules\_protected\CMS\EPiServer.Cms.Shell.UI.zip)
Yes, I think at this point you should start from clean site. Normally the nuget packages would add binding-redirect information to your web.config automatically, so I guess there was something wrong with your upgrade.
Regards.
/Q
I restored my site (and database) to what it was before the upgrade and tried again, using the following process:
After that, the pattern of build errors started again. 'modulesbin/EPiServer.Cms.Shell.UI.dll' still registered in project .csproj file, but sorting that out it gets us to the next step and it will build. But Web.config still has 7.5.1003.0 binding redirects. I could sort that out again, but I can see where this is going. Surely the Update-EPiConfig should have sorted all of this out? What could be getting in the way of the automatic configuration updates?
Edit: Installing EPiServer.CMS.Core also updated the rest of the packages as dependencies. I assumed that it's not necessary to manually update each one independently. I also include the output from the Package Manager Console:
PM> Install-Package EPiServer.CMS.UI.Core -Version 7.19.1 Attempting to resolve dependency 'EPiServer.CMS.Core (≥ 7.19.1 && ≤ 7.23)'. Attempting to resolve dependency 'EPiServer.Framework (= 7.19.1)'. Attempting to resolve dependency 'Newtonsoft.Json (≥ 5.0.8 && < 7.0)'. Attempting to resolve dependency 'Microsoft.AspNet.Mvc (≥ 4.0.20710.0 && < 6.0)'. Attempting to resolve dependency 'Microsoft.AspNet.WebPages (≥ 2.0.20710.0)'. Attempting to resolve dependency 'Microsoft.Web.Infrastructure (≥ 1.0.0.0)'. Attempting to resolve dependency 'Microsoft.AspNet.Razor (≥ 2.0.20710.0)'. Attempting to resolve dependency 'structuremap (≥ 2.6.4.1 && < 3.0)'. Attempting to resolve dependency 'EPiServer.Logging.Log4Net (< 2.0)'. Attempting to resolve dependency 'log4net (= 1.2.10)'. Attempting to resolve dependency 'Castle.Windsor (≥ 3.2 && < 4.0)'. Attempting to resolve dependency 'Castle.Core (≥ 3.2.0)'. Attempting to resolve dependency 'DotNetZip (= 1.9.1.8)'. Installing 'EPiServer.Framework 7.19.1'. You are downloading EPiServer.Framework from EPiServer AB, the license agreement to which is available at http://www.episerver.com/eula/. Check the package for additional dependencies, which may come with their own license agreement(s). Your use of the package and dependencies constitutes your acceptance of their license agreements. If you do not accept the license agreement(s), then delete the relevant components from your device. Successfully installed 'EPiServer.Framework 7.19.1'. Installing 'EPiServer.Logging.Log4Net 0.1.0'. You are downloading EPiServer.Logging.Log4Net from EPiServer AB, the license agreement to which is available at http://www.episerver.com/eula/. Check the package for additional dependencies, which may come with their own license agreement(s). Your use of the package and dependencies constitutes your acceptance of their license agreements. If you do not accept the license agreement(s), then delete the relevant components from your device. Successfully installed 'EPiServer.Logging.Log4Net 0.1.0'. Installing 'EPiServer.CMS.Core 7.19.1'. You are downloading EPiServer.CMS.Core from EPiServer AB, the license agreement to which is available at http://www.episerver.com/eula/. Check the package for additional dependencies, which may come with their own license agreement(s). Your use of the package and dependencies constitutes your acceptance of their license agreements. If you do not accept the license agreement(s), then delete the relevant components from your device. Successfully installed 'EPiServer.CMS.Core 7.19.1'. Installing 'DotNetZip 1.9.1.8'. Successfully installed 'DotNetZip 1.9.1.8'. Installing 'EPiServer.CMS.UI.Core 7.19.1'. You are downloading EPiServer.CMS.UI.Core from EPiServer AB, the license agreement to which is available at http://www.episerver.com/eula/. Check the package for additional dependencies, which may come with their own license agreement(s). Your use of the package and dependencies constitutes your acceptance of their license agreements. If you do not accept the license agreement(s), then delete the relevant components from your device. Successfully installed 'EPiServer.CMS.UI.Core 7.19.1'. Removing 'EPiServer.CMS.Core 7.5.1003.0' from JamesTrustWF.Web. Successfully removed 'EPiServer.CMS.Core 7.5.1003.0' from JamesTrustWF.Web. Removing 'EPiServer.Framework 7.5.1003.0' from JamesTrustWF.Web. Successfully removed 'EPiServer.Framework 7.5.1003.0' from JamesTrustWF.Web. Adding 'EPiServer.Framework 7.19.1' to JamesTrustWF.Web. Successfully added 'EPiServer.Framework 7.19.1' to JamesTrustWF.Web. Updating binding redirect for EPiServer.ApplicationModules Updating binding redirect for EPiServer.Data.Cache Updating binding redirect for EPiServer.Data Updating binding redirect for EPiServer.Events Updating binding redirect for EPiServer.Framework Updating binding redirect for EPiServer.Licensing Updating binding redirect for EPiServer.Shell Adding 'EPiServer.Logging.Log4Net 0.1.0' to JamesTrustWF.Web. Successfully added 'EPiServer.Logging.Log4Net 0.1.0' to JamesTrustWF.Web. Adding binding redirect for EPiServer.Logging.Log4Net . Adding 'EPiServer.CMS.Core 7.19.1' to JamesTrustWF.Web. Successfully added 'EPiServer.CMS.Core 7.19.1' to JamesTrustWF.Web. Updating binding redirect for EPiServer.BaseLibrary Updating binding redirect for EPiServer.Configuration Updating binding redirect for EPiServer Updating binding redirect for EPiServer.Enterprise Updating binding redirect for EPiServer.ImageLibrary Updating binding redirect for EPiServer.Implementation Updating binding redirect for EPiServer.LinkAnalyzer Updating binding redirect for EPiServer.Web.WebControls Updating binding redirect for EPiServer.WorkflowFoundation Updating binding redirect for EPiServer.XForms Adding 'DotNetZip 1.9.1.8' to JamesTrustWF.Web. Successfully added 'DotNetZip 1.9.1.8' to JamesTrustWF.Web. Adding 'EPiServer.CMS.UI.Core 7.19.1' to JamesTrustWF.Web. Successfully added 'EPiServer.CMS.UI.Core 7.19.1' to JamesTrustWF.Web. Adding binding redirect for CMS . Adding binding redirect for EPiServer.Cms.Shell.UI . Adding binding redirect for EPiServer.Shell.UI . Updating binding redirect for EPiServer.UI Adding binding redirect for Shell . Uninstalling 'EPiServer.CMS.Core 7.5.1003.0'. Successfully uninstalled 'EPiServer.CMS.Core 7.5.1003.0'. Uninstalling 'EPiServer.Framework 7.5.1003.0'. Successfully uninstalled 'EPiServer.Framework 7.5.1003.0'. PM> Update-EPiConfig Processing C:\Episerver\JamesTrustWF\packages\EPiServer.CMS.Core.7.19.1\tools\epiupdates\config\7.6.0.0.config PM> Update-EPiDatabase Processing C:\Episerver\JamesTrustWF\packages\EPiServer.CMS.Core.7.19.1\tools\epiupdates\sql\7.8.0.sql Processing C:\Episerver\JamesTrustWF\packages\EPiServer.CMS.Core.7.19.1\tools\epiupdates\sql\7.10.0.sql Processing C:\Episerver\JamesTrustWF\packages\EPiServer.CMS.Core.7.19.1\tools\epiupdates\sql\7.11.0.sql Processing C:\Episerver\JamesTrustWF\packages\EPiServer.CMS.Core.7.19.1\tools\epiupdates\sql\7.12.0.sql Processing C:\Episerver\JamesTrustWF\packages\EPiServer.CMS.Core.7.19.1\tools\epiupdates\sql\7.13.0.sql Processing C:\Episerver\JamesTrustWF\packages\EPiServer.CMS.Core.7.19.1\tools\epiupdates\sql\7.14.0.sql Processing C:\Episerver\JamesTrustWF\packages\EPiServer.CMS.Core.7.19.1\tools\epiupdates\sql\7.16.0.sql Processing C:\Episerver\JamesTrustWF\packages\EPiServer.CMS.Core.7.19.1\tools\epiupdates\sql\7.19.0.sql Processing C:\Episerver\JamesTrustWF\packages\EPiServer.CMS.Core.7.19.1\tools\epiupdates\sql\7.19.1.sql
Edit 2: Here are the runtime bindings in Web.config:
<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <probing privatePath="modulesbin" /> <dependentAssembly> <assemblyIdentity name="EPiServer.ApplicationModules" publicKeyToken="8fe83dea738b45b7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.5.1003.0" newVersion="7.5.1003.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="EPiServer.Data.Cache" publicKeyToken="8fe83dea738b45b7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.19.1.0" newVersion="7.19.1.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="EPiServer.Data" publicKeyToken="8fe83dea738b45b7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.5.1003.0" newVersion="7.5.1003.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="EPiServer.Events" publicKeyToken="8fe83dea738b45b7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.19.1.0" newVersion="7.19.1.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="EPiServer.Framework" publicKeyToken="8fe83dea738b45b7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.5.1003.0" newVersion="7.5.1003.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="EPiServer.Licensing" publicKeyToken="8fe83dea738b45b7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.5.1003.0" newVersion="7.5.1003.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="EPiServer.Shell" publicKeyToken="8fe83dea738b45b7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.5.1003.0" newVersion="7.5.1003.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="4.5.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="StructureMap" publicKeyToken="e60ad81abae3c223" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-2.65535.65535.65535" newVersion="2.6.4.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="4.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-3.65535.65535.65535" newVersion="3.2.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Castle.Windsor" publicKeyToken="407dd0808d44fbdc" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-3.65535.65535.65535" newVersion="3.2.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="EPiServer.BaseLibrary" publicKeyToken="8fe83dea738b45b7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.5.1003.0" newVersion="7.5.1003.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="EPiServer.Configuration" publicKeyToken="8fe83dea738b45b7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.5.1003.0" newVersion="7.5.1003.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="EPiServer" publicKeyToken="8fe83dea738b45b7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.5.1003.0" newVersion="7.5.1003.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="EPiServer.Enterprise" publicKeyToken="8fe83dea738b45b7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.5.1003.0" newVersion="7.5.1003.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="EPiServer.ImageLibrary" publicKeyToken="8fe83dea738b45b7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.5.1003.0" newVersion="7.5.1003.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="EPiServer.Implementation" publicKeyToken="8fe83dea738b45b7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.19.1.0" newVersion="7.19.1.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="EPiServer.LinkAnalyzer" publicKeyToken="8fe83dea738b45b7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.5.1003.0" newVersion="7.5.1003.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="EPiServer.UI" publicKeyToken="8fe83dea738b45b7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.19.1.0" newVersion="7.19.1.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="EPiServer.Web.WebControls" publicKeyToken="8fe83dea738b45b7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.5.1003.0" newVersion="7.5.1003.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="EPiServer.WorkflowFoundation" publicKeyToken="8fe83dea738b45b7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.5.1003.0" newVersion="7.5.1003.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="EPiServer.XForms" publicKeyToken="8fe83dea738b45b7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.5.1003.0" newVersion="7.5.1003.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="log4net" publicKeyToken="1b44e1d426115821" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-1.65535.65535.65535" newVersion="1.2.10.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="EPiServer.Search.IndexingService" publicKeyToken="8fe83dea738b45b7" culture="neutral" /> <bindingRedirect oldVersion="1.0.517.262-7.65535.65535.65535" newVersion="7.5.394.2" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="EPiServer.Logging.Log4Net" publicKeyToken="8fe83dea738b45b7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-0.1.0.0" newVersion="0.1.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="CMS" publicKeyToken="8fe83dea738b45b7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="EPiServer.Cms.Shell.UI" publicKeyToken="8fe83dea738b45b7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.19.1.0" newVersion="7.19.1.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="EPiServer.Shell.UI" publicKeyToken="8fe83dea738b45b7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.19.1.0" newVersion="7.19.1.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Shell" publicKeyToken="8fe83dea738b45b7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="OpenWaves" publicKeyToken="7d0a8c4a744cf5c7" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-1.0.88.340" newVersion="1.0.88.340" /> </dependentAssembly> </assemblyBinding> </runtime>
Yes, that does work, but I'm still stuck with the login being broken after that. Even on my working installation I can't find EPiServer.Cms.Shell.UI.zip - where should it be?
As I mentioned above, it should be in modules\_protected\
You should be able to find it in packages\EPiServer.CMS.Shell.UI <version>
/Q
Eventually I got it sorted out. If anyone else is in the same position, this was what worked:
1. Restore last known good version of the site and database
2. Run 'Install-Package EPiServer.CMS.Core -Version 7.19.2' in package manager console
3. Run 'Update-EPiConfig' in package manager console
4. Run 'Update-EPiDatabase' in package manager console
5. Fix any incorrect bindings in Web.config and site dll.config (maybe only necessary to update Web.config?)
6. Run 'Install-Package EPiServer.CMS.UI -Version 7.19.1' in package manager console
7. Delete EPiServer.Cms.Shell.UI.dll and EPiServer.Shell.UI.dll from modulesbin and bin\modulesbin if they exist there
8. Remove includes for modulebin\EPiServer.Cms.Shell.UI.dll and modulebin\EPiServer.Shell.UI.dll as mentioned in previous post above
After that, the site and admin interface worked properly for me and I did not need to copy EPiServer.Cms.Shell.UI.zip anywhere.
I installed the EPiServer.CMS.UI.Core nuget package (version 7.19.1). The post-install readme.txt that came up indicated that EPiServer no longer looks in modulesbin for the UI packages, but my solution will not build because it's still looking in modulesbin for EPiServer.Cms.Shell.UI.dll:
If I put the UI files in modulesbin, it builds, but gives a linking error if I try to load the site:
Any suggestions for resolving this issue?