ユーザーが .NET/Mono または GTK# をインストールしなくても GTK# アプリケーションを配布できるように、mkbundle を使用しようとしています。winforms を使用するアプリケーションをバンドルすることに成功しましたが、GTK# アプリケーションで同じことを行うと、何らかの理由で機能しません。
これは私がcygwinから得たものです:
$ mkbundle --deps a.exe
OS is: Windows
Sources: 1 Auto-dependencies: True
未処理の例外: System.IO.FileNotFoundException: ファイルまたはアセンブリ 'gtk-sharp' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。
ファイル名: 'gtk-sharp'
at System.AppDomain.Load (System.Reflection.AssemblyName assemblyRef, System.Security.Policy.Evidence assemblySecurity) [0x00000] in :0
at (wrapper remoting-invoke-with-check) System. AppDomain:Load (System.Reflection.AssemblyName,System.Security.Policy.Evidence)
at System.AppDomain.Load (System.Reflection.AssemblyName assemblyRef) [0x00000] in :0
at (wrapper remoting-invoke-with-check) システム.AppDomain:Load (System.Reflection.AssemblyName)
at System.Reflection.Assembly.Load (System.Reflection.AssemblyName assemblyRef) [0x00000] in :0
MakeBundle.QueueAssembly (System.Collections.ArrayList ファイル、System.String コードベース) [0x00000] で:0
MakeBundle.Main (System.String[] args) [0x00000] で:0
[エラー] 致命的な未処理の例外: システム。 IO.FileNotFoundException: ファイルまたはアセンブリ 'gtk-sharp' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。
ファイル名: 'gtk-sharp'
at System.AppDomain.Load (System.Reflection.AssemblyName assemblyRef, System.Security.Policy.Evidence assemblySecurity) [0x00000] in :0
at (wrapper remoting-invoke-with-check) System. AppDomain:Load (System.Reflection.AssemblyName,System.Security.Policy.Evidence)
at System.AppDomain.Load (System.Reflection.AssemblyName assemblyRef) [0x00000] in :0
at (wrapper remoting-invoke-with-check) System.AppDomain:Load (System.Reflection.AssemblyName)
at System.Reflection.Assembly.Load (System.Reflection.AssemblyName assemblyRef) [0x00000] in :0
at MakeBundle.QueueAssembly ( System.Collections.ArrayList ファイル、System.String コードベース) [0x00000] in :0
MakeBundle.Main (System.String[] args) [0x00000] in :0`
しかし、まだ PATH 変数に /cygdrive/c/GtkSharp/2.12/lib があります。これを確認できます。cygwin に「gtk-sharp.dll」と入力すると、次の結果が返されます。
$ gtk-sharp.dll
bash: /cygdrive/c/GtkSharp/2.12/lib/gtk-sharp-2.0/gtk-sharp.dll: cannot execute binary file
したがって、ファイルを見つけることができるはずです。
どんな助けでも大歓迎です。