我正在使用Xamarin Studio 5.3(版本441)在Windows 7(64b)上編寫GTK#(GTK 2.12)應用程序。無法使用MS .NET運行時運行GTK#應用程序,只能與Mono運行
我已經安裝了4.0和4.5.Net SDK,Xamarin使用.Net來「編譯」我的應用程序(不是Mono,它已經安裝了[版本3.2.3])。
當我按下Xamarin Studio中的「播放」按鈕時,它正確編譯我的應用程序並啓動它。
如果在命令行中輸入「mono LightCreator.exe」,那麼應用程序也可以順利運行。
但是......這裏是我遇到的問題:如果我嘗試從文件系統瀏覽器「直接」執行應用程序或鍵入「。\ LightCreator.exe」,則應用程序崩潰。
該崩潰會生成三個日誌文件,其中一個是二進制文件。下面是文本文件:
第一:
<?xml version="1.0" encoding="UTF-16"?>
<WERReportMetadata>
<OSVersionInformation>
<WindowsNTVersion>6.1</WindowsNTVersion>
<Build>7601 Service Pack 1</Build>
<Product>(0x30): Windows 7 Professional</Product>
<Edition>Professional</Edition>
<BuildString>7601.18409.amd64fre.win7sp1_gdr.140303-2144</BuildString>
<Revision>1130</Revision>
<Flavor>Multiprocessor Free</Flavor>
<Architecture>X64</Architecture>
<LCID>3082</LCID>
</OSVersionInformation>
<ProblemSignatures>
<EventType>CLR20r3</EventType>
<Parameter0>lightcreator.exe</Parameter0>
<Parameter1>0.1.5375.20160</Parameter1>
<Parameter2>541c0170</Parameter2>
<Parameter3>gtk-sharp</Parameter3>
<Parameter4>2.12.0.0</Parameter4>
<Parameter5>52cb5af9</Parameter5>
<Parameter6>3c46</Parameter6>
<Parameter7>16</Parameter7>
<Parameter8>System.DllNotFoundException</Parameter8>
</ProblemSignatures>
<DynamicSignatures>
<Parameter1>6.1.7601.2.1.0.256.48</Parameter1>
<Parameter2>3082</Parameter2>
<Parameter22>0a9e</Parameter22>
<Parameter23>0a9e372d3b4ad19135b953a78882e789</Parameter23>
<Parameter24>0a9e</Parameter24>
<Parameter25>0a9e372d3b4ad19135b953a78882e789</Parameter25>
</DynamicSignatures>
<SystemInformation>
[...]
</SystemInformation>
</WERReportMetadata>
二:
<?xml version="1.0" encoding="UTF-16"?>
<DATABASE>
<EXE NAME="LightCreator.exe" FILTER="CMI_FILTER_PRIVACY">
<MATCHING_FILE NAME="atk-sharp.dll" SIZE="186368" CHECKSUM="0xB5614E22" BIN_FILE_VERSION="2.12.0.0" BIN_PRODUCT_VERSION="2.12.0.0" PRODUCT_VERSION="2.12.0.0" FILE_DESCRIPTION=" " FILE_VERSION="2.12.0.0" ORIGINAL_FILENAME="atk-sharp.dll" INTERNAL_NAME="atk-sharp.dll" LEGAL_COPYRIGHT=" " VERDATEHI="0x0" VERDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x30ECC" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="2.12.0.0" UPTO_BIN_PRODUCT_VERSION="2.12.0.0" LINK_DATE="01/07/2014 01:39:58" UPTO_LINK_DATE="01/07/2014 01:39:58" VER_LANGUAGE="Independiente del idioma [0x0]" EXE_WRAPPER="0x0" />
<MATCHING_FILE NAME="gdk-sharp.dll" SIZE="241664" CHECKSUM="0x6DFFF0CD" BIN_FILE_VERSION="2.12.0.0" BIN_PRODUCT_VERSION="2.12.0.0" PRODUCT_VERSION="2.12.0.0" FILE_DESCRIPTION=" " FILE_VERSION="2.12.0.0" ORIGINAL_FILENAME="gdk-sharp.dll" INTERNAL_NAME="gdk-sharp.dll" LEGAL_COPYRIGHT=" " VERDATEHI="0x0" VERDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x43754" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="2.12.0.0" UPTO_BIN_PRODUCT_VERSION="2.12.0.0" LINK_DATE="01/07/2014 01:40:02" UPTO_LINK_DATE="01/07/2014 01:40:02" VER_LANGUAGE="Independiente del idioma [0x0]" EXE_WRAPPER="0x0" />
<MATCHING_FILE NAME="glade-sharp.dll" SIZE="33792" CHECKSUM="0x37CBE288" BIN_FILE_VERSION="2.12.0.0" BIN_PRODUCT_VERSION="2.12.0.0" PRODUCT_VERSION="2.12.0.0" FILE_DESCRIPTION=" " FILE_VERSION="2.12.0.0" ORIGINAL_FILENAME="glade-sharp.dll" INTERNAL_NAME="glade-sharp.dll" LEGAL_COPYRIGHT=" " VERDATEHI="0x0" VERDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0xE82D" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="2.12.0.0" UPTO_BIN_PRODUCT_VERSION="2.12.0.0" LINK_DATE="01/07/2014 01:40:18" UPTO_LINK_DATE="01/07/2014 01:40:18" VER_LANGUAGE="Independiente del idioma [0x0]" EXE_WRAPPER="0x0" />
<MATCHING_FILE NAME="glib-sharp.dll" SIZE="93184" CHECKSUM="0x8E81BA23" BIN_FILE_VERSION="2.12.0.0" BIN_PRODUCT_VERSION="2.12.0.0" PRODUCT_VERSION="2.12.0.0" FILE_DESCRIPTION=" " FILE_VERSION="2.12.0.0" ORIGINAL_FILENAME="glib-sharp.dll" INTERNAL_NAME="glib-sharp.dll" LEGAL_COPYRIGHT=" " VERDATEHI="0x0" VERDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x1B043" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="2.12.0.0" UPTO_BIN_PRODUCT_VERSION="2.12.0.0" LINK_DATE="01/07/2014 01:39:54" UPTO_LINK_DATE="01/07/2014 01:39:54" VER_LANGUAGE="Independiente del idioma [0x0]" EXE_WRAPPER="0x0" />
<MATCHING_FILE NAME="gtk-sharp.dll" SIZE="1399808" CHECKSUM="0xCF74A67" BIN_FILE_VERSION="2.12.0.0" BIN_PRODUCT_VERSION="2.12.0.0" PRODUCT_VERSION="2.12.0.0" FILE_DESCRIPTION=" " FILE_VERSION="2.12.0.0" ORIGINAL_FILENAME="gtk-sharp.dll" INTERNAL_NAME="gtk-sharp.dll" LEGAL_COPYRIGHT=" " VERDATEHI="0x0" VERDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x15C983" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="2.12.0.0" UPTO_BIN_PRODUCT_VERSION="2.12.0.0" LINK_DATE="01/07/2014 01:40:09" UPTO_LINK_DATE="01/07/2014 01:40:09" VER_LANGUAGE="Independiente del idioma [0x0]" EXE_WRAPPER="0x0" />
<MATCHING_FILE NAME="LightCreator.exe" SIZE="10752" CHECKSUM="0xD5D28E57" BIN_FILE_VERSION="0.1.5375.20160" BIN_PRODUCT_VERSION="0.1.5375.20160" PRODUCT_VERSION="0.1.5375.20160" FILE_DESCRIPTION="LightCreator" COMPANY_NAME="Ledmotive" PRODUCT_NAME="LightCreator" FILE_VERSION="0.1.5375.20160" ORIGINAL_FILENAME="LightCreator.exe" INTERNAL_NAME="LightCreator.exe" LEGAL_COPYRIGHT="Ledmotive 2014" VERDATEHI="0x0" VERDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x1" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="0.1.5375.20160" UPTO_BIN_PRODUCT_VERSION="0.1.5375.20160" LINK_DATE="09/19/2014 10:12:00" UPTO_LINK_DATE="09/19/2014 10:12:00" VER_LANGUAGE="Independiente del idioma [0x0]" EXE_WRAPPER="0x0" FILE_ID="00009e6f84923c0597ef3b370ba91ea90105ef77ffdd" PROGRAM_ID="0000da39a3ee5e6b4b0d3255bfef95601890afd80709" />
<MATCHING_FILE NAME="Mono.Cairo.dll" SIZE="59904" CHECKSUM="0xCCDC21BD" BIN_FILE_VERSION="4.0.0.0" BIN_PRODUCT_VERSION="4.0.0.0" PRODUCT_VERSION=" " FILE_DESCRIPTION=" " COMPANY_NAME=" " PRODUCT_NAME=" " FILE_VERSION="4.0.0.0" ORIGINAL_FILENAME="Mono.Cairo.dll" INTERNAL_NAME="Mono.Cairo" LEGAL_COPYRIGHT=" " VERDATEHI="0x0" VERDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="4.0.0.0" UPTO_BIN_PRODUCT_VERSION="4.0.0.0" LINK_DATE="07/12/2013 07:49:31" UPTO_LINK_DATE="07/12/2013 07:49:31" VER_LANGUAGE="Idioma invariable (país invariable) [0x7f]" EXE_WRAPPER="0x0" />
<MATCHING_FILE NAME="Mono.Posix.dll" SIZE="181248" CHECKSUM="0xF1A4B3A7" BIN_FILE_VERSION="2.0.0.0" BIN_PRODUCT_VERSION="2.0.0.0" PRODUCT_VERSION="2.0.0.0" FILE_DESCRIPTION="Mono.Posix.dll" COMPANY_NAME="" PRODUCT_NAME="" FILE_VERSION="2.0.0.0" ORIGINAL_FILENAME="Mono.Posix.dll" INTERNAL_NAME="Mono.Posix.dll" LEGAL_COPYRIGHT=" " VERDATEHI="0x0" VERDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="2.0.0.0" UPTO_BIN_PRODUCT_VERSION="2.0.0.0" LINK_DATE="01/09/2009 18:43:51" UPTO_LINK_DATE="01/09/2009 18:43:51" VER_LANGUAGE="Independiente del idioma [0x0]" EXE_WRAPPER="0x0" />
<MATCHING_FILE NAME="pango-sharp.dll" SIZE="97280" CHECKSUM="0x23DE5420" BIN_FILE_VERSION="2.12.0.0" BIN_PRODUCT_VERSION="2.12.0.0" PRODUCT_VERSION="2.12.0.0" FILE_DESCRIPTION=" " FILE_VERSION="2.12.0.0" ORIGINAL_FILENAME="pango-sharp.dll" INTERNAL_NAME="pango-sharp.dll" LEGAL_COPYRIGHT=" " VERDATEHI="0x0" VERDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x1CA73" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="2.12.0.0" UPTO_BIN_PRODUCT_VERSION="2.12.0.0" LINK_DATE="01/07/2014 01:39:55" UPTO_LINK_DATE="01/07/2014 01:39:55" VER_LANGUAGE="Independiente del idioma [0x0]" EXE_WRAPPER="0x0" />
</EXE>
<EXE NAME="KERNELBASE.dll" FILTER="CMI_FILTER_THISFILEONLY">
<MATCHING_FILE NAME="KernelBase.dll" SIZE="274944" CHECKSUM="0x81EAFB25" BIN_FILE_VERSION="6.1.7601.18409" BIN_PRODUCT_VERSION="6.1.7601.18409" PRODUCT_VERSION="6.1.7601.18015" FILE_DESCRIPTION="Archivo DLL de cliente API BASE de Windows NT" COMPANY_NAME="Microsoft Corporation" PRODUCT_NAME="Sistema operativo Microsoft® Windows®" FILE_VERSION="6.1.7601.18015 (win7sp1_gdr.121129-1432)" ORIGINAL_FILENAME="Kernelbase" INTERNAL_NAME="Kernelbase" LEGAL_COPYRIGHT="© Microsoft Corporation. Reservados todos los derechos." VERDATEHI="0x0" VERDATELO="0x0" VERFILEOS="0x40004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x49E52" LINKER_VERSION="0x60001" UPTO_BIN_FILE_VERSION="6.1.7601.18409" UPTO_BIN_PRODUCT_VERSION="6.1.7601.18409" LINK_DATE="03/04/2014 09:19:02" UPTO_LINK_DATE="03/04/2014 09:19:02" EXPORT_NAME="KERNELBASE.dll" VER_LANGUAGE="Español (España, internacional) [0xc0a]" EXE_WRAPPER="0x0" FILE_ID="00000a832621f9dd06389f9f425e811d5e0127aedb60" PROGRAM_ID="0000f519feec486de87ed73cb92d3cac802400000000" />
</EXE>
<EXE NAME="kernel32.dll" FILTER="CMI_FILTER_THISFILEONLY">
<MATCHING_FILE NAME="kernel32.dll" SIZE="1114112" CHECKSUM="0x5B25986C" BIN_FILE_VERSION="6.1.7601.18409" BIN_PRODUCT_VERSION="6.1.7601.18409" PRODUCT_VERSION="6.1.7601.18015" FILE_DESCRIPTION="Archivo DLL de cliente API BASE de Windows NT" COMPANY_NAME="Microsoft Corporation" PRODUCT_NAME="Sistema operativo Microsoft® Windows®" FILE_VERSION="6.1.7601.18015 (win7sp1_gdr.121129-1432)" ORIGINAL_FILENAME="kernel32" INTERNAL_NAME="kernel32" LEGAL_COPYRIGHT="© Microsoft Corporation. Reservados todos los derechos." VERDATEHI="0x0" VERDATELO="0x0" VERFILEOS="0x40004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x1105AE" LINKER_VERSION="0x60001" UPTO_BIN_FILE_VERSION="6.1.7601.18409" UPTO_BIN_PRODUCT_VERSION="6.1.7601.18409" LINK_DATE="03/04/2014 09:19:01" UPTO_LINK_DATE="03/04/2014 09:19:01" EXPORT_NAME="KERNEL32.dll" VER_LANGUAGE="Español (España, internacional) [0xc0a]" EXE_WRAPPER="0x0" FILE_ID="00004cd3e572ae6f2f7913dd8f0da01340fffe5c47b0" PROGRAM_ID="0000f519feec486de87ed73cb92d3cac802400000000" />
</EXE>
</DATABASE>
其他信息:
因爲錯誤是指GTK鋒利,我複製的DLL到可執行文件的目錄(可以告訴Xamarin Studio在編譯程序時放入DLL文件的副本),但是複製DLL文件並不能解決問題。
複製的DLL的列表:
- ATK-sharp.dll
- GDK-sharp.dll
- 空地-sharp.dll
- 油嘴-sharp.dll
- GTK的尖銳.dll
- Mono.Cairo.dll
- Mono.Posix.dll
- 攀高,sharp.dll
我也看到了許多其他類似的StackOverflow線程...但我沒有發現任何東西,可以幫助我:
- Running an gtk# Application made in MonoDev with .Net
- Running GTK# Application on Windows
- Can't start Gtk# Mono App without IDE (Unable to load DLL "intl")
- Why doesn't my GTK# compiled binary (created with MonoDevelop) work on Windows?
在此先感謝您的建議。
現在我在家的時候,我沒有Windows機器檢查此解決方案,但是......爲什麼我的程序需要在路徑這條路呢?據我所知,這個問題是由於我的問題無法加載gtk-sharp.dll文件引起的,但是這個文件在GAC中,也在程序目錄中... – castarco 2014-09-19 15:32:07
Gtk-Sharp.dll是一個.NET程序集,它調用存在於C:\ Program Files中的Win32 dll的Gtk庫。 Gtk-Sharp組件PInvoke出Gtk Win32 dll。這些Win32 dll需要在你的路徑上,否則你會得到一個DllNotFoundException。 – 2014-09-19 16:18:52
這看起來很合理:)。但我想我會複製所需的GTK Win32 DLL而不是修改PATH變量。我會在這裏告訴你兩種方法的結果。這個星期一我會將這個提議標記爲正確的解決方案,如果它能夠工作。 – castarco 2014-09-20 17:39:22