実行時にアセンブリをロードしたい。そして、アセンブリについて私が知っている唯一の情報は、その名前 (弱い名前) です。弱い名前のすべてのアセンブリが AppBase に存在するという本の 1 つを読みました。実行時にこのアセンブリをロードする方法を知っている人はいますか?
ネットで見つけたコードは、アセンブリパスがわかっている場合はアセンブリをロードしていました。しかし、パスをハードコーディングしたくありません。
以下のコードを使用してアセンブリをロードしています。アセンブリ アセンブリ = Assembly.Load("RomanConverter"); CLR がアセンブリを読み込もうとすると、アセンブリが見つかりません。理由は、上記のコード行が、Roman Converter への参照を持たないコンソール アプリケーションによって呼び出されるためです。以下の場所でアセンブリを見つけようとします: (Fusion Log)
ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/XYZ/documents/visual studio 2010/Projects/Algo/Algo/bin/Debug/RomanConerter.DLL。ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/XYZ/documents/visual studio 2010/Projects/Algo/Algo/bin/Debug/RomanConerter/RomanConerter.DLL。ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/XYZ/documents/visual studio 2010/Projects/Algo/Algo/bin/Debug/RomanConerter.EXE. ログ: 新しい URL ファイルのダウンロードを試みています:///C:/Users/XYZ/documents/visual studio 2010/Projects/Algo/Algo/bin/Debug/RomanConerter/RomanConerter.EXE.
しかし、私のアセンブリは別の場所に存在します。(Imp: ここでパスをハードコーディングできないか、相対パスを指定したくない)