2

特定のソリューションに複数のプロジェクトがあります。ProjectA から、「myProjectB.dll」をアセンブリ名として ProjectC のメソッド呼び出しに渡します。

アセンブリ名が「myProjectB.dll」であるProjectCで次を実行すると

Assembly assembly = Assembly.LoadFrom(assemblyname);
foreach (Type type in assembly.GetTypes())
{
       ... my code ...
}

次のエラーが表示されます

Could not load file or assembly 'file:///C:\MyProjectB\bin\Debug\myProjectB.dll' or one of its dependencies. The system cannot find the file specified.

Assemblyname を Assembly.LoadFrom メソッド呼び出しに正しく渡す方法を教えてください。

プロジェクトの DLL 名のみを指定して、ソリューションを調べて、実行時にソリューション内のその DLL の完全な絶対パスを特定するにはどうすればよいですか。それは可能ですか?

ありがとう

4

1 に答える 1

3

アセンブリが実行可能ファイルの正確なパスまたは GAC にない場合は、LoadFrom メソッドで完全なパスを指定する必要があります。

例えば:

Assembly assembly = Assembly.LoadFrom(@"C:\MyProjectB\bin\Debug\myProjectB.dll");

相対パスを使用することもできます:

Assembly assembly = Assembly.LoadFrom(@"..\..\..\MyProjectB\bin\Debug\myProjectB.dll");
于 2012-07-24T19:10:03.133 に答える