I wonder if the ZIP file stuff in the Visual J# runtime library (vjslib.dll) is mucking around with the console file handle for some weird reason. Alternately the pipe between NAnt and MbUnit.Cons is getting messed up.
I wouldn't be too surprised if there were bugs in the VJ# library that were fixed between v1.1 and v2.0. You might also try redirecting the console output stream of MbUnit.Cons.exe in your NAnt script to a file. It's kind of a goofy hack but it might work. Jeff. -----Original Message----- From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Alexander Groß Sent: Wednesday, June 25, 2008 7:23 AM To: MbUnit.User Subject: MbUnit Force .NET 1.1 runtime/MbUnit.Cons.exe fails with vjslib.dll Hi all, I've got a .NET 1.1 project (customer requirement, don't ask) that contains tests to be run under the .NET 1.1 runtime. On the dev/build machine there could also be a newer version of the framework installed so I have to force MbUnit to run under a specific version of the .NET Framework. In order to force .NET 1.1 for the test run I edited the MbUnit.Cons.exe.config (I use MbUnit.Cons.exe to run the tests during a NAnt build): <?xml version="1.0" encoding="utf-8" ?> <configuration> <runtime> <!-- Don't kill application on first uncaught exception. --> <legacyUnhandledExceptionPolicy enabled="1" /> </runtime> <startup> <!--<supportedRuntime version="v2.0.50727" />--> <supportedRuntime version="v1.1.4322"/> </startup> </configuration> The application contains a method that zips up data using the classes inside vjslib.dll, which is an optional component for the .NET Framework 1.1 and 2.0. There's also a test that verifies that ZIP files can be generated by the application. As soon as this 1.1 setting above is in place MbUnit.Cons.exe fails in the instant the can-create-a-zip-file test is run. System.IO.IOException: "The handle is invalid" Here's the stack trace: mscorlib.dll!System.IO.__Error.WinIOError(int errorCode, string str) + 0x298 Bytes mscorlib.dll!System.IO.__ConsoleStream.Write(byte[] buffer, int offset, int count) + 0x79 Bytes mscorlib.dll!System.IO.StreamWriter.Flush(bool flushStream, bool flushEncoder) + 0x99 Bytes mscorlib.dll!System.IO.StreamWriter.Write(char[] buffer, int index, int count) + 0x4c Bytes mscorlib.dll!System.IO.TextWriter.WriteLine(string value) + 0xcd Bytes mscorlib.dll!System.IO.TextWriter.WriteLine(System.Object value) + 0x68 Bytes mscorlib.dll!SyncTextWriter.WriteLine(System.Object value) + 0x1a Bytes MbUnit.Cons.exe!MbUnit.Cons.ConsoleClass.Main(string[] args) + 0x65 Bytes Other tests pass without complaining, and fusion log viewer shows that 1.1 assemblies are bound. When I click OK on the "Debug this application" window, MbUnit continues and displays that the ZIP test actually passed. If the supportedRuntime configuration is *not* set to 1.1 (default setting) my test also fails because the framework itself has a binding redirect for vjslib that redirects requests for the 1.1 vjslib to the 2.0 vjslib, if only the .NET Framework 2.0 is installed, but not the 2.0 vjslib. I tried reverting the binding redirect that .NET 2.0 imposes, but to no avail: <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="vjslib" publicKeyToken="b03f5f7f11d50a3a"/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.5000.0"/> <publisherPolicy apply="no" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="vjscor" publicKeyToken="b03f5f7f11d50a3a"/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.5000.0"/> <publisherPolicy apply="no" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="vjslibcw" publicKeyToken="b03f5f7f11d50a3a"/> <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.0.5000.0"/> <publisherPolicy apply="no" /> </dependentAssembly> </assemblyBinding> </runtime> Any ideas why MbUnit.Cons.exe fails with such a strange error? I could provide a sample if this would be of any help. I'm using MbUnit 2.4.2.130. Thanks, Alex --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "MbUnit.User" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/MbUnitUser?hl=en -~----------~----~----~----~------~----~------~--~---
