Versão do Fiddler:
Progress Telerik Fiddler Web Debugger v5.0.20182.28034 para .NET 4.6.1
Built: 2018年6月27日
1: Primeiro, usamos vs2017 para criar um novo projeto de biblioteca .NET 4.0 (Isso está errado, como direi abaixo, você precisa construir um projeto 4.6.1, caso contrário a compilação vai falhar), conforme mostrado abaixo:
Como minha versão do Fiddler é relativamente alta, os requisitos para a versão .NET serão maiores, e o erro será reportado da seguinte forma ao compilar e gerar a versão .NET 4.0:
1>------ Toda a reconstrução foi iniciada: Projeto: fiddler-plugin-demo, Configuração: Depurar qualquer CPU ------ 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2106,5): aviso MSB3274: Não foi possível resolver a referência principal "Fiddler" porque ela era direcionada para ". NETFramework, Version=v4.6.1". Esta versão do framework é superior à atual framework alvo". NETFramework,Version=v4.0"。 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2106,5): aviso MSB3268: Falhou na resolução da referência principal "Fiddler", Porque tem uma dependência indireta do assembly do framework "System.Net.Http, version=4.0.0.0, culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", que não é analisado no framework alvo atual. “. NETFramework,Version=v4.0"。 Para resolver esse problema, remova a referência a "Fiddler" ou redirecione o alvo da aplicação para a versão do framework que contém "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): aviso MSB3275: Não foi possível resolver a referência principal "Fiddler" porque havia um problema de montagem analytics, version=1.0.20182.27266, culture=neutral, PublicKeyToken=2b2cea67609c9510 "tem dependências indiretas, e a montagem é direcionada para ". NETFramework, Version=v4.5" framework. Esta versão do framework é superior à atual framework alvo". NETFramework,Version=v4.0"。 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2106,5): aviso MSB3275: Não foi possível resolver a referência principal "Fiddler" porque havia um problema de montagem newtonsoft.json, version=11.0.0.0, culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed"tem dependências indiretas, e a montagem é direcionada contra ". NETFramework, Version=v4.5" framework. Esta versão do framework é superior à atual framework alvo". NETFramework,Version=v4.0"。 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2106,5): aviso MSB3275: Não foi possível resolver a referência principal "Fiddler" porque havia um problema de montagem GA. analytics.monitor, version=1.0.20182.27266, culture=neutral, PublicKeyToken=2b2cea67609c9510 "tem uma dependência indireta à qual a montagem está relacionada". NETFramework, Version=v4.5" framework. Esta versão do framework é superior à atual framework alvo". 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): erro CS0246: Falha em encontrar o nome do tipo ou namespace" Fiddler" (falta alguma referência de instrução de uso ou assembly?) 1>C:\Users\itsvse_pc\Documents\Visual Studio 2017\Projects\fiddler-plugin-demo\fiddler-plugin-demo\DemoExtention.cs(1,7,1,14): erro CS0246: Falhou em encontrar o nome do tipo ou namespace "Fiddler" (faltando usando diretiva ou referência de montagem?) 1>C:\Users\itsvse_pc\Documents\Visual Studio 2017\Projects\fiddler-plugin-demo\fiddler-plugin-demo\DemoExtention.cs(10,34,10,45): erro CS0246: Não foi possível encontrar o nome do tipo ou namespace "IAutoTamper" ( Falta alguma diretiva de uso ou referência de montagem?) 1>C:\Users\itsvse_pc\Documents\Visual Studio 2017\Projects\fiddler-plugin-demo\fiddler-plugin-demo\DemoExtention.cs(19,44,19,51): erro CS0246: Não foi possível encontrar o nome do tipo ou namespace "Session" (ausente usando diretiva ou referência de montagem?) 1>C:\Users\itsvse_pc\Documents\Visual Studio 2017\Projects\fiddler-plugin-demo\fiddler-plugin-demo\DemoExtention.cs(24,45,24,52): erro CS0246: Falhou em encontrar o nome do tipo ou namespace "Session" (ausente usando diretiva ou referência de montagem?) 1>C:\Users\itsvse_pc\Documents\Visual Studio 2017\Projects\fiddler-plugin-demo\fiddler-plugin-demo\DemoExtention.cs(29,45,29,52): erro CS0246: Não foi possível encontrar o nome do tipo ou namespace "Session" (ausente usando diretiva ou referência de montagem?) 1>C:\Users\itsvse_pc\Documents\Visual Studio 2017\Projects\fiddler-plugin-demo\fiddler-plugin-demo\DemoExtention.cs(34,46,34,53): erro CS0246: Falhou ao encontrar o nome do tipo ou namespace "Session" (faltando). usando diretiva ou referência de montagem?) 1>C:\Users\itsvse_pc\Documents\Visual Studio 2017\Projects\fiddler-plugin-demo\DemoExtention.cs(39,44,39,51): erro CS0246: Não foi possível encontrar o nome do tipo ou namespace "Session" (ausente usando diretiva ou referência de montagem?) ========== Regenerar todos: 0 sucessos, 1 falha e 0 ========== pulados
A solução é mudar para .NET 4.6.1!
2: Adicione a referência fiddler.exe no Explorador de Soluções, meu diretório de instalação do Fiddler é: C:\Users\itsvse_pc\AppData\Local\Programs\Fiddler, conforme mostrado abaixo:
3: Defina a versão mínima do Fiddler que o plugin está rodando
Adicione o atributo Fiddler.RequiredVersion ao arquivo AssemblyInfo.cs do seu projeto (e a qualquer outro lugar do seu código).
4: Criar um novo controle de interface de aba Fiddler
Você precisa adicionar uma referência ao assembly System.Windows.Forms
Comece adicionando um controle do usuário ao seu projeto chamado TestControl.cs (arbitrário), como mostrado na imagem abaixo:
Depois, coloque um controle aleatório de botão sobre o controle do usuário e escreva uma linha simples de código de evento de clique:
5: Criar uma nova classe de extensão DemoExtention
A classe DemoExtention herda a interface IAutoTamper,A interface IAutoTamper herda a interface IFiddlerExtensionTodos os plugins que implementam a interface IAutoTamper serão chamados em toda solicitação ou resposta http/https, para que possam ser usados para sequestrar ou modificar dados de resposta a requisições http/https.
Nota: O método desta interface é chamado em segundo plano, não é um tópico de interface; se você quiser atualizar a interface, pode usar o método Invoke ou BeginInvoke para atualizar a interface. Todos os métodos do IAutoTamper podem ser executados antes do evento OnLoad.
O código é o seguinte:
6: O Fiddler carrega o plugin
Depois de programarmos e gerarmos, copie os dois arquivos fiddler-plugin-demo.dll e fiddler-plugin-demo.pdb sob o diretório Debug para a pasta scrip{filter}ts do nosso diretório de instalação do Fiddler.
A minha é: C:\Users\itsvse_pc\AppData\Local\Programs\Fiddler\scrip{filter}ts pasta
Finalmente, reiniciamos e abrimos o Fiddler, e podemos ver nossos controles na aba, como mostrado abaixo:
7: Permitir que o plugin seja automaticamente implantado no diretório do plugin Fiddler
Toda vez que modificamos o plugin, precisamos copiar o dll para a pasta scrip{filter}ts novamente, podemos resolver esse problema pelo evento de geração do VS, recompilamos a geração, o VS automaticamente copiará nosso dll para o diretório scrip{filter}ts e preencheu o seguinte comando na linha de comando do evento de geração posterior:
Como mostrado abaixo:
Testado para uso normal.
Por fim, anexe o código-fonte:
Turistas, se quiserem ver o conteúdo oculto deste post, por favor Resposta
|