我试图将MangoChat集成到现有的。net项目中。Mango需要使用Newtonsoft。Json版本3.5.0.0,但是我当前的版本是6.x。
从逻辑上讲,我想卸载当前版本,但它有太多的依赖关系,它撕裂了项目。我不能安装版本3.5.0.0旁边的6。因为我不能添加第二个具有相同名称的程序集到.bin文件夹。
我该如何解决这个问题?
X与3.5.0.0版本兼容,您可以添加绑定重定向到新版本。您应该将其添加到您的配置文件中:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="[enter token here]" culture="neutral" />
<bindingRedirect oldVersion="3.5.0.0-6.X" newVersion="6.X"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
取代6。X的实际版本
另一个选项是将程序集添加到不同的文件夹中,并使用AppDomain上的AssemblyResolve事件来查找它。您可以使用这样的代码:
//Load assembly from alternative location
Assembly newtonsoftAssembly = Assembly.LoadFrom(@"C:PathToYourAssembly.dll");
//Handle AssemblyResolve event
AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
{
//Check if your assembly was requested
if (args.Name.Contains("Newtonsoft.Json"))
{
return newtonsoftAssembly;
}
return null;
};
你应该运行这段代码一次,例如在应用程序启动时。