Версия на Fiddler:
Progress Telerik Fiddler Web Debugger v5.0.20182.28034 за .NET 4.6.1
Built: 2018年6月27日
1: Първо, използваме vs2017, за да създадем нов проект за библиотека .NET 4.0 (Това е грешно, както ще кажа по-долу, трябва да изградите проект за 4.6.1, иначе компилацията ще се провали), както е показано по-долу:
Тъй като моята Fiddler версия е сравнително висока, изискванията за .NET версията ще са по-високи, а грешката ще бъде докладвана по следния начин при компилиране и генериране на .NET 4.0 версията:
1>------ Цялото преработване е започнато: Проект: fiddler-plugin-demo, Конфигурация: Debug Всеки CPU ------ 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2106,5): предупреждение MSB3274: Не успя да се разреши основната референция "Fiddler", защото беше насочена към ". NETFramework, Version=v4.6.1". Тази рамка е по-висока от настоящата целева рамка". NETFramework,Version=v4.0"。 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2106,5): предупреждение MSB3268: Не успя да се разреши основната препратка "Fiddler", Тъй като има косвена зависимост от фреймуърк асемблера "System.Net.Http, version=4.0.0.0, culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", който не може да бъде анализиран в текущата целева рамка. “. NETFramework,Version=v4.0"。 За да решите този проблем, премахнете препратката към "Fiddler" или пренасочете целевата цел на приложението към фреймуъркова версия, която съдържа "System.Net.Http, version=4.0.0.0, culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2106,5): предупреждение MSB3275: Не успя да се разреши основният референт "Fiddler" поради проблем с асемблера analytics, version=1.0.20182.27266, culture=neutral, PublicKeyToken=2b2cea67609c9510 "има косвени зависимости, а асемблерът е насочен към ". NETFramework, Version=v4.5" framework. Тази рамка е по-висока от настоящата целева рамка". NETFramework,Version=v4.0"。 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2106,5): предупреждение MSB3275: Не успя да се разреши основният референт "Fiddler" поради проблем с асемблера newtonsoft.json, version=11.0.0.0, culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed"има косвени зависимости, а асемблерът е насочен срещу ". NETFramework, Version=v4.5" framework. Тази рамка е по-висока от настоящата целева рамка". NETFramework,Version=v4.0"。 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2106,5): предупреждение MSB3275: Не успя да се разреши основният референт "Fiddler" поради проблем с асемблера GA. analytics.monitor, version=1.0.20182.27266, culture=neutral, PublicKeyToken=2b2cea67609c9510 "има косвена зависимост, с която асемблерата е свързана". NETFramework, Version=v4.5" framework. Тази рамка е по-висока от настоящата целева рамка". NETFramework,Version=v4.0"。 1>C:\Users\itsvse_pc\Documents\Visual Studio 2017\Projects\fiddler-plugin-demo\fiddler-plugin-demo\Properties\AssemblyInfo.cs(37,12,37,19): грешка CS0246: Не успях да намеря тип или име на namespace" Fiddler" (липсва ли референция за използване на инструкция или асемблер?) 1>C:\Users\itsvse_pc\Documents\Visual Studio 2017\Projects\fiddler-plugin-demo\fiddler-plugin-demo\DemoExtention.cs(1,7,1,14): грешка CS0246: Не успя да се намери тип или име на пространство от имена "Fiddler" (липсва Използване на директива или асемблея референция?) 1>C:\Users\itsvse_pc\Documents\Visual Studio 2017\Projects\fiddler-plugin-demo\fiddler-plugin-demo\DemoExtention.cs(10,34,10,45): грешка CS0246: Не успя да се намери тип или име от namespace "IAutoTamper" ( Липсва ли референция за използване на директива или асемблер?) 1>C:\Users\itsvse_pc\Documents\Visual Studio 2017\Projects\fiddler-plugin-demo\fiddler-plugin-demo\DemoExtention.cs(19,44,19,51): грешка CS0246: Не успях да намеря тип или име на пространство от имена "Session" (липсва Използване на директива или асемблея референция?) 1>C:\Users\itsvse_pc\Documents\Visual Studio 2017\Projects\fiddler-plugin-demo\fiddler-plugin-demo\DemoExtention.cs(24,45,24,52): грешка CS0246: Не успях да намеря тип или име на namespace "Session" (липсва Използване на директива или асемблея референция?) 1>C:\Users\itsvse_pc\Documents\Visual Studio 2017\Projects\fiddler-plugin-demo\fiddler-plugin-demo\DemoExtention.cs(29,45,29,52): грешка CS0246: Не успях да намеря тип или име на пространство от имена "Session" (липсва Използване на директива или асемблея референция?) 1>C:\Users\itsvse_pc\Documents\Visual Studio 2017\Projects\fiddler-plugin-demo\fiddler-plugin-demo\DemoExtention.cs(34,46,34,53): грешка CS0246: Не успях да намеря тип или име на пространство от имена "Session" (липсва.) Използване на директива или асемблея референция?) 1>C:\Users\itsvse_pc\Documents\Visual Studio 2017\Projects\fiddler-plugin-demo\DemoExtention.cs(39,44,39,51): грешка CS0246: Не успях да намеря тип или име на пространство от имена "Session" (липсва Използване на директива или асемблея референция?) ========== Regenerate всичко: 0 успява, 1 проваля и 0 ========== пропуснат
Решението е да преминете към .NET 4.6.1!
2: Добавете fiddler.exe референция в Solution Explorer, моята инсталационна директория за Fiddler е: C:\Users\itsvse_pc\AppData\Local\Programs\Fiddler, както е показано по-долу:
3: Задайте минималната версия на Fiddler, която плъгинът пуска
Добавете атрибута Fiddler.RequiredVersion във файла AssemblyInfo.cs на проекта (и навсякъде другаде в кода).
4: Създаване на нов контрол на интерфейса на Fiddler таба
Трябва да добавиш препратка към асемблера System.Windows.Forms
Започнете, като добавите потребителски контрол към проекта си, наречен TestControl.cs (произволно), както е показано на изображението по-долу:
След това поставете произволен бутон върху потребителския контрол и напишете прост ред от клик на събитие:
5: Създаване на нов клас за разширение на DemoExtention
Класът DemoExtension наследява интерфейса IAutoTamper,Интерфейсът IAutoTamper наследява интерфейса IFiddlerExtensionВсички плъгини, които реализират интерфейса IAutoTamper, ще бъдат извиквани при всяка http/https заявка или отговор, за да могат да се използват за отвличане или промяна на http/https заявки за отговори.
Забележка: Методът на този интерфейс се нарича във фоновия контекст, не-UI нишка, ако искате да обновите интерфейса, можете да използвате метода Invoke или BeginInvoke за обновяване на интерфейса. Всички методи на IAutoTamper могат да се изпълняват преди събитието OnLoad.
Кодът е следният:
6: Fiddler зарежда плъгина
След като програмираме и генерираме, копирайте двата файла fiddler-plugin-demo.dll и fiddler-plugin-demo.pdb под директорията Debug в папката scrip{filter}ts на нашата инсталационна директория на Fiddler.
Моят собствен е: C:\Users\itsvse_pc\AppData\Local\Programs\Fiddler\scrip{filter}ts folder
Накрая рестартираме и отваряме Fiddler, и можем да видим контролите си в таба, както е показано по-долу:
7: Активирайте плъгина да се разгръща автоматично в директорията с плъгина Fiddler
Всеки път, когато модифицираме плъгина, трябва да копираме dll отново в папката scrip{filter}ts, можем да решим този проблем чрез събитието VS generation, компилираме генерирането отново, VS автоматично копира нашия dll в директорията scrip{filter}ts и попълва следната команда в командния ред за събитие при следващо поколение:
Както е показано по-долу:
Тествано за нормална употреба.
Накрая, прикачете изходния код:
Туристи, ако искате да видите скритото съдържание на този пост, моля Отговор
|