2016-08-23 1 views
1

.Net framework 4.5C#の上に書かれたアプリケーションはVisual Studio 2015 Communityです。私はWin10のOSで64 bitマシンに作成しました。ubuntuでwinforms appを実行することは可能ですか?

Ubuntuでこのアプリケーションを実行する可能性はありますか?それでは、アプリケーションをコンパイルしてubuntuマシンと互換性を持たせるにはどうすればいいですか?

私はクロスプラットフォームアプリケーションとして展開したいと思いますが、私は最良の方法を考え出すのに苦労しています。私はMonoについて聞いたが、私はまだIDEとfamilliarではない。

助けてください。

+1

WinFormsがWinAPI関数のラッパーであり、Ubuntuでアナログがない可能性があるので、私は不可能だと思います。 – Anton

+0

これは聞いても悪いですが、私は** Mono **で作成されたwinformsアプリケーションを見つけました。彼らはまた、それもubuntuで動作すると言います。このアプローチのための私の問題は、私はモノで私のアプリケーションをコンパイルする方法を知っていませんubuntuで動作するように。 –

+0

私はこれを見つけました[link] http://www.mono-project.com/docs/gui/winforms – Anton

答えて

1

Re。 WinForms:理論的にはこれは可能ですが、WinFormsプロジェクトの状況をチェックして、これがクロスプラットフォームであるかどうか、そしてフォームデザイナーなどの特定のツールが利用可能か安定しているかを確認したいと思うかもしれません。一から始めるならば、クロスプラットフォームでGTK#を使うことができます。これはMonoDevelop/Xamarinで優れたツーリングサポートを持っていますが、すでにWinFormsに多額の投資をしていた場合には役に立ちません。

Re。 Linuxの場合:Monoを使用して再コンパイルする必要はありません。コード内の.NET CLR固有の機能(Monoでは実装されていません)を使用している場合や、あなたのビルドプロセスでILMerge。私はあなたのexeを依存関係を持つLinux上に投げ捨て、見つけ出すためにテストします。あなたが再コンパイルする必要がある場合は、Linux、BSD、またはMac OS XでMonoコンパイラを直接使用するか、MonoDevelopでプロジェクトを開いてそのように構築できます。これらのプラットフォームのいずれも、他の* nix上でMonoで実行可能なプログラムを生成する必要があります。

+0

これは本当です。私は、クロスフォームアプリケーションにwinforms .netを変換するときに大きな咬合があるので、私は頭からつま先まで本当に始める必要があると思います。私は多くのP/Invokeメソッドを使用しました。 Mono/Xamarin IDEでは見つかりませんでした。 –

1

特殊な.NETクラスまたはネイティブライブラリを使用している場合を除き、これは可能で簡単です。

.NETコンパイルされた実行可能ファイルはビルドされたバイトコードなので、特定のプラットフォームにはリンクされず、Monoはこれを念頭に置いて設計されています。

あなただけの「WindowsApplication」という名前のアプリケーションをテストしたと仮定すると、次の手順に従いしよう:

チェックをお使いのVisual Studioプロジェクトフォルダの下に、あなたのWindowsApplication.exeを検索してみてください。 チェック"C:\Users\YourName\Documents\Visual Studio\Projects\WindowsApplication\WindowsApplication\bin\Debug(またはリリース)モノコマンドが利用可能な場合(このテストはちょうどあなたのホームディレクトリを使用するために)あなたのフォルダにUbuntuのシステムチェックにモノをインストールした後

[email protected] ~ $ mono --version Mono JIT compiler version 5.0.1 (Visual Studio built mono) Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com TLS: normal SIGSEGV: normal (more output)

プログラムの実行ファイルをWindowsからUbuntuフォルダにコピーして、ちょうどをテストしたディレクトリにコピーしたとしましょう。次のように入力して

起動それを:それはあなたがある「モノ移行アナライザ」(ニューヨーク近代美術館)をダウンロードすることができます実行されなかった場合には mono ./WindowsApplication1.exe(それはあなたの現在のディレクトリ内の場合) またはmono /<another_path_to_your_executable>/WindowsAppliction.exe

未解決の依存関係を特定し、問題の解決に役立つように特別に設計されたツール。

関連する問題