无法在没有IDE的情况下启动Gtk#Mono App(无法加载DLL" intl")

时间:2014-04-07 20:10:34

标签: c# visual-studio-2012 mono gtk#

一些背景资料:

  • 使用gtk#和mono用C#编写的跨平台桌面应用程序。
  • 目标框架:Mono / .Net 4.5
  • 运行时环境:Microsoft .NET

问题

我可以在Xamarin Studio或Visual Studio 2012中完美地构建/调试/运行项目 但每当我尝试在没有它的情况下启动调试/发布版本(打开.exe)时,我的应用程序根本无法启动。

我按照here的说法尝试HomeStream.exe 2> error.log

error.log包含以下信息:

Unhandled Exception: System.DllNotFoundException: Unable to load DLL "intl": The    specified module could not be found. (Exception from HRESULT: 0x8007007E).
at Mono.Unix.Catalog.gettext(IntPtr instring)
at Mono.Unix.Catalog.GetString(String s)
at MainWindow.Build() in g:\Users\Eric\Dropbox\Projekte\HomeStream\HomeStream\gtk-gui\MainWindow.cs:Line 35.
at MainWindow..ctor() in g:\Users\Eric\Dropbox\Projekte\HomeStream\HomeStream\MainWindow.cs:Line 22.
at HomeStream.HomeStreamApp..ctor() in g:\Users\Eric\Dropbox\Projekte\HomeStream\HomeStream\HomeStreamApp.cs:Line 67.
at HomeStream.HomeStreamApp.Main(String[] args) in g:\Users\Eric\Dropbox\Projekte\HomeStream\HomeStream\HomeStreamApp.cs:Line 47.

问题

所以我的问题是:什么样的DLL是“intl”?
并且为什么我的应用程序能够在没有它的IDE中启动它是否如此重要?

1 个答案:

答案 0 :(得分:0)

使用Gettext国际化意味着您的软件依赖于Mono.Unix,这取决于一些本机Unix库。其中一些库已被一些开发人员用于Windows平台。例如,您有MinGW或Cygwin项目来获取它们,或GnuWin32 project这是Google上的第一个项目。尝试获取适用于Windows的libintl.dll,如果无法加载,则发布新的stackoverflow问题。