Mono application in a Mac fails with “System.MissingMethodException: Default constructor not found for type System.Configuration.ExeConfigurationHost”
Question
This code is basically making an HTTP call, when it tries it, it just fails but only when the application is packaged as a Mac application, this does not happen when I run the application inside of MonoDevelop.
Anyone has any hints of what this might be?
EDIT
I've seen people talking a lot about mkbundle and the config option but I don't see this option anywhere when I'm generating the Mac application package on MonoDevelop.
Unhandled Exception: System.TypeInitializationException: An exception was thrown by the type initializer for OfficeDrop.Core.Api.JsonOfficeDropApi ---> System.TypeInitializationException: An exception was thrown by the type initializer for System.Net.ServicePointManager ---> System.Configuration.ConfigurationErrorsException: Error Initializing the configuration system. ---> System.MissingMethodException: Default constructor not found for type System.Configuration.ExeConfigurationHost.
at System.Activator.CreateInstance (System.Type type, Boolean nonPublic) [0x00000] in <filename unknown>:0
at System.Activator.CreateInstance (System.Type type) [0x00000] in <filename unknown>:0
at System.Configuration.InternalConfigurationSystem.Init (System.Type typeConfigHost, System.Object[] hostInitParams) [0x00000] in <filename unknown>:0
at System.Configuration.InternalConfigurationFactory.Create (System.Type typeConfigHost, System.Object[] hostInitConfigurationParams) [0x00000] in <filename unknown>:0
at System.Configuration.ConfigurationManager.OpenExeConfigurationInternal (ConfigurationUserLevel userLevel, System.Reflection.Assembly calling_assembly, System.String exePath) [0x00000] in <filename unknown>:0
at System.Configuration.ClientConfigurationSystem.get_Configuration () [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at System.Configuration.ClientConfigurationSystem.get_Configuration () [0x00000] in <filename unknown>:0
at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection (System.String configKey) [0x00000] in <filename unknown>:0
at System.Configuration.ConfigurationManager.GetSection (System.String sectionName) [0x00000] in <filename unknown>:0
at System.Net.ServicePointManager..cctor () [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at OfficeDrop.Core.Api.JsonOfficeDropApi..cctor () [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at SyncDropMac.MainWindowController..ctor () <0x0000b>
at SyncDropMac.AppDelegate.FinishedLaunching (MonoMac.Foundation.NSObject) <0x00023>
at (wrapper dynamic-method) object.[SyncDropMac.AppDelegate.Void FinishedLaunching(MonoMac.Foundation.NSObject)] (MonoMac.Foundation.NSObject,MonoMac.ObjCRuntime.Selector,MonoMac.Foundation.NSObject) <0x00030>
at (wrapper native-to-managed) object.[SyncDropMac.AppDelegate.Void FinishedLaunching(MonoMac.Foundation.NSObject)] (MonoMac.Foundation.NSObject,MonoMac.ObjCRuntime.Selector,MonoMac.Foundation.NSObject) <0x000fb>
at (wrapper managed-to-native) MonoMac.AppKit.NSApplication.NSApplicationMain (int,string[]) <0x00003>
at MonoMac.AppKit.NSApplication.Main (string[]) <0x00017>
at SyncDropMac.MainClass.Main (string[]) <0x00017>
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for OfficeDrop.Core.Api.JsonOfficeDropApi ---> System.TypeInitializationException: An exception was thrown by the type initializer for System.Net.ServicePointManager ---> System.Configuration.ConfigurationErrorsException: Error Initializing the configuration system. ---> System.MissingMethodException: Default constructor not found for type System.Configuration.ExeConfigurationHost.
at System.Activator.CreateInstance (System.Type type, Boolean nonPublic) [0x00000] in <filename unknown>:0
at System.Activator.CreateInstance (System.Type type) [0x00000] in <filename unknown>:0
at System.Configuration.InternalConfigurationSystem.Init (System.Type typeConfigHost, System.Object[] hostInitParams) [0x00000] in <filename unknown>:0
at System.Configuration.InternalConfigurationFactory.Create (System.Type typeConfigHost, System.Object[] hostInitConfigurationParams) [0x00000] in <filename unknown>:0
at System.Configuration.ConfigurationManager.OpenExeConfigurationInternal (ConfigurationUserLevel userLevel, System.Reflection.Assembly calling_assembly, System.String exePath) [0x00000] in <filename unknown>:0
at System.Configuration.ClientConfigurationSystem.get_Configuration () [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at System.Configuration.ClientConfigurationSystem.get_Configuration () [0x00000] in <filename unknown>:0
at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection (System.String configKey) [0x00000] in <filename unknown>:0
at System.Configuration.ConfigurationManager.GetSection (System.String sectionName) [0x00000] in <filename unknown>:0
at System.Net.ServicePointManager..cctor () [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at OfficeDrop.Core.Api.JsonOfficeDropApi..cctor () [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at SyncDropMac.MainWindowController..ctor () <0x0000b>
at SyncDropMac.AppDelegate.FinishedLaunching (MonoMac.Foundation.NSObject) <0x00023>
at (wrapper dynamic-method) object.[SyncDropMac.AppDelegate.Void FinishedLaunching(MonoMac.Foundation.NSObject)] (MonoMac.Foundation.NSObject,MonoMac.ObjCRuntime.Selector,MonoMac.Foundation.NSObject) <0x00030>
at (wrapper native-to-managed) object.[SyncDropMac.AppDelegate.Void FinishedLaunching(MonoMac.Foundation.NSObject)] (MonoMac.Foundation.NSObject,MonoMac.ObjCRuntime.Selector,MonoMac.Foundation.NSObject) <0x000fb>
at (wrapper managed-to-native) MonoMac.AppKit.NSApplication.NSApplicationMain (int,string[]) <0x00003>
at MonoMac.AppKit.NSApplication.Main (string[]) <0x00017>
at SyncDropMac.MainClass.Main (string[]) <0x00017>
Solution
This is a known issue. The workaround is to disable the managed linker in your application (since it will remove types are are using, by reflection, for the configuration of System.Net).
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow