是否有可能Windows上的GTK或gtksharp硬编码加载程序DLL?

时间:2011-05-25 14:33:53

标签: mono installation gtk gtk#

我刚刚完成了我的GTK#/ Mono应用程序,并准备构建一个安装程序。 (我正在使用.NET Framework 3.5和最新的稳定版Mono,2.6.7,它安装了Gtk 2.10.0)我希望尽可能安装本地安装,而不是强迫人们安装GTK#for。 NET自己。我看了banshee的安装程序(http://banshee.fm)来指导我,我几乎到了那里。不幸的是,我在我的应用程序中嵌入的PNG资源没有加载。

与procmon(http://sysinternals.com)亲密了一个小时后,我发现没有加载libpixbufloader-png.dll文件。它只在一个地方被搜索:c:\ program files \ GtkSharp \ 2.12 \ lib \ gtk-2.0 \ 2.10.0 \ loaders。如果我只创建那个文件夹树并将文件粘贴在那里,那就可以了。

GTK#/ GTK似乎只会在这个文件的单个硬编码位置看起来有点疯狂 - 甚至在应用程序所在的文件夹中也没有。有人能告诉我是否a)这确实是预期的行为,而b )如果有什么我可以做的,那么我的安装程序是否会自行制定这条路径?我知道我也可以生成GTK#安装程序,但我希望将所有Mono / GTK内容保留在我的安装本地,以避免以后对版本的混淆等。

2 个答案:

答案 0 :(得分:1)

我认为你的安装程序需要在最后运行它:

C:\ Program Files \ GtkSharp \ 2.12 \ bin \ gdk-pixbuf-query-loaders.exe

请在此处查看官方Gtk#安装程序的Wix:

https://github.com/mono/gtk-sharp/blob/gtk-sharp-2-12-branch/msi/unmanaged/unmanaged.wxs

答案 1 :(得分:1)

您不必调用.exe提到的 jpobst ,因为您可以将相对路径输入gdk-pixbuf.loaders配置文件(顺便说一下,因为你看路径是硬编码的。)