Reputation: 34529
I'm trying to sort out some assembly redirection that I'm having problems with, unfortunately it doesn't seem to be working at the moment. I've checked all the standard things (and I've actually generated it from a script that's previously worked) and can't figure out what's wrong. These are my errors:
While my current setup is:
I don't want to use the b.b version of the DLL's so I've got my app.config for my Tests.csproj file setup with the following:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="CMS.AmazonStorage" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.370"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.AzureStorage" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.370"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.Blogs" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.388"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.Chat" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.390"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.CKEditor" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.379"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.CMSHelper" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.374"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.CMSSiteMapProvider" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.375"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.CMSStorage" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.366"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.Community" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.388"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.Controls" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.381"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.Controls.XmlSerializers" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.381"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.DatabaseHelper" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.368"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.DataCom" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.394"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.DataEngine" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.366"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.DataProviderSQL" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.366"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.DocumentEngine" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.372"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.Ecommerce" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.390"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.EcommerceProvider" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.393"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.EmailEngine" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.368"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.EventLog" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.366"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.EventManager" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.378"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.ExtendedControls" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.377"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.FormControls" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.385"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.FormEngine" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.370"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.Forums" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.387"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.GlobalEventHelper" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.366"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.GlobalHelper" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.365"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.ImportExport" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.375"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.IO" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.364"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.ISearchEngine" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.363"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.LicenseProvider" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.LicenseProvider.XmlSerializers" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.MediaLibrary" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.387"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.MembershipProvider" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.375"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.MessageBoard" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.387"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.Messaging" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.377"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.MetaWeblogProvider" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.395"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.Newsletter" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.375"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.Notifications" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.388"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.OnlineMarketing" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.392"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.OutputFilter" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.374"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.Polls" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.370"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.PortalControls" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.384"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.PortalEngine" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.372"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.ProjectManagement" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.378"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.Reporting" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.380"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.ResourceManager" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.364"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.SalesForce" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.393"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.Scheduler" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.371"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.SearchProviderSQL" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.366"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.SettingsProvider" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.363"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.SharePoint" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.378"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.SiteProvider" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.369"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.skmMenuControl" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.379"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.SocialNetworking" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.388"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.Synchronization" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.367"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.SynchronizationEngine" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.375"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.TranslationServices" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.374"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.UIControls" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.386"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.URLRewritingEngine" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.377"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.VirtualPathHelper" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.366"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.VirtualPathProvider" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.378"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.WebAnalytics" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.371"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.WebDAV" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.391"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.WebFarmSync" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.367"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.WebFarmSyncHelper" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.375"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.WebServices" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.376"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.WinServiceEngine" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.451"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CMS.WorkflowEngine" publicKeyToken="834b12a258f213f9" />
<bindingRedirect oldVersion="7.0.0.0-7.0.65535.65535" newVersion="7.0.4787.371"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Telerik.JustMock" publicKeyToken="721b6c5bc0326b3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2014.1.1317.4" newVersion="2014.1.1317.4" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
The scriptcs script that I've used to generate these:
using System.IO;
using System.Reflection;
using System.Text.RegularExpressions;
var helper = new AssemblyHelper();
helper.GenerateAssemblyRedirects(@"c:\source\test");
public class AssemblyHelper
{
public void GenerateAssemblyRedirects(String path)
{
StringBuilder sb = new StringBuilder();
foreach(String filePath in Directory.GetFiles(path))
{
String file = Path.GetFileNameWithoutExtension(filePath);
if(filePath.EndsWith(".dll") && file.StartsWith("CMS."))
{
Assembly assembly = Assembly.LoadFile(filePath);
var assemblyName = Path.GetFileNameWithoutExtension(filePath);
var assemblyID = Regex.Match(assembly.FullName, "PublicKeyToken=[a-zA-Z0-9]*").Value.Replace("PublicKeyToken=", "");
var assemblyVersion = Regex.Match(assembly.FullName, @"Version=[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*").Value.Replace("Version=", "");
sb.AppendLine(@"<dependentAssembly>");
sb.AppendLine(String.Format(@"<assemblyIdentity name=""{0}"" publicKeyToken=""{1}"" />", assemblyName, assemblyID));
sb.AppendLine(String.Format(@"<bindingRedirect oldVersion=""7.0.0.0-7.0.65535.65535"" newVersion=""{0}""/>", assemblyVersion));
sb.AppendLine(@"</dependentAssembly>");
}
}
Console.WriteLine(sb.ToString());
}
}
Upvotes: 0
Views: 207
Reputation: 942119
It doesn't have anything to do with assembly direction. Which is something that only applies at runtime. You have compile-time errors.
The compiler is fretting about seeing the wrong version of the reference assembly. That version was recorded in your project file when you first added the reference, possibly months ago. But now it is rebuilding the program and the reference assembly is no longer the same version. You can tell it not to worry about that, select the reference assembly in the References node of your project, set the "Specific version" property to False.
It will now take whatever version it finds without complaint. Beware of compile errors due to drastic changes in the assembly. Very high odds that you don't need the assembly redirects in the .config file, so remove them.
Upvotes: 3