c# - 如何禁用特定 dll 的自动绑定重定向
问题描述
可以通过以下代码为整个项目禁用自动绑定重定向:
<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
您知道如何禁用特定的自动绑定重定向dll
吗?
我正在尝试将重定向逻辑从客户端(*.exe | app.config & PS | CurrentDomain.AssemblyResolve
)移动到类库本身。
下面的架构是我使用的简化解决方案。
PS\exe(client) --> adapters.dll
| --> adapter.V1.dll --> third.party.V1.dll (assembly_name: third.party v1)
|
| --> adapter.V2.dll --> third.party.V2.dll (assembly_name: third.party v2)
|
| --> adapter.V3.dll --> third.party.V2.dll (assembly_name: third.party v3)
我无法访问的重要内容third.party.dll
。所有版本之间的程序集名称相同。我只是更改了这些文件的文件名,dlls
以便将它们保存在一个文件夹中。我一直在使用*.exe | app.config & PS | CurrentDomain.AssemblyResolve
重定向逻辑。但我会说这不是很方便。我有很多不同的客户,不想app.config
每次都更新文件。这就是为什么我需要将重定向逻辑从客户端移动到adapters.dll
. 这很容易 - 我只需要设置AutoGenerateBindingRedirects
并false
编写一个自定义解析逻辑,如下所示:
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
//...redirecting logic
}
但关键是我不想AutoGenerateBindingRedirects
为整个项目禁用,因为其他一些程序集可能需要自动解析。
您知道如何禁用特定的自动绑定重定向dll
吗?
解决方案
推荐阅读
- javascript - VUE - 数据对象总是作为引用传递还是有时被复制?
- python - 如何使用 iterrows 更正 Python Pandas 数据框中的值?
- java - z/OS C/C++ fseeko 对于多卷数据集非常慢
- angular - 关闭身份验证时的默认用户(Angular)
- java - JavaFX 任务等待
- python - 读取包含标题的多行 CSV 文件
- reactjs - 当我在 Postman 中测试时,AWS Lambda 函数可以使用,但是当我尝试在我的 ReactJS 中实现时,我得到状态码 500
- node.js - 仅更新以 JSON 格式发送的字段
- python - 从 python 内部的数据库中删除记录会出错
- vue.js - VueJS将计算值从组件传递给父级