43

.NET C# ツールのビルド プロセスでは、ILMerge を使用してアセンブリを 1 つの exe にマージしています。

最近、新しいクラス ライブラリを追加しましたが、ILMerge が失敗しています。新しいDLLにマージするように指示することを忘れていません!

それは今、私が本当に理解していないこのエラーを私に与えています:

ILMerge.Merge: アセンブリ 'DataObjects' が正しくマージされませんでした。これは、ターゲット アセンブリの外部参照としてリストされたままです。

「プロジェクト」参照を使用して行ったアセンブリ参照はすべて、過去に失敗したことはありません。

誰でもこのエラーを説明できますか、または回避策を提案してください。

4

6 に答える 6

41

/closed引数を使用する必要がありました。公式ドキュメントによると:

閉まっている

Merge を呼び出す前にこれを設定すると、入力アセンブリの「推移的クロージャ」が計算され、入力アセンブリのリストに追加されます。アセンブリは、最初に指定された入力アセンブリの 1 つから直接的または間接的に参照され、入力アセンブリの 1 つまたはそのような参照を持つアセンブリの 1 つへの外部参照を持っている場合、推移閉包の一部と見なされます。 . 複雑ですが、それが人生です...

于 2010-03-02T22:16:06.117 に答える
7

すべての出力を 1 つのアセンブリにマージした Web アプリを公開しようとすると、同様のエラー メッセージが表示されました。

アセンブリのマージ中にエラーが発生しました: ILMerge.Merge: ターゲット アセンブリ自体が外部参照としてリストされています。

これは、マージ先のアセンブリ名が の下の Web アプリケーションのアセンブリ名と一致する場合に発生しますProperties > Application。出力アセンブリ名を変更すると修正されます。

于 2016-04-05T17:55:58.077 に答える