2017-12-04 10 views
3

私はクラスAとクラスBの2つのクラスを持つ単一のDLLを構築するC#プロジェクトを持っています。プロジェクト管理上の理由から、ClassBを別のDLLに移して、元のDLLにClassAのみを残したいと思います。元のDLLを参照する他のDLLを再コンパイルせずに.NET DLLを分割できますか?

問題は、元のDLLにClassAとClassBを参照する他のDLL(C#からもコンパイルされている)があることです。 ClassAは問題ありませんが、ClassBを呼び出すとTypeLoadExceptionが発生します。

(I 彼らの新しいプロジェクト参照とそれらの他のDLLのすべてを再コンパイルすることもできますが、私はむしろ、プロジェクト管理上の理由から、再び、それをしないと思います。)

私は私の新しいを展開できた方法はありますDLLを分割し、他のDLLを引き続き使用しますか?あるいは、すばらしい言葉を噛んで、これらすべてのファイルの新しいバージョンを展開する計画を本当に必要としますか?

+0

フォローアップの質問:https://stackoverflow.com/q/47654493/3568 – billpg

答えて

5

を使用してこれを達成します。これにより、タイプを別のアセンブリに移動することができます。元のアセンブリでは、型が移動されたことを知らせるために、TypeForwardedTo属性を追加します。

詳しくはlinkを参照してください。

+0

文書には、その部分が移動されたことをメモに残しておき、新しいプロジェクトでは新しいアセンブリを直接参照することをお勧めしますか?私はこれがコード内に永遠に残ることを望まないと思っています... – Fildor

+0

@Fildorはい、チームのドキュメントにこれを追加し、使用するコードを追加または変更する場合は新しい場所を直接使用しますクラス。 – Markus

+1

これは完璧です!ありがとうございました。 – billpg

関連する問題