1

Visual Studio でコンパイルした後、VB.Net 1.1 アプリケーションが問題なく動作します。ただし、ILMerge を使用して、参照されているすべてのアセンブリを 1 つの実行可能ファイルに結合し、簡単に移動できるようにしたいと考えています。ILMerge 経由で送信して実行しようとすると、エラーが発生します

「Assembly.exe の厳密な名前の検証に失敗しました」.....

しかし、私のものはどれも強い名前ではありません! ここでこの投稿を見ました:厳密な名前の検証に失敗し、「sn.exe -Vr merged.exe」で実行しようとしましたが、次のエラーが表示されます:

「merged.exe は厳密な名前のアセンブリを表していません」

他の誰かが以前にこの問題を抱えていましたか? どうすれば修正できますか?

アップデート:

ここでは、厳密な名前の検証は本当の問題ではないように感じ始めています。私は .NET v1.1 に対してビルドし、それがインストールされている唯一の .NET バージョン (たまたま Windows 2003) であるマシン上で実行しています。マージされた実行可能ファイルは、試したすべての Windows 2003 マシンでそのエラーで停止しているように見えますが、より新しい OS (Vista) で実行しようとすると、少なくとも開始されますが、環境がそうでないため、実際には良いテストではありません。実際のテストに適しています。

  • app.config の設定が正しいことを確認しました (v1.1.4322 の必要かつサポートされているランタイム バージョンを指定しています)。
  • ILMerge を使用してアセンブリを実行するときに、/targetplatform:v1.1 オプションを使用します。

ILMerge が問題の原因であることは間違いありません (つまり、マージする前に問題なく動作します)。ただ、それを修正する方法がわかりません。

4

1 に答える 1

1

マージしたバイナリを機能させるには、非常に古いバージョンの ILMerge (v1.1) を見つけてダウンロードする必要がありました。現在の ILMerge アプリケーションが .NET 1.1 アセンブリをビルドする方法にバグがあるに違いありません。ありがたいことに、私はおそらくオンラインで見つけられなかったので、社内に1つ持っていました.

于 2010-05-06T11:27:57.910 に答える