Версия скрипача:
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, иначе компиляция провалится.), как показано ниже:
Поскольку моя версия для скрипки относительно высокая, требования к версии .NET будут выше, и ошибка будет сообщаться следующим образом при компиляции и генерации версии .NET 4.0:
1>------ Вся пересборка запущена: Проект: fiddler-plugin-demo, Конфигурация: отладка Любой процессор ------ 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: Не удалось найти название типа или пространства имён" 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: Не удалось найти название типа или пространства имён "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: Не удалось найти название типа или пространства имён "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" (отсутствует Использование директивы или ссылки на сборку?) ========== Регенерировать все: 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
Класс DemoExtention наследует интерфейс 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 генерации, мы перекомпилируем генерацию, VS автоматически скопирует наш dll в каталог scrip{filter}ts и заполняет следующую команду в командной строке события последующей генерации:
Как показано ниже:
Проверено на нормальное использование.
Наконец, приложите исходный код:
Туристы, если вы хотите увидеть скрытое содержание этого поста, пожалуйста Ответ
|