| 
||||||||
	
  | ||||||||
Building Extension assemblies to run in both Fiddler v2 and v4
	  If you want your extension Assembly to run in both Fiddler2 and 
	  Fiddler4, build it for .NET Framework v2 and avoid taking any dependencies 
	  on any classes that were removed or moved in the later version of 
	  the Framework. (The only instance I'm aware of is the Microsoft 
	  JScript.NET code compiler, whose classes were moved around a bit). 
	  You'll also need to ensure that if you use any methods that are 
	  deprecated (e.g. calling Assembly.LoadFrom with the overload that takes an 
	  Evidence parameter) you do so only conditionally. E.g. 
	        
	  if (CONFIG.bRunningOnCLRv4) 
	  All of the extensions from the Fiddler website are compiled 
	  against Fiddler v2. 
	  Alternatively, you can simply build two versions of your DLL, one 
	  version targeting .NET Framework v4 and one targeting .NET Framework v2, 
	  This is how Fiddler itself is built. Basically, just add a 
	  "clone" version of your v2-targeted Project to the same Solution. Use the Add -> Existing Item context menu to add the .CS files from the 
	  v2-targeted project to the v4-targeted project-- but when selecting the 
	  files, be very sure to use the split button on the file picker dialog and 
	  choose Add as Link. On the v4 Project's Properties -> Build tab, add a Conditional Compilation symbol like DOTNET4. You can then put any .NETv4-specific code 
	  behind conditional compilation... 
	    
	  #if DOTNET4 
	      
	  // ... code targeting .NETv4 
	    
	  #else 
	      
	  // ... code targeting .NETv2 
	    
	  #endif 
	  Your extension may install the appropriately-targeted version 
	  based on the content of the InstalledVersion registry 
	  key found inside HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fiddler2.  
	  The .NET2 version of 
	  Fiddler is much more popular than the .NETv4 
	  version at this time. When the .NET Framework v4.5 is released, I may move the v4 project over to v4.5. Among other 
	  things, that would allow me to take advantage of the new built-in .ZIP 
	  classes in that later framework. What about the RequiredVersion attribute?Fiddler v4 is "smart"-- if your extension specifies [assembly: Fiddler.RequiredVersion("2.1.0.1")] When Fiddler v4 loads it, it will require version 4.3.9.9 or later. ©2018 Eric Lawrence  |