我用Visual Studio 2013编写了一个C#.NET 4.5 WinForms应用程序。现在我想在我的Linux机器上使用Mono运行这个应用程序(Mint 17.1)。
我已经完成了以下步骤:
应用程序没有启动,但我看到一个异常,它没有给我任何关于可能出错的提示。这是例外:
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完全兼容。我正在使用强类型DataSet,DataGrids与DataBindings和用户特定的应用程序设置。其中一个组件会导致问题吗? app.config由xbuild进程创建,它包含预期的内容(使用默认值的应用程序设置)。
xbuild编译器也创建了一个mdb文件。但这个文件对我来说不为人知,因为VS2013并没有创建这样的文件。
你知道应用程序没有启动的原因吗?
谢谢,
此致
迈克尔答案 0 :(得分: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
您的Linux / Mint框中似乎没有定义数据库/数据源,因此文件名例外。开箱即用,Mono提供SQLite安装,但就是这样。有许多ODBC提供程序可以同时用于各种类型的Linux(请咨询您的数据库提供程序)。
这当然不会检查这个Moma。
另外,我建议在Windows机器上的Mono下运行它。安装Windows版本的mono并尝试运行您的应用程序。
BTW:mdb文件是用于调试版本的pdb文件的mono版本。它们包含额外的信息(用于软调试器(即gdb)的源文件,符号等的完全限定路径