Ambrosian Scripture

Real-world answers to real-world problems.

October 2004 - Posts

Moving Blog...
For those of you strange enough to read my musings, I invite you to meander on over to my new blog.  That will be my primary pad for communication with the rest of creation going forward.
NUnitAsp and NUnit 2.2 Don't Get Along

NUnit (well, NUnitAsp, actually) just ran me for a loop.  I had not loaded this particular test project for a while (since I upgraded to NUnit 2.2), and when I tried to load it up, I got the following:

System.IO.FileNotFoundException: File or assembly name nunit.framework, or one of its dependencies, was not found.
Server stack trace:
   at System.Reflection.Assembly.GetExportedTypes()
   at NUnit.Core.TestSuiteBuilder.Build(String assemblyName, Int32 assemblyKey)
   at NUnit.Core.TestSuiteBuilder.Build(String projectName, IList assemblies)
   at NUnit.Core.RemoteTestRunner.Load(String projectName, String[] assemblies)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(MethodBase mb, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)
Exception rethrown at [0]:
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at NUnit.Core.TestRunner.Load(String projectName, String[] assemblies)
   at NUnit.Util.TestDomain.Load(String testFileName, String appBase, String configFile, String binPath, String[] assemblies, String testFixture)
   at NUnit.Util.TestDomain.Load(NUnitProject project, String testFixture)
   at NUnit.Util.TestLoader.LoadTest(String testName)

Now, initially I thought it'd be something to do with my project references, even though that didn't really make sense, so I tried removing my nunit.framework reference and readding.  No luck.  But thanks to Google, I saw the words "NunitAsp" and thought, "aha! that must be it.. I'll just go get the latest version of NUnitAsp and install it." 

No beans.  Apparently the good folks developing that project haven't bothered to rebuild with the new version of NUnit.  So, after pondering the problem for a minute, I decided to just go get an old version of NUnit and stick it in the GAC.  After all, that's what it's for, right?  Running multiple versions of the same product? 

So I went to NUnit's site on sourceforge and blundered around a bit (I only go there to download stuff occassionally) and finally came back to NUnit.org, where they nicely offered the older (2.1) version for download as MSI or source. 

Since I only wanted the framework DLL (and not another GUI et al), I downloaded the source zip first, hoping they included a built DLL (to save me the trouble of building it).  Uh uh..  So I tried MSI.. nope, that won't install over a newer version. 

SO, back to the source zip.  Unzip, open in VS, build in Release mode, and then drag-n-drop the nunit.framework.dll to the GAC.

Joy, rapture, etc. etc., the old NUnit test project now opens and runs fine.  I guess this goes to show, in case we didn't know it, we still can run into DLL versioning problems, especially when we're dependent on 3rd parties.  All in all, it was no big deal, but it was a tiny bit frustrating.  Now if only the nice NUnitAsp people will update their build.

Updated Advice on ASP.NET Security Issue
As directed here, you need to go to this page to get the latest on the recently-discovered ASP.NET vulnerability.  Microsoft has now released an HTTP module that should protect the apps on your servers, and it has a handy installer to make it easy for you.  They have been working hard over the last week to make this tool as easy and solid as possible.  If you have any problems, please let them know.
Just Doing My Part

Trying to help spread the word...

http://www.microsoft.com/security/incident/aspnet.mspx

More Posts