2012-01-03 13 views
0

私は先週、C#で小さな個人用アプリケーションの学習とコーディングをしました。マシン上でデバッグするときにdotnetbarを使い、すべてが正常に動作しますが、すべてをコンパイルして1つの実行可能ファイルにしたいのですが...。 bin/releaseまたはbin/debugにファイルを置きます。私は、リリースモードでソリューションを構築し、アプリケーションを実行し、すべてがうまくいったが、テストするために別のコンピュータに転送すると、何も開かれず、約30秒後にエラーが発生した。Visual Studio C# - アプリケーションのコンパイル?

私はそれがdotnetbarだと思ったので、私は一つのボタンで新しいプロジェクトを作って、他のコンピュータでそれをテストし、それがうまくいった。私はdotnetbarからButtonXを1つ追加してテストしたところ、開いておらず、エラーメッセージも表示されませんでした。

どうしてですか?プログラムにドットネットのdllが付いてくる必要がありますか、どういうわけかアプリでコンパイルできますか?

+0

テストした他のコンピュータに、適切なバージョンの.NET Frameworkがインストールされていることを確認してください。 .NET Frameworkをインストールする必要のない.NETアプリケーションを作成する方法はありません。 –

+0

ええ、私はdotnetbar dllでテストしようとしましたが、うまくいきました。唯一の問題は、アプリケーションの中に持っていたいdllを含める必要があることです。 – mowwwalker

答えて

1

DotNetBarのwebsiteからこの情報をご覧ください。ファイルをコピーするか、Visual StudioでSetup Projectを使用する必要があります。サイト以上のことから

:WPF用

DotNetBarアプリケーションでは、アプリケーション 実行可能ファイルと同じフォルダ内に DotNetBarアセンブリを含むのと同じくらい簡単です。プロジェクト内で参照したアセンブリを配布する必要があるのは です。アセンブリ後

が含まれていてもよい:

DevComponents.WpfRibbon.dll

DevComponents.WpfEditors.dll

DevComponents.WpfDock.dll

DevComponents.WpfSchedule.dll


編集:

あなたのご意見に基づき、Self Extracting ExeILMergeのようなものを使用してみてください。私は個人的にそれを試していない。

+0

誰かがそれを以前に言及していましたが、それを使う方法を理解するのはあまり傾いていませんでしたが、とにかくそれを取得してしまったので、それはうまくいったので、感謝します。D – mowwwalker

+0

@Walkerneo –

2

はい、すべての依存関係を含める必要があります。それらをアセンブリにリンクすることはできません。私はこのドットネットバー(おそらくそれを使用していない)がGACに自分自身をインストールしたと仮定しています。適切な.dllがReleaseフォルダにコピーされない場合は、アセンブリ参照の "copy local"設定をtrueに変更する必要があります。これにより、出力フォルダにコピーされ、展開時に使用できるようになります。

+0

それは可能です。私はdotnetbarを使用してダウンロードしたアプリケーションを持っていますが、実行可能なファイルは1つだけです。 – mowwwalker

+1

あなたは既にそれらをインストールしている可能性があります。または、ダウンロードしたアプリケーションは、あなたのためにそれらをインストールしたブートストラップインストーラを使用しました。どちらの場合でも、.NETはリンクをサポートしておらず、これらの依存関係はある意味である必要があります。 –

+0

これら2つのどちらも...私は外部ファイルの必要性を排除した依存関係コンパイラを使用していたと言われました。 – mowwwalker

0

リリースと同じフォルダ内にある欠落した.dllファイルがあるようです。通常、アプリケーションを正しく実行するには、リリースフォルダ内のすべてのファイルが必要です(作成したファイルの中には、DLLとして作成され、実行時にリンクされたものがある可能性があるため)。

関連する問題