我用 Visual Studio 2013 编写了一个 C# .NET 4.5 WinForms 应用程序。现在我想在我的 Linux 机器(Mint 17.1)上用 Mono 运行这个应用程序。
我已经完成了以下步骤:
- 使用Mono Migration Analyzer在 Windows 下分析我的 .exe
- Moma 的所有测试均通过(我必须调整 RTL 属性)
- 已安装 mono-complete (apt-get install mono-complete, 当前版本为 3.2.8)
- 使用 xbuild 编译(无选项)我的 csproj 文件(0 个错误 1 个警告:/usr/lib/mono/4.5/Microsoft.Common.targets:警告:参考 'System.Deployment' 未解决)
- 尝试从我的控制台使用 ./app.exe 启动应用程序
应用程序没有启动,但我看到了一个异常,它没有给我任何关于可能出现问题的提示。这是例外:
Unhandled Exception:
System.ArgumentException: dataMember
at System.Windows.Forms.ListBindingHelper.GetList (System.Object dataSource, System.String dataMember) [0x00000] in <filename unknown>:0
at System.Windows.Forms.BindingSource.ResetList () [0x00000] in <filename unknown>:0
at System.Windows.Forms.BindingSource.set_DataMember (System.String value) [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) System.Windows.Forms.BindingSource:set_DataMember (string)
at mda.vaulty.main.Database.VaultManagment.InitializeBindingSources () [0x00000] in <filename unknown>:0
at mda.vaulty.main.Database.VaultManagment..ctor () [0x00000] in <filename unknown>:0
at mda.vaulty.main.MainForm..ctor () [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) mda.vaulty.main.MainForm:.ctor ()
at mda.vaulty.main.Program.Main () [0x00000] in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.ArgumentException: dataMember
at System.Windows.Forms.ListBindingHelper.GetList (System.Object dataSource, System.String dataMember) [0x00000] in <filename unknown>:0
at System.Windows.Forms.BindingSource.ResetList () [0x00000] in <filename unknown>:0
at System.Windows.Forms.BindingSource.set_DataMember (System.String value) [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) System.Windows.Forms.BindingSource:set_DataMember (string)
at mda.vaulty.main.Database.VaultManagment.InitializeBindingSources () [0x00000] in <filename unknown>:0
at mda.vaulty.main.Database.VaultManagment..ctor () [0x00000] in <filename unknown>:0
at mda.vaulty.main.MainForm..ctor () [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) mda.vaulty.main.MainForm:.ctor ()
at mda.vaulty.main.Program.Main () [0x00000] in <filename unknown>:0
该项目是一个 .NET 4.5 项目,据我所知,它与 Mono 完全兼容。我正在使用强类型数据集、带有 DataBindings 的 DataGrids 和用户特定的应用程序设置。这些组件之一会导致问题吗?app.config 由 xbuild 进程创建,它包含预期的内容(具有默认值的应用程序设置)。
xbuild 编译器也创建了一个 mdb 文件。但是我不知道这个文件,因为 VS2013 没有创建这样的文件。
你知道为什么应用程序没有启动吗?
谢谢,
问候,
迈克尔