Note: All assemblies here are not strong-named
I'm using NUnit (tried 2.4.2 and 2.5.2) to run tests in assembly A. Assembly A references assembly B v2. Assembly A also references assembly C, which in turn references assembly B v1.
When I run assembly A from a bin\Debug directory that only contains assembly B v2, the tests fail with a message about how assembly B v1 can't be found.
I try to solve this by creating an assemblyA.dll.config file. In the file, I specify a binding redirect (even though I know they don't apply to non strong-named assemblies) and a probing path that should allow NUnit to just use assembly B v2.
Unfortunately, I keep getting the same error.
I've also tried using FusionLogViewer to examine the binding process.
Assembly Binder Log Entry (8/19/2009 @ 4:54:38 PM) ***
The operation was successful.
Bind result: hr = 0x0. The operation completed successfully.
Assembly manager loaded from: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll
Running under executable D:\svncheckout\gl\ext\win32\sourceforge\nunit-net20\2.5.2\nunit.exe
--- A detailed error log follows.
=== Pre-bind state information ===
LOG: User = ????
LOG: DisplayName = assemblyB, Version=1.0.3511.15236, Culture=neutral, PublicKeyToken=null
(Fully-specified)
LOG: Appbase = .../bin/Debug
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = Tests_1523525484
Calling assembly : assemblyC, Version=1.0.0.64031, Culture=neutral, PublicKeyToken=null.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file:...\bin\Debug\assemblyA.dll.config
LOG: Using machine configuration file from C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Binding succeeds. Returns assembly from ...\bin\Debug\assemblyB.dll. (this is v2)
LOG: Assembly is loaded in default load context.
Any thoughts?