Fiddler 将插件放在独立子文件夹
我的 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 属性,如以下代码
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<!-- 根据 Fiddler 插件的要求,放入到子文件夹里面的插件,必须采用 Fiddler 开头,符合 Fiddler*.dll 才能被加载。因此这里修改程序集名,让输出程序集满足要求 -->
<AssemblyName>FiddlerFridayPlugin</AssemblyName>
</PropertyGroup>
</Project>
接着在 我的文档\Fiddler2\Scripts 文件夹里面新建一个子文件夹,要求这个子文件夹使用 .ext 结尾,比如 FiddlerFridayPlugin.ext 类似的命名格式
将构建输出的插件 DLL 等文件拷贝到上一步创建的子文件夹,完成之后的文件夹大概如下
C:\Users\YourName\Documents\Fiddler2
│
└─Scripts
│
└─FiddlerFridayPlugin.ext
├FiddlerFridayPlugin.dll
├FiddlerFridayPlugin.pdb
├HandyControl.dll
├Jgrass.FiddlerPlugin.dll
└Newtonsoft.Json.dll
如此即可将插件放在独立的文件夹里面,防止和其他插件命名冲突
在日常开发中,如果想要让开发更加方便,可以编辑 csproj 项目文件,让插件构建输出到子文件夹里面,以下是项目文件代码
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Library</OutputType>
<TargetFramework>net48</TargetFramework>
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
<LangVersion>latest</LangVersion>
<!-- 根据 Fiddler 插件的要求,放入到子文件夹里面的插件,必须采用 Fiddler 开头,符合 Fiddler*.dll 才能被加载。因此这里修改程序集名,让输出程序集满足要求 -->
<AssemblyName>FiddlerFridayPlugin</AssemblyName>
<!-- 不要添加 net48 文件夹 -->
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<!-- 根据 Fiddler 插件的要求,放入到子文件夹里面的插件,必须放入到后缀为 .ext 文件夹里面 -->
<OutputPath>..\Bin\$(Configuration)\$(AssemblyName).ext\</OutputPath>
</PropertyGroup>
<ItemGroup>
<Reference Include="Fiddler">
<HintPath>你的Fiddler文件夹\Fiddler.exe</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="System.Web" />
</ItemGroup>
<!--<Target Name="KillFiddler" BeforeTargets="PreBuildEvent">
<Exec Command="taskkill /F /IM Fiddler.exe" />
</Target>-->
<Target Name="CopyOutput" AfterTargets="PostBuildEvent">
<Exec Command="xcopy ..\\Bin\\Debug %USERPROFILE%\\Documents\\Fiddler2\\Scripts /s /e /y" />
</Target>
</Project>
大家可以拷贝以上的 csproj 项目格式文件替换自己插件的 csproj 项目文件内容,记得更改 AssemblyName 为你期望的插件名即可,记得替换的时候保持使用 Fiddler 开头
另外还需要替换 你的Fiddler文件夹\Fiddler.exe 为你真正的 Fiddler 安装路径,如此才能让项目对 Fiddler 进行引用
使用以上的 csproj 项目格式制作的插件,可以在构建完成之后,自动给 Fiddler 安装上
细心的伙伴还可以看到注释掉的 KillFiddler 代码,这是因为插件的安装是需要重启 Fiddler 的,而且如果 Fiddler 正在运行过程中,旧版本插件还被引用,需要杀掉 Fiddler 才能覆盖插件文件。根据大家自己的需求,可以自己去掉注释,这样就可以在构建过程自动杀掉 Fiddler 应用
Fiddler 将插件放在独立子文件夹的更多相关文章
- MVC文件上传09-使用客户端jQuery-File-Upload插件和服务端Backload组件让每个用户有专属文件夹,并在其中创建分类子文件夹
为用户创建专属上传文件夹后,如果想在其中再创建分类子文件夹,该怎么做?可以在提交文件的视图中再添加一个隐藏域,并设置 name="uploadContext". 相关兄弟篇: MV ...
- C#遍历指定文件夹中的所有文件和子文件夹
参考:http://www.cnblogs.com/skylaugh/archive/2012/09/23/2698850.html DirectoryInfo TheFolder=new Direc ...
- ci 的控制器文件夹下开加子文件夹
在一个比较大的项目中,希望controllers下再细分子文件夹.例如:controllers/pj,controllers/xxk等. 做法是: 1.在controllers下添加相关的子文件夹,例 ...
- CKFinder根据用户设置权限,不同用户有自己的私有的、独立的文件夹
CKFinder 默认情况下多个用户共用同一个图片目录.所有上传的图片和Flash全部保存在同一个文件夹(默认为 userfiles)内. 现在想实现: 第1个需求:不同用户有自己的私 ...
- 文件夹中含有子文件夹,修改子文件夹中的图像存储格式(python实现)
文件夹中含有子文件夹,修改子文件夹中的图像存储格式,把png图像改为jpg图像,python代码如下: import os import cv2 filePath = 'C:\\Users\\admi ...
- Fiddler高级技巧 - 映射路径到本地文件夹
适用场景: 你是前端开发人员,要开发一个小模块,需要用到线上的环境(账号.数据.跨域等),但你又没有权限往线上传文件 你是移动测试人员,需要将一组接口的返回结果替换为另一组,最简单的办法就是使用Fid ...
- ThinkPHP第十二天(Import导入第三方类库方法,独立分组文件夹结构)
1.Import(路径+类名,基础路径): 平时导入类时有三种基础路径:Think:import('Think.core.Action');Think表示ThinkPHP/Lib基础路径,完整路径为T ...
- gulp插件实现压缩一个文件夹下不同目录下的js文件(支持es6)
gulp-uglify:压缩js大小,只支持es5 安装: cnpm: cnpm i gulp-uglify -D yarn: yarn add gulp-uglify -D 使用: 代码实现1:压缩 ...
- android 内部存储相关知识点: getfilestreampath getDir 子文件夹
文件系统的API的命名方式和常规的不一样: 都是get命名,但是功能就是能创建文件夹... 这种方式的API 命名习惯和常规的不一样... createXXX ----方便查找 http://i ...
- C# 在本地创建文件夹及子文件夹
string dict = @"d:\估价报告\"; if (!Directory.Exists(dict)) { Directory.CreateDirectory(dict); ...
随机推荐
- View事件机制分析
目录介绍 01.Android中事件分发顺序 1.1 事件分发的对象是谁 1.2 事件分发的本质 1.3 事件在哪些对象间进行传递 1.4 事件分发过程涉及方法 1.5 Android中事件分发顺序 ...
- YCProgress自定义百分比进度条
目录介绍 1.本库优势亮点 2.使用介绍 2.1 圆环百分比进度条 2.2 直线百分比进度条 2.3 仿杀毒类型百分比进度条 3.注意要点 4.效果展示 5.其他介绍 1.本库优势亮点 圆环百分比进度 ...
- 记录--vue3函数式弹窗
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 最近接到一个需求,需要在一些敏感操作进行前要求输入账号和密码,然后将输入的账号和密码加到接口请求的header里面.如果每个页面都去 ...
- 记录--原生 canvas 如何实现大屏?
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 可视化大屏该如何做?有可能一天完成吗?废话不多说,直接看效果,线上 Demo 地址 lxfu1.github.io/large-sc ...
- 生产环境ES的一个持续转换(continuous transform)报错,问题排查
背景:有一天突然发现,业务统计的一个数据异常,遂立即排查原因,查看后发现一个mode是continuous 的transform是stop状态:日志如下 报错时间:2023-03-26 14:05:2 ...
- Python 生成二维码的几种方式、生成条形码
一: # 生成地维码 import qrcode import matplotlib.pyplot as plt from barcode.writer import ImageWriter 创建QR ...
- ubuntu 联网
使用NAT
- 详解SSL证书系列(8)了解HTTPS及和HTTP的区别
上一篇我们介绍了HTTP协议的三大缺点,那么怎么避免和解决HTTP的缺点呢,是时候请出我们的HTTPS了,那HTTPS和HTTP有什么区别呢? HTTP加上加密处理和认证以及完整性保护后即是HTTPS ...
- 20 JavaScript和HTML交互
20 JavaScript和HTML交互 在HTML中可以直接在标签上给出一些事件的触发. 例如, 页面上的一个按钮. <input type="button" value= ...
- MyBatis-Plus 代码生成(旧)
MyBatis-Plus官网的代码生成器配置不是特别全,在此整理了较为完整的配置,供自己和大家查阅学习. // 代码生成器 AutoGenerator mpg = new AutoGenerator( ...