.net 4.0 の c# で最初の winform アプリケーションを開発しました。コンパイルされた出力には、.exe ファイルと .dll ファイルがあります。マージする前に、実行可能ファイルが正常に動作していることを確認しました。ILMerge を使用してこれら 2 つのファイルをマージしました。初めてILmergeを使用しています。だから私はどこかで間違いを犯したに違いありませんが、この問題を解決することはできません. エラーなしで単一の実行可能ファイルを取得しました。しかし、結果ファイルを開くと、クラッシュします。
Windows は、アプリケーションのクラッシュ時に次のエラーの詳細を生成しました。
Description:
Stopped working
Problem signature:
Problem Event Name: CLR20r3
Problem Signature 01: mywinapp.exe
Problem Signature 02: 1.0.0.0
Problem Signature 03: 52383768
Problem Signature 04: mscorlib
Problem Signature 05: 2.0.0.0
Problem Signature 06: 4ca2b851
Problem Signature 07: f99
Problem Signature 08: 14e
Problem Signature 09: System.TypeLoadException
OS Version: 6.1.7601.2.1.0.256.1
Locale ID: 16393
ILMerge をインストールし、ILMerge の場所から cmd で次のコマンドを使用して、マージされた .exe ファイルを作成しました。
ilmerge D:\abc\RemittanceForm.exe D:\abc\PdfFileWriter.dll /out:D:\out\MyWinApp.exe /target:winexe /ndebug /log:D:\out\aaa.txt
ログ ファイルの内容は次のとおりです。
ILMerge バージョン 2.12.803.0 Copyright (C) Microsoft Corporation 2004-2006. 全著作権所有。 ILMerge D:\abc\RemittanceForm.exe D:\abc\PdfFileWriter.dll /out:D:\out\MyWinApp.exe /target:winexe /ndebug /log:D:\out\aaa.txt mscorlib.dll のディレクトリ 'C:\Windows\Microsoft.NET\Framework64\v2.0.50727\..\v2.0.50727' を使用して、プラットフォームを 'v2' に設定します。 Microsoft (R) .NET Framework v2.0.50727 上で動作 mscorlib.dll バージョン = 2.0.0.0 入力アセンブリのリストは次のとおりです。 D:\abc\送金フォーム.exe D:\abc\PdfFileWriter.dll ファイル 'D:\abc\RemittanceForm.exe' からアセンブリを読み取ろうとしています。 アセンブリで正常に読み込まれました。 送金フォームのメタデータにエラーは報告されていません。 ファイル 'D:\abc\PdfFileWriter.dll' からアセンブリを読み取ろうとしています。 アセンブリで正常に読み込まれました。 PdfFileWriter のメタデータで報告されたエラーはありませんでした。 すべての入力アセンブリに互換性のある PeKind があることを確認しています。 送金フォーム.PeKind = ILonly PdfFileWriter.PeKind = ILonly すべての入力アセンブリには、互換性のある PeKind 値があります。 AssemblyResolver: アセンブリ '送金フォーム' がアセンブリ 'System.Windows.Forms' を参照しています。 AssemblyResolver: アセンブリのディレクトリを参照しようとしています。 AssemblyResolver: アセンブリのディレクトリを参照しているアセンブリが見つかりませんでした。 AssemblyResolver: 入力ディレクトリを試行しています。 AssemblyResolver: 入力ディレクトリにアセンブリが見つかりませんでした。 AssemblyResolver: ユーザー指定のディレクトリを試行しています。 AssemblyResolver: ユーザー指定のディレクトリはありません。 AssemblyResolver: フレームワーク ディレクトリを試行しています。 アセンブリ参照 'System.Windows.Forms' を 'C:\Windows\Microsoft.NET\Framework64\v2.0.50727\..\v2.0.50727\System.Windows.Forms.dll' に解決しました。(使用されるフレームワーク ディレクトリ。) AssemblyResolver: アセンブリ '送金フォーム' がアセンブリ 'システム' を参照しています。 AssemblyResolver: アセンブリのディレクトリを参照しようとしています。 AssemblyResolver: アセンブリのディレクトリを参照しているアセンブリが見つかりませんでした。 AssemblyResolver: 入力ディレクトリを試行しています。 AssemblyResolver: 入力ディレクトリにアセンブリが見つかりませんでした。 AssemblyResolver: ユーザー指定のディレクトリを試行しています。 AssemblyResolver: ユーザー指定のディレクトリはありません。 AssemblyResolver: フレームワーク ディレクトリを試行しています。 アセンブリ参照 'System' を 'C:\Windows\Microsoft.NET\Framework64\v2.0.50727\..\v2.0.50727\System.dll' に解決しました。(使用されるフレームワーク ディレクトリ。) AssemblyResolver: アセンブリ '送金フォーム' がアセンブリ 'System.Drawing' を参照しています。 AssemblyResolver: アセンブリのディレクトリを参照しようとしています。 AssemblyResolver: アセンブリのディレクトリを参照しているアセンブリが見つかりませんでした。 AssemblyResolver: 入力ディレクトリを試行しています。 AssemblyResolver: 入力ディレクトリにアセンブリが見つかりませんでした。 AssemblyResolver: ユーザー指定のディレクトリを試行しています。 AssemblyResolver: ユーザー指定のディレクトリはありません。 AssemblyResolver: フレームワーク ディレクトリを試行しています。 アセンブリ参照 'System.Drawing' を 'C:\Windows\Microsoft.NET\Framework64\v2.0.50727\..\v2.0.50727\System.Drawing.dll' に解決しました。(使用されるフレームワーク ディレクトリ。) ターゲット組立品の組立品レベルの属性に組立品「送金フォーム」を使用します。 アセンブリ '送金フォーム' をターゲット アセンブリにマージしています。 アセンブリ 'PdfFileWriter' をターゲット アセンブリにマージしています。 1 つの Win32 リソースをアセンブリ '送金フォーム' からターゲット アセンブリにコピーしています。 エントリ ポイント 'Remittance_Form.Program.Main' をアセンブリ '送金フォーム' からアセンブリ 'MyWinApp' に転送しています。 ターゲット アセンブリのメタデータで報告されたエラーはありませんでした。 ILMerge: ターゲット アセンブリ 'D:\out\MyWinApp.exe' を書き込んでいます。 AssemblyResolver: アセンブリ 'System' がアセンブリ 'System.Configuration' を参照しています。 AssemblyResolver: アセンブリのディレクトリを参照しようとしています。 アセンブリ参照 'System.Configuration' を 'C:\Windows\Microsoft.NET\Framework64\v2.0.50727\System.Configuration.dll' に解決しました。(モジュールのディレクトリを参照して使用されます。) 参照モジュール 'gdi32.dll' の場所は '' です 参照モジュール 'Kernel32.dll' の場所は '' です 参照アセンブリ 'System.Windows.Forms' の場所は 'C:\Windows\Microsoft.NET\Framework64\v2.0.50727\System.Windows.Forms.dll' です System.Windows.Forms のメタデータで報告されたエラーはありませんでした。 参照アセンブリ 'System' の場所は 'C:\Windows\Microsoft.NET\Framework64\v2.0.50727\system.dll' です システムのメタデータで報告されたエラーはありませんでした。 参照アセンブリ 'mscorlib' の場所は 'C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorlib.dll' です。 mscorlib のメタデータで報告されたエラーはありませんでした。 参照アセンブリ 'System.Drawing' の場所は 'C:\Windows\Microsoft.NET\Framework64\v2.0.50727\System.Drawing.dll' です System.Drawing のメタデータで報告されたエラーはありませんでした。 ILMerge: 完了。
この問題を解決するために私を助けてください。