3

.CSファイルを与えることができ、それをコンパイルして、コンパイルエラーがあるかどうかを言うことができる小さなプログラムを書きたいとしましょう。そこで、これにはCodeDomを使用しました。CodeDOMを使用する場合は、実行時にロードできるようにDLL名を追加する必要があります。このようなもの:

    CompilerParameters parameters = new CompilerParameters();
    parameters.ReferencedAssemblies.Add("System.dll");
    parameters.ReferencedAssemblies.Add("System.Windows.Forms.dll");

ただし、このアプローチにはいくつかの問題があります。必要なDLLがすべて含まれていることを確認するにはどうすればよいですか。それが唯一の方法ですか?このようにこれらのDLLを追加する代わりに、より良い方法はありますか?

ありがとう。

4

2 に答える 2

4

何もハードコーディングする必要はありません。Add()テキストファイルから読み取られたDLL名を使用して、または実行時にディレクトリで見つかったDLL名を使用して、ループで呼び出すことを想像してみてください。非常に柔軟なものを書くために必要なすべてのツールがあります。

于 2012-06-04T14:24:34.370 に答える
3

ハードコードによって、含まれるdllを明示的に指定することを意味する場合(テキストファイルまたはソースファイルからのものであるかどうか)、指定された名前のクラスが存在する可能性があるため、CodeDomがこのソースが使用しているライブラリを把握する方法はありません'any'アセンブリで。したがって、開発者は、参照しているアセンブリを指定する必要があります。

あなたの場合、ソースを入力として使用している場合は、入力者に参照ライブラリを指定するように依頼することもできます。それらを確実に推測することはできません。

于 2012-06-04T14:26:06.873 に答える