問題タブ [mkbundle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mono - monoをインストールせずにアプリケーションを配布する
C# アプリケーションを Linux クラスター上の各コンピューターに配布して、各コンピューターに mono をインストールしなくても実行できるようにしたいと考えています。
mkbundle を機能させるために何時間も費やしましたが、適切にバンドルされません (mono がインストールされていない別のマシンでアプリケーションを実行できません)。
これを行う最善の方法は何ですか?
.net - mkbundle と GTK#
ユーザーが .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
したがって、ファイルを見つけることができるはずです。
どんな助けでも大歓迎です。
windows - mkbundle が機能しないコンソール exe を生成する
MonoDevelop C# プロジェクトからバンドルされた exe を正常にビルドできますが、バンドルを実行しても何も実行されません。実行は即座にサイレントに終了します。私は何を間違っていますか?
私は 64 ビットの Windows 7 で Mono 2.10.5 を使用しており、cygwin は通常これらの手順に従っていますが、これらの変更が加えられています。私が従う正確な手順は次のとおりです。
- MonoDevelop で新しい C# コンソール プロジェクトを作成します (のみを含む
Console.WriteLine ("Hello World!");) - ターゲットをリリースに変更
- すべてビルド
- Cygwin の場合:
mkbundle -c -o host.c -oo bundle.o --deps BundleTest.exe - host.c を編集し、
#undef _WIN32after#endifafterを追加#include <windows.h> - Cygwin の場合:
gcc -mno-cygwin -o test.exe -Wall host.c 'pkg-config --cflags --libs mono-2|dos2unix' bundle.o - コマンドプロンプトで:
test.exe - コマンドプロンプトで:
BundleTest.exe
ステップ 7 で、テキスト「Hello World!」期待どおりにコマンドプロンプトに出力されます。手順 8 では、コマンド プロンプトに何も出力されません。rem と入力して Enter キーを押すと、まったく同じ応答が得られます。
編集: 他の誰かがこの質問を編集して、手順 7 と 8 を切り替えました。これにより、観察された動作の説明が大幅に変更されました。彼らは観察を行っていなかったので、なぜ彼らがこれを行うことに正当性を感じたのかはわかりませんが、私がこの問題について考えていた時とはかけ離れているので、元に戻したくありません。彼らはいた。したがって、この編集の前の最後の段落は、おそらく私の元の観察を正確に反映していないことに注意してください.
.net - C# プログラムは、Linux の mono では動作しません。
Visual C# 2010 で記述したプログラムを Linux で動作させようとしています。そのために、潜在的なクライアントがモノをインストールする必要がないように、mkbundle 機能を使用しました。残念ながら、私は Linux や Mono について詳しくないので、これに従いました: c# cywgwin mono mkbundle windows 7 - ファイルをコンパイルできません
しかし、何らかの理由で、mkbundle は最後に [FAIL] を書き込み、「そのようなファイルやディレクトリはありません」と何か言っています。以下に全文を貼り付けておきます。これを解決する方法を知っている人はいますか?
Linux 仮想マシンで mkbundle を使用しようとすると、Linux 実行可能ファイルを正常に取得できましたが、Ubuntu Linux VM で (Oracle VM Virtual Box を使用して) プログラムを実行すると、常に次のエラーが発生します。
.net - 互換性のないライブラリをスキップする(mkbundle)
「monoProgram.exe」を使用して正常に動作する.Netプログラムがありますが、同じマシンで「mkbundle -o prog Program.exe --deps」を使用しようとすると、次のエラーが返されます。
/ usr / bin / ld:互換性のない/opt/novell/mono/lib/pkgconfig/../../lib/libmono-2.0.soをスキップして-lmono-2.0を検索/ usr / bin / ld:互換性のない/をスキップopt / novell / mono / lib / pkgconfig /../../ lib/libmono-2.0.a-lmono-2.0を検索する場合/usr/ bin / ld:-lmono-2.0が見つかりませんcollect2:ldが1つの終了ステータスを返しました
システムはx86_64上のCentOS5.7です。これらの手順を使用して、このシステムにmonoをインストールしました。モノが機能する理由を誰かが知っていますが、mkbundleは機能しませんか?どうすれば修正できますか?
macos - Mono ランタイムは、Mac 用の Mono Winform アプリにバンドルする必要があります
Macでの開発は初めてです。
Windows プラットフォームで C# を使用して作成した 1 つの Windows フォーム アプリを移行しました。MonoDevelop 内の Mac でこのアプリを実行し、IDE 内で問題なく実行できます。
ここで、アプリケーションに Mono ランタイムを含むセットアップを作成して、ユーザーが Mono ランタイムをインストールしているかどうかにかかわらず、アプリケーションを実行し続けることができるようにしたいと考えています。
私の Mac マシンには Mac OS X 10.5 が搭載されています。最新の Mono 開発ツールと Mono ランタイム 2.0 をインストールしました。それが私がやったことのすべてです。
これを実現するために、MkBundle ツールを使用してバンドルを作成しています。私のコマンドは端末で次のようになります。
mkbundle -o hello hello.exe --deps
このコマンドを実行すると、次のエラーが発生します。「sh: as: コマンドが見つかりません」。
ターミナルに表示されるテキストに従うとエラーが発生する
「コンパイル: as -o temp.o temp.s」.
なぜこのエラーが発生するのかわかりません。
私は Mac/Unix を初めて使用するので、簡単に実行できる手順を教えてください。
正しい方向への具体的な答えやヒントをいただければ幸いです。
c# - MacのMonoアプリケーションが「System.MissingMethodException:タイプSystem.Configuration.ExeConfigurationHostのデフォルトコンストラクターが見つかりません」で失敗する
このコードは基本的にHTTP呼び出しを行っており、試行すると失敗しますが、アプリケーションがMacアプリケーションとしてパッケージ化されている場合にのみ、MonoDevelop内でアプリケーションを実行すると発生しません。
誰かがこれが何であるかについてのヒントを持っていますか?
編集
mkbundleとconfigオプションについて多くの人が話しているのを見てきましたが、MonoDevelopでMacアプリケーションパッケージを生成しているとき、このオプションはどこにも表示されません。
c# - mkbundle を使用して C# ソースコードから Linux 実行可能ファイルを作成する際の問題
このスレッドとここで述べたように、私はmkbundle -o newfile oldfile.exe --static(OS: Ubuntu 11.10 64 ビット、Mono: 2.10.5) を使用して、Apache Web サーバー (OS: Debian GNU/Linux 32 ビット) で実行可能なファイルを作成しています。ここで、oldfile.exeは を使用して C#-Hello-World-Code をコンパイルした結果ですmcs oldfile.cs。元のシステム (Ubuntu を使用) では、ファイルは実行可能です。newfileただし、 Apache Web サーバーを呼び出すたびに、次のエラーが表示されます。
バイナリファイルを実行できません
また、それをするときfile newfileは言う
ELF 64 ビット LSB 実行可能、x86-64、バージョン 1 (SYSV)、動的にリンク (共有ライブラリを使用)、削除されていない
mkbundle が想定どおりに機能した場合は、
... 静的にリンク ...
すべきではないですか?ファイルがサーバー上で実行できない理由を知っている人はいますか? 32bit/64bitだから問題ないの?
c# - シンプルな Winforms アプリケーションをコンパイルするために mkbundle(mono) を使用する場合の例外
使用してみmkbundle --deps f.exe -o d.exe
ましたが、例外がスローされます
次のエラーが表示されます
誰かが私を助けることができますか?
上記のエラーは、Cygwin の Windows から直接 mkbundle を使用したときに発生しました。次のエラーが表示されます。
ネットから、「as」はコンパイラであることがわかりました。どこで入手できますか。助けてください。私は Linux 愛好家ではありません。