Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

RhinoMocks breaking the compiler in recent versions of Mono / MonoDevelop

I'm not sure exactly what broke this as I've been sporadic with my Mono/Monotouch development, but I believe it's the latest update to the mono framework. All of a sudden building my Unit Test project (which itself is a MonoTouch Library project) now breaks the compiler and it seems to be the RhinoMocks DLL (removing the reference fixes it). It looks like the RM DLL is referencing the wrong System DLL (not the MT one) but what is confusing is why this never broke before and my tests used to run fine.

I've put a simple sample SLN up on Github that reproduces the error: https://github.com/briandonahue/MonoIssue

And here is the build ouput:

  Building: Sample (Debug|iPhoneSimulator)

  Building Solution Sample

  Building: Test (Debug|iPhoneSimulator)

  Performing main compilation...
  /Developer/MonoTouch/usr/bin/smcs /noconfig "/out:/Users/brian/development/Sample/Test/bin/iPhoneSimulator/Debug/Test.dll" "/r:/Developer/MonoTouch/usr/lib/mono/2.1/System.dll" "/r:/Developer/MonoTouch/usr/lib/mono/2.1/System.Xml.dll" "/r:/Developer/MonoTouch/usr/lib/mono/2.1/System.Core.dll" "/r:/Developer/MonoTouch/usr/lib/mono/2.1/monotouch.dll" "/r:/Users/brian/development/Sample/lib/Rhino.Mocks.dll" /nologo /warn:4 /debug:+ /debug:full /optimize- /codepage:utf8 "/define:DEBUG"  /t:library "/Users/brian/development/Sample/Test/Test.cs" 
  The class System.Diagnostics.EventLog could not be loaded, used in System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089The class System.Diagnostics.TraceSource could not be loaded, used in System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089


  Unhandled Exception: System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded.
    at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool)
    at System.Reflection.Assembly.GetTypes () [0x00000] in <filename unknown>:0 
    at Mono.CSharp.RootNamespace.ComputeNamespaces (System.Reflection.Assembly assembly, System.Type extensionType) [0x00000] in <filename unknown>:0 
    at Mono.CSharp.RootNamespace.ComputeNamespace (Mono.CSharp.CompilerContext ctx, System.Type extensionType) [0x00000] in <filename unknown>:0 
    at Mono.CSharp.GlobalRootNamespace.ComputeNamespaces (Mono.CSharp.CompilerContext ctx) [0x00000] in <filename unknown>:0 
    at Mono.CSharp.Driver.LoadReferences () [0x00000] in <filename unknown>:0 
    at Mono.CSharp.Driver.Compile () [0x00000] in <filename unknown>:0 
    at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename unknown>:0 



  Unhandled Exception: System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded.
    at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool)
    at System.Reflection.Assembly.GetTypes () [0x00000] in <filename unknown>:0 
    at Mono.CSharp.RootNamespace.ComputeNamespaces (System.Reflection.Assembly assembly, System.Type extensionType) [0x00000] in <filename unknown>:0 
    at Mono.CSharp.RootNamespace.ComputeNamespace (Mono.CSharp.CompilerContext ctx, System.Type extensionType) [0x00000] in <filename unknown>:0 
    at Mono.CSharp.GlobalRootNamespace.ComputeNamespaces (Mono.CSharp.CompilerContext ctx) [0x00000] in <filename unknown>:0 
    at Mono.CSharp.Driver.LoadReferences () [0x00000] in <filename unknown>:0 
    at Mono.CSharp.Driver.Compile () [0x00000] in <filename unknown>:0 
    at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename unknown>:0 
  Build complete -- 1 error, 0 warnings

  ---------------------- Done ----------------------

  Build: 1 error, 0 warnings
like image 544
Brian Donahue Avatar asked Dec 01 '25 04:12

Brian Donahue


1 Answers

Seeing the same thing with mono 2.10.1 and monotouch 4.0 on the simulator. But only when Linker options are set to link all assemblies.

Works fine with Linker options set to don't link or Link SDK assemblies only.

like image 156
biorbnA Avatar answered Dec 06 '25 02:12

biorbnA



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!