我遇到了64位.NET Framework的问题:我的C#程序非常简单:
static void Main(string[] args)
{
System.Console.WriteLine("Hello world!");
Debug.WriteLine("Debug Hello world!");
}
我在CentOS 7(3.10.0-514.21.1.el7.x86_64)上安装了WINE-2.12 64位(最新开发版本),并在其上安装了.NET Framework 4.6.1。在安装.NET Framework之前,我删除了wine-mono。当我尝试运行上述程序时收到以下错误消息:
Hello world!
*Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
at System.Diagnostics.DiagnosticsConfiguration.Initialize()
at System.Diagnostics.DiagnosticsConfiguration.get_IndentSize()
at System.Diagnostics.TraceInternal.InitializeSettings()
at System.Diagnostics.TraceInternal.WriteLine(String message)
at ConsoleApplication3.Program.Main(String[] args)
wine: Unhandled page fault on read access to 0x00000000 at address 0x1aa460fd (thread 0009), starting debugger...*
问题在于“Debug.WriteLine(...)”行。但是,使用32位编译的相同应用程序运行良好。
我发现当我运行我们内部的64位.NET程序时,我在其他位置遇到了类似的错误,即使我不使用Debug.WriteLine(...),所以我创建了你好-world程序来重现它。
我的最终目标是:使用.NET Framework 4.6.1在64位WINE上运行我们的64位.NET应用程序。
请有人教我如何克服这个问题?
感谢。
致以最诚挚的问候,
/肯尼