1

I am developing a WinForm application and I have some embedded resources (the graphic layout of the form). The problem is that when I start the application on my machine it runs perfectly, but if I pass it on another pc it may or may not work. On the last computer I tried (Windows 7 64bit, .NET 4.0 installed) it blocked when I tried to access resources. Here is the code which blocks the app, and below there is the full exception thrown.

//Note: notifierName is a string passed as an argument
_icon = new NotifyIcon
{
    Text = notifierName,
    Icon = SystemIcons.Application,//Properties.Resources.Tray,
    Visible = true
};
try
{
    _icon.Icon = Properties.Resources.Tray;
}
catch (Exception e)
{
    Logger.WriteLog(e.ToString());
}

After tracking down what was causing the exception, I tried to set all resources to "embedded resources", the .exe was doubled in size (so the images were actually saved in there) but the same error occurred. I think I'm missing something about how resources work, because passing the same exe on another machine isn't causing all these troubles. Thanks for your help.

System.TypeLoadException: Unable to load type 'System.Runtime.CompilerServices.ExtensionAttribute' dall'assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. in System.ModuleHandle.ResolveMethod(RuntimeModule module, Int32 methodToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount) in System.ModuleHandle.ResolveMethodHandleInternalCore(RuntimeModule module, Int32 methodToken, IntPtr[] typeInstantiationContext, Int32 typeInstCount, IntPtr[] methodInstantiationContext, Int32 methodInstCount) in System.ModuleHandle.ResolveMethodHandleInternal(RuntimeModule module, Int32 methodToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext) in System.Reflection.CustomAttributeData..ctor(RuntimeModule scope, CustomAttributeRecord caRecord) in System.Reflection.CustomAttributeData.GetCustomAttributes(RuntimeModule module, Int32 tkTarget) in System.Reflection.CustomAttributeData.GetCustomAttributesInternal(RuntimeAssembly target) in System.Resources.ManifestBasedResourceGroveler.GetNeutralResourcesLanguage(Assembly a, UltimateResourceFallbackLocation& fallbackLocation) in System.Resources.ResourceManager.CommonSatelliteAssemblyInit() in System.Resources.ResourceManager..ctor(String baseName, Assembly assembly) in PatcherNET4.Properties.Resources.get_ResourceManager() in PatcherNET4.CustomControls.Notifier.Create(String notifierName)

Niccolò Campolungo
  • 11,824
  • 4
  • 32
  • 39

1 Answers1

2

This error occurs about when you compile an application with .Net 4.5 but run on 4.0.In .Net 4.5 ExtensionAttribute removed from System.Core and add mscorlib.

Could not load type 'System.Runtime.CompilerServices.ExtensionAttribute' from assembly 'mscorlib

Could not load type 'System.Runtime.CompilerServices.ExtensionAttribute' from assembly 'mscorlib, Version=4.0.0.0 Error

Community
  • 1
  • 1