NCrunch System NullReferenceException with COM

If you are using NCrunch awesomeness in Visual Studio, you may come across this slight bug. It is most likely to appear if you reference a COM component in your project:

(0): System.NullReferenceException: Object reference not set to an instance of an object.
 at Mono.Cecil.Cil.CodeReader.MoveTo(Int32 rva)
 at Mono.Cecil.Cil.CodeReader.ReadMethodBody()
 at Mono.Cecil.Cil.CodeReader.ReadMethodBody(MethodDefinition method)
 at Mono.Cecil.MethodDefinition.<get_Body>b__2(MethodDefinition method, MetadataReader reader)
 at Mono.Cecil.ModuleDefinition.Read[TItem,TRet](TItem item, Func`3 read)
 at Mono.Cecil.MethodDefinition.get_Body()
 at nCrunch.Compiler.ILManipulator.#=qVgZeh_Xo4G8OazbHXUj$HZZ4k875wM5nD3bVlbELkuc=(Collection`1 #=qK_nsQKpybmFcinz5j6S1wg==)
 at nCrunch.Compiler.ILManipulator.#=qDMRbu14rmiUliyk77s6YE39JKJojc8PFBwrtQadFj6E=(IEnumerable`1 #=qhgNHocq3EmkOJuAn3tZE7g==)
 at nCrunch.Compiler.ILManipulator.ProcessAssembly(String compiledAssemblyFilePath, Boolean instrumentAssembly, IList`1 referencedAssemblies)
 at nCrunch.Compiler.RemoteBuildRunner.#=qfsCVCP9z8p8itsPjdEucb21b3UdedVHBi8gsF76Ddpw=(ComponentBuildParameters #=qmkOUo_qPadDv2Jh_RvEeFw==, String #=qeQVxsYosAYGxzPuSRqwCgvxMKp_7oVPJk1lA2naHni0=, BuildOutput #=qRILTPHYyuGtBH_NyMhcqkQ==, String #=qp67sU93pGbLGBgppbDFZXbOOMHNfqroD4Dqku1U_cUI=)
 at nCrunch.Compiler.RemoteBuildRunner.Build(ComponentBuildParameters parameters)

Don’t panic – there is a work around for this. Open NCrunch configuration and find the project that fails with this error and change the setting “InstrumentAssembly” to false. It is the NCrunch instrumentation that has a problem, so this will allow the project to build and for the tests to run.

NCrunch