2016-05-03 16 views
2

私は最近、画像内の数字を決定する小さなプログラムをコーディングしました。これは私が使った2つのライブラリに依存しています。 (DLL)"portable" .exe(インストーラなし)の作成

私のターゲットコンピュータはセキュリティ上の理由からプログラムのインストールが許可されていないため、ポータブル.exeを作成する必要があります。 .NETがターゲットコンピュータにインストールされていますが、何らかの理由でVSにはまだEXEで使用したライブラリが含まれていませんが、代わりにsetup.exe、一部の.DEPLOYファイル、アプリケーションマニフェストを含むアプリケーションフォルダが作成されます。

私はVSと.NETには一般的ではないので、この質問には簡単に答えることができますが、私はStackOverflowとGoogleのどちらでも役に立たないとは思っていません。

+2

「ビルド」ではなく「デプロイ」を使用しているような音です。 VSでは、通常、プロジェクトディレクトリ( "bin/debug"または "bin/release")の出力を取得し、それをターゲットマシンにコピーすることができます。 –

+0

プロジェクトをビルドしてインストールせずに.exeファイルを実行できます。 .. \ bin \ Debugフォルダにある .exeファイル。 –

+0

上記の両方のコメントは、Win 8、8.1、およびUWPアプリケーションを除いて右のものです。あなたはこれらのファイルからexeファイルを取得することはありませんし、それらを目的のPC上でサイドロードする必要があります。 –

答えて

4

これを行う1つの方法は、リリースモードでアプリケーションをビルドすることです(ドロップダウンメニューの[デバッグ]または[リリース]から選択できます)。次にC:\ Projects [ProjectName] [ProjectName] \ bin \ Release(プロジェクトフォルダの場所は異なる場合があります)に移動します。たくさんのファイルが表示されますが、本当に必要なのは、DLL、実行可能ファイル、および使用している場合はconfigです。必要なファイルをアプリケーションのフォルダに保存し、すべてを対象のコンピュータのフォルダにコピーして、ショートカットを作成しておきたい場合は、セットアップを行う必要はありません。

4

アプリケーションを作成してbin/Debugフォルダをコピーするだけでも、複数のファイルが必要になることがあります。

すべての参照を実行可能ファイルにマージするには、ILMergeを使用します。ここにはsome help calling ILMergeがあります。

は基本的には、構築した後、あなたはこのような何かをする必要があります

ilmerge /target:winexe /out:SelfContainedProgram.exe 
    Program.exe ClassLibrary1.dll ClassLibrary2.dll 

あなたが一緒に送信する必要がある1つのファイルだけがあります。

+1

彼はビルドディレクトリに問題があり、すべてのアセンブリをマージしていないように思えます。その答えは役に立つ次のステップですが、彼の現在の問題は解決しません。編集:Jup、それはいいです;) –

+0

ありがとう@ManfredRadlwimmer –

+1

私はILMergeを前に試しましたが、いくつかの例外がスローされました。とにかく答えてくれてありがとう。 –

2

すべてのアセンブリを任意のフォルダにコピーできます。 Visual Studio内から "Build"を選択し、ファイルをbin/debugから目的のフォルダにコピーしてください。

ただし、プログラムのユーザーがどこにファイルをコピーするかわからないため、すべての(相対的な)パス(存在する場合)が動作することを確認する必要があります。

関連する問題