2011-08-09 14 views
0

実行時にDLLのパスを変更することはできますか?私はDLLをリンクする必要がありますが、私はDLLをユーザに与えることはできませんが、私はそのユーザがそのDLLをハードディスクに持っていることを知っています。だから私は、パスを入力することができるユーザーに一般的なフォームを表示して、その後、私はそのパスを(文字列として)と私のプログラムに動的にDLLをロードする必要があります。ロードされた後、私はそのDLLからのものを使用します。実行時に参照されるDLLパスを設定する

これは可能ですか、どうすればいいですか?

答えて

0

クリスの答えに追加します。 、それを

Assembly assembly = Assembly.LoadFile(pathOfAssembly); 
InterfaceName instance = (InterfaceName)assembly.CreateInstance("fully qualified type name", true); 
+0

私はプロジェクト内のDLLの参照を持っていけない場合:

は、共通のインターフェイスに対するアセンブリ内のコード、読み込まれたアセンブリ上のクラスをリフレクションを使用して回避するために、あなたはそのようにのようなあなたのオブジェクトをインスタンス化することができますコンパイルされません!参照を追加すると、DLLがEXEにないので、Main()が呼び出される直前にExeptionを取得します。 – GameScripting

+0

ダイナミックにロードするDLLとDLLをロードするアプリケーションの両方に共通するアセンブリにインターフェイスを格納する必要があります。 – jdavies

0

Assembly.LoadFile(pathOfAssembly)メソッドを使用して、パスからアセンブリまたはdllを動的にロードできます。ロードされると、それに含まれるクラスのインスタンスを作成してメソッドを呼び出すことができます。

関連する問題