gpt4 book ai didi

.net - 如何在 Linux 下使用 Mono 运行我的 C# Visual Studio 应用程序?

转载 作者:太空宇宙 更新时间:2023-11-04 03:37:58 24 4
gpt4 key购买 nike

我已经使用 Visual Studio 2013 编写了一个 C# .NET 4.5 WinForms 应用程序。现在我想在我的 Linux 计算机 (Mint 17.1) 上使用 Mono 运行此应用程序。

我已经完成了以下步骤:

  • 在 Windows 下使用 Mono Migration Analyser 分析了我的 .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 启动应用程序

应用程序无法启动,但我看到一个异常,它没有给我任何关于可能出现问题的提示。这是异常(exception)情况:

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完全兼容。我正在使用强类型数据集、带有数据绑定(bind)的数据网格和用户特定的应用程序设置。这些组件之一会导致问题吗? app.config 由 xbuild 进程创建,它包含预期的内容(具有默认值的应用程序设置)。

xbuild编译器也会创建一个mdb文件。但这个文件我不知道,因为VS2013没有创建这样的文件。

您知道应用程序未启动的原因吗?

谢谢

问候,

迈克尔

最佳答案


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 下运行它。安装 Mono 的 Windows 版本并尝试运行您的应用程序。

顺便说一句:mdb 文件是用于调试版本的 pdb 文件的 mono 版本。它们包含额外的信息(软调试器(即 gdb)的源文件、符号等的完全限定路径

关于.net - 如何在 Linux 下使用 Mono 运行我的 C# Visual Studio 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30963944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com