0

過去数日間、私は単一の実行可能ファイル内のアセンブリのマージに苦労していました。単一の実行可能ファイルをユーザーに配布できるようにします。私ILMergeはこれとは別にこれを行うことを知りましたILMerge、それを行うように見えるツールは他にもいくつかあります。BoxedAPPパッカーも試してみSmartAssemblyました。NetShrinkうまく機能しているようですが、すべて有料ツールです。そこで、Googleを閲覧して検索し、StackOverflowから多くの作業を行った後、タスクを完了したかったのでILMerge、解決策を見つけました。

アセンブリをマージするために、以下の一連の行を試しました

c:\"Program Files"\Microsoft\ILMerge\ILMerge.exe"
/lib:"C:\Windows\Microsoft.NET\Framework\v3.5"
/lib:"C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PublicAssemblies"
/t: winexe
/target:exe
/targetplatform:v3.5,C:\Windows\Microsoft.NET\Framework\v3.5 
/out:”MergedProduct.exe”
"$(TargetDir)Product.exe"
"$(TargetDir)CButtonLib.dll"
"$(TargetDir)Common Tools.dll'
"$(TargetDir)Core.dll"
"$(TargetDir)ProgressIndicator.dll"
"$(TargetDir)TaskScheduler.dll"

Build-Events>Post-Buildeventコマンドライン内で上記の一連の行を使用しました

プロジェクトをビルドした後、ビルドが成功したときに取得しました。また、アプリケーションのビルド中は、F5キーを押してデバッグを開始したかのように実行されます。したがって、要約すると、上記の一連の行は正しいと確信していますが、出力実行可能ファイル(つまりMergedProduct.exe)がどこにも見つかりませんでした。Visual Studio 9.0のモードも使用してみましReleaseたが、それでも出力のマージされた実行可能ファイルが見つかりませんでした。

私が行方不明になっていることは本当に明白なことですか?

Product.exe.configまた、を使用してファイルをマージできますILMergeか?

どんな助けや提案も本当にありがたいです。

4

1 に答える 1

1

そのコードブロックはコマンド ラインのカットアンド過去ですか? /out ファイル名を凝った引用符で囲んでいることに気付きました。また、/out ファイル名 (例: $(TargetDir)) にフォルダーを追加しようとしましたか? ビルド プロセスでこれを行い、特定の発行フォルダーに保存します。

ILMerge を使用すると、xml ドキュメントをマージできますが、構成ファイルはマージできません (私が知る限り)。

于 2012-11-03T02:04:22.177 に答える