89

次のサービス スタックの DLL といくつかの Azure の DLL を EXE プロジェクトにコピーしたという点で、EXE プロジェクト (Azure アプリケーションのスタートアップ タスク) を使用してサービス スタックを消費します。

dll

この EXE プロジェクトをビルドすると、Azure DLL は EXE にバンドルされますが、サービス スタックの DLL は EXE にバンドルされません。任意のマシンで EXE を実行するには、すべてのサービス スタックの DLL を手動でコピーする必要があるためです。

このサービススタックのdllを使用して使用しました

JsonServiceClient client = new JsonServiceClient(servicepath);

これらすべての DLL を EXE にバンドルするにはどうすればよいですか?

4

7 に答える 7

124

いくつかのオプションがあります。

  • ILMerge(無料)を使用する方法については、ここここ
    を参照してください

また

  • SmartAssembly(商用)のようなツールを使用
    して、他のものと一緒に埋め込んだりマージしたりできます(ソースコードを変更する必要はありません)

また

  • 自分で10行未満のコード(無料ですがソースコードの変更は最小限)
    は、必要なすべての依存関係を「埋め込みリソース」としてマークします-このようにして、それらはEXEファイルに含まれます...AssemblyResolve実行時にリソースから読み取るハンドラーを設定する必要があります必要なDLLを.NETランタイムに返します...
于 2011-11-10T12:04:59.130 に答える
29

お探しのツールはILMergeです。これはコマンド ライン ツールであり、次のように使用できます。

ilmerge /target:winexe /out:MyApp.exe 
        MyExe.exe ServiceStack.dll ServiceStack.Interfaces.dll ServiceStack.ServiceInterface.dll  ServiceStack.Text.dll

ILMerge を VS プロジェクトのセットアップに含める方法を説明する記事もここにあります

于 2011-11-10T11:41:27.317 に答える
7

Try ILMerge-GUI, the .NET merger. It's a GUI based Ilmerge which avoids all command line work.

于 2015-06-26T12:48:59.343 に答える
2

ServiceStack.Gapプロジェクトをチェックアウトして、 ServiceStack を単一のクロスプラットフォーム.exeに ILMerge する方法の例をいくつか示します。

ServiceStack には、これらの組み込みアプリの作成に特に適した他の多くの機能も含まれています。

  • .NET の HTTP リスナーを使用してサービスを自己ホストできるようにします
  • コンパイル済みの Razor ビューをサポート
  • 埋め込みリソースをサポート
  • Sqlite および OrmLite で組み込みデータベースをサポート
  • 単一の .exe に ILMerged 可能
于 2015-06-26T13:12:04.173 に答える