2012-01-06 12 views
2

ビジュアルスタジオで、「参照」>「参照の追加」をクリックして、自分のコンピュータから既存の.dllファイルを参照できます。次のように私は、参照されたDLLを使用することができます。CodeDom既存のファイルへの参照を追加

dllNameSpace.dllClassName myReference = new dllNameSpace.dllClassName(); 
myReference.someVoid(); 

私は(以下、これを表示されます)のCodeDOMを使用して参照されるアセンブリを追加する方法を知っているが、それは時にあるように、実際のDLLファイルをプロジェクトに追加されていませんVisual Studioを介して行われます。繰り返しになりますが、参考にしたいdllファイルでいくつかの関数を呼び出せるようにする必要があります。

私が今やっている何を

  // Configure a CompilerParameters that links the system.dll and produces the specified executable file. 
      string[] referenceAssemblies = { 
              "System.dll", 
              "System.Drawing.dll", 
              "System.Windows.Forms.dll", 
              "System.Data.dll", 
              "System.Xml.dll", 
              "System.Management.dll", 
Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\myDllFile.dll" 
              }; 

      CompilerParameters cp = new CompilerParameters(referenceAssemblies, exeFile, false); 

を私はのCodeDOMは、出力実行可能ファイルにDLLを追加持たせるために別の何かを行う必要がありますと仮定しています。ここで何をする必要がありますか?

皆さん、ありがとうございます!

+0

これはVisual Studioでうまく動作しますが、私はCodedomを使用して同じ効果を得ようとしています。 –

+0

コンパイル関数またはメソッドは、あなたが一度それを使用すると呼び出す必要があります..私は、CompilerParametersは4つのオーバーロードがあることを知っているあなたは何をして正しい見て..しかし、実際にはDLLを作成しているときは? referenceAssembliesの文字列配列を介してcpに追加するような感じです。このMSDNサイトは、@Manasの偉大な例を除き、参照としてサーバーを助けますhttp://msdn.microsoft.com/en-us/library/system.codedom.compiler .compilerparameters.aspx – MethodMan

+0

CodeDomコードを実行する前に、dllファイルが既に存在しています。 –

答えて

0

次のコードは、アセンブリおよび呼び出しメソッドの読み込みに役立ちます。

 Assembly asmbly = Assembly.LoadFile("assembly.test.dll"); 
     var myclass = asmbly.GetType("MyClass"); // use FullName i.e. Namespace.Classname 
     var myobj = Activator.CreateInstance(myclass); 
     myclass.GetMethod("MyMethod").Invoke(myobj,new object[]{"param1","param2"}); 
+0

はい、読み込みと呼び出しの方法を理解していますが、私はこれをしたくありません。 Visual Studioでは、単にdllを参照して呼び出すことができます。 CodeDomを使用して同じ機能を使用できないのはなぜですか? –

関連する問題