C# 4.0 未处理的异常:System.TypeLoadException在mono上运行时,在.NET 4上编译
我用C#编写了一个小应用程序,它可以正常工作。目标框架是.NET4 当我在linux-mono下运行应用程序时,应用程序启动没有问题 然而,我似乎有一个单线程下的问题 代码如下:C# 4.0 未处理的异常:System.TypeLoadException在mono上运行时,在.NET 4上编译,c#-4.0,mono,C# 4.0,Mono,我用C#编写了一个小应用程序,它可以正常工作。目标框架是.NET4 当我在linux-mono下运行应用程序时,应用程序启动没有问题 然而,我似乎有一个单线程下的问题 代码如下: try { Thread oThread = new Thread(new ParameterizedThreadStart(this.SendSms)); oThread.IsBackground = t
try
{
Thread oThread = new Thread(new ParameterizedThreadStart(this.SendSms));
oThread.IsBackground = true;
oThread.Start(_data);
while (!oThread.IsAlive)
{
Console.WriteLine("Sleeping...");
Thread.Sleep(1);
}
}
catch (TypeLoadException tlex)
{
Console.WriteLine("TypeLoadException: " + tlex.Message);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
它似乎无法访问SendSms方法,而是抛出以下错误:
Unhandled Exception: system.TypeLoadException: A type load exception has occurred. at System.Threading.Thread.StartUnsafe () [0x00000] in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: A type load exception has occurred. at System.Threading.Thread.StartUnsafe () [0x00000] in <filename unknown>:0
未处理的异常:system.TypeLoadException:发生类型加载异常。在0中的System.Threading.Thread.StartUnsafe()[0x00000]处
[错误]严重的未处理异常:System.TypeLoadException:发生类型加载异常。在0中的System.Threading.Thread.StartUnsafe()[0x00000]处
现在我是Mono新手,所以首先不知道为什么参数化线程的代码来自'http://www.mono-project.com/ThreadsBeginnersGuide'. 第二,为什么我把它放在
catch(TypeLoadException)
请帮忙
谢谢
尼尔也许这个答案对你有帮助 您是否尝试过在mono下编译相同的程序并尝试过运行它 另外,您使用的是哪个版本的mono??可能需要将其更新为最新版本 单声道版本 V2.10看起来是最新的稳定版本。
也许这个答案对你有帮助 您是否尝试过在mono下编译相同的程序并尝试过运行它 另外,您使用的是哪个版本的mono??可能需要将其更新为最新版本 单声道版本 V2.10看起来是最新的稳定版本。
我在运行debian Squence的web服务器上遇到了类似的问题。给了我一个线索 我建立了一个虚拟机,并使用apt get安装了整个monodevelop,它运行正常。 因为我不想在生产机器上安装那么多的包和依赖项,所以我花了几个小时隔离丢失的包 在我的例子中,它们只缺少3个包(libmono-system-xml-linq4.0-cil、libmono-system-componentmodel-dataannotations4.0-cil和libmono-system-componentmodel-composition4.0-cil),但这当然取决于您的应用程序
根据错误消息,很难找到解决方案 我在运行debian Squence的web服务器上遇到了类似的问题。给了我一个线索 我建立了一个虚拟机,并使用apt get安装了整个monodevelop,它运行正常。 因为我不想在生产机器上安装那么多的包和依赖项,所以我花了几个小时隔离丢失的包 在我的例子中,它们只缺少3个包(libmono-system-xml-linq4.0-cil、libmono-system-componentmodel-dataannotations4.0-cil和libmono-system-componentmodel-composition4.0-cil),但这当然取决于您的应用程序
根据错误消息,很难找到解决方案 虽然通过安装丢失的软件包解决了问题,但我注意到在通过Nuget引用DLL时也可能出现此错误:Monodevelop没有将这些DLL复制到输出文件夹(即/bin/Debug),这使我的程序无法运行。调试器甚至无法进入第一行代码!这是我在Ubuntu 16.04上想到的。检查您的输出文件夹,如果您注意到某些DLL丢失,您应该尝试手动复制它们,看看您的应用程序现在是否运行。虽然问题是通过安装丢失的软件包解决的,但我注意到您在通过Nuget引用DLL时也可能出现此错误:Monodevelop没有将这些DLL复制到输出文件夹(即/bin/Debug)这使我的程序无法运行。调试器甚至无法进入第一行代码!我在Ubuntu 16.04上遇到了这种情况。请检查您的输出文件夹,如果您发现缺少一些DLL,您应该尝试手动复制它们,看看您的应用程序现在是否运行。谢谢Amitd,用mono加载解决方案并构建排序的pr解决问题。感谢Amitd,在mono和building中加载解决方案解决了问题。