如何在LINQPad中执行程序集绑定重定向?
解决LINQPad中Elastic.Apm.NetCallAll的程序集版本绑定问题
方法一:通过app.config配置绑定重定向
- 打开LINQPad查询的属性窗口:点击顶部菜单Query → Properties(或按F4)。
- 切换到Advanced标签页,勾选Use app.config file,点击Edit打开配置编辑器。
- 在
<configuration>节点内添加以下配置:
注意:若你的2.2.0.0版本程序集公钥令牌不同,可在LINQPad的References面板中右键该程序集,查看Properties获取正确令牌。<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Microsoft.AspNetCore.Http.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="2.2.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> - 保存配置后,确保已引用Elastic.Apm.NetCallAll和2.2.0.0版本的Microsoft.AspNetCore.Http.Abstractions,运行查询即可。
方法二:动态绑定重定向(代码级)
如果app.config方式不生效,可在查询开头添加动态绑定逻辑:
void Main() { AppDomain.CurrentDomain.AssemblyResolve += (sender, args) => { var assemblyName = new AssemblyName(args.Name); if (assemblyName.Name.Equals("Microsoft.AspNetCore.Http.Abstractions", StringComparison.OrdinalIgnoreCase)) { // 替换为你本地2.2.0.0版本程序集的实际路径 return Assembly.LoadFrom(@"C:\Your\Path\Microsoft.AspNetCore.Http.Abstractions.dll"); } return null; }; // 你的业务代码逻辑 // ... }
内容的提问来源于stack exchange,提问作者Stuart Hemming
相关产品推荐
相关产品推荐

