我的 Fiddler 安装了许多插件,有一些插件存在 DLL 名冲突问题,比如多个不同的插件都存在名为 PluginCore.dll 但实际实现逻辑完全不相同的程序集。这就导致了多个插件的安装之间,如果没有将其放入到单独的文件夹内,将会因为文件名相同而冲突,让插件不能同时都安装。本文将和大家介绍 Fiddler 官方提供的将插件放在独立子文件夹的方法,用来解决 DLL 命名冲突
在 Fiddler 里,安装自定义插件给到 Fiddler 的最通用的方法就是将插件 DLL 和插件的依赖程序集拷贝到 %USERPROFILE%\Documents\Fiddler2\Scripts
文件夹里面,也就是 我的文档\Fiddler2\Scripts
文件夹里面
直接拷贝 DLL 到 我的文档\Fiddler2\Scripts
文件夹里面将可能遇到本文开始提到的 DLL 名冲突的问题。解决方法就是将插件放入到 Scripts 文件夹里面的里层文件夹内。放入到里层文件夹内需要遵循以下的规则才会被 Fiddler 当成插件加载
- 子文件夹必须是采用
.ext
结尾 - 放入到子文件夹的插件需要使用
Fiddler
开头,满足Fiddler*.dll
通配符
接下来是详细的介绍,我所在的团队开发了一个名为 Friday 的插件,这个插件就是周五了,差不多快周六了的意思。我将使用这个插件和大家介绍如何将这个插件放入到 Fiddler 的 Scripts 文件夹里面的里层文件夹内
先将插件程序集的命名修改满足 Fiddler*.dll
规则,如将 Firday 插件命名为 FiddlerFridayPlugin 程序集。修改程序集名,可以右击项目属性,修改程序集。也可以编辑 csproj 项目文件,修改 AssemblyName 属性,如以下代码
接着在 我的文档\Fiddler2\Scripts
文件夹里面新建一个子文件夹,要求这个子文件夹使用 .ext
结尾,比如 FiddlerFridayPlugin.ext
类似的命名格式
将构建输出的插件 DLL 等文件拷贝到上一步创建的子文件夹,完成之后的文件夹大概如下
如此即可将插件放在独立的文件夹里面,防止和其他插件命名冲突
在日常开发中,如果想要让开发更加方便,可以编辑 csproj 项目文件,让插件构建输出到子文件夹里面,以下是项目文件代码
大家可以拷贝以上的 csproj 项目格式文件替换自己插件的 csproj 项目文件内容,记得更改 AssemblyName 为你期望的插件名即可,记得替换的时候保持使用 Fiddler 开头
另外还需要替换 你的Fiddler文件夹\Fiddler.exe
为你真正的 Fiddler 安装路径,如此才能让项目对 Fiddler 进行引用
使用以上的 csproj 项目格式制作的插件,可以在构建完成之后,自动给 Fiddler 安装上
细心的伙伴还可以看到注释掉的 KillFiddler 代码,这是因为插件的安装是需要重启 Fiddler 的,而且如果 Fiddler 正在运行过程中,旧版本插件还被引用,需要杀掉 Fiddler 才能覆盖插件文件。根据大家自己的需求,可以自己去掉注释,这样就可以在构建过程自动杀掉 Fiddler 应用
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。 欢迎转载、使用、重新发布,但务必保留文章署名 林德熙 (包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我 联系。