お世話になります。
開発環境:VS2008 .NETFramework3.5
FileReader.DLLを作成して、イントラネットに配置しました。(自分のマシンのIISですが・・・)
ホスト側のソースとApp.configは、下のほうの内容にしています。これは問題なく動作しております。
問題は、同じDLLの同じ名前空間(FileReaders)にあるクラス(たとえばFileReaderEx)を、同じようにホスト側でインスタンスの生成を行うようにしたのですが、
実行時に、
「ハンドルされていない例外: System.TypeLoadException: アセンブリ 'FileReader, Vers・・・・
ion=1.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxx' から型 'FileReaders.FileReaderEx' を読み込めませんでした。」
と例外エラーが発生しました。
いろいろ自分なりに調査してみた結果ですが、
app.configの<codeBase>でのDLL参照先を、
http://localhost/・・・/FileReader.dllにするとインスタンスは生成されました。
※ローカルパス(c:\...\FileReader.dll)でも問題なくインスタンスは生成されました。
また、 <codeBase>は変更せずに、<asm:assemblyIdentity name="
FileReaderEx" ・・・/> とクラス名にしてみたところインスタンスが生成されました。
この辺の仕様がわかりません。
教えてください。
// ホスト側のソース
using FileReaders;
void main()
{
FileReader fr = new FileReader();
}
// ホスト側のapp.config
<runtime xmlns:asm="urn:schemas-microsoft-com:asm.v1">
<asm:assemblyBinding>
<asm:dependentAssembly>
<asm:assemblyIdentity name="FileReader"
culture="neutral"
publicKeyToken="xxxxxxxxx" />
<asm:codeBase version="1.0.0.0" href="
http://machine-name/webdav/FileReader.dll" />
</asm:dependentAssembly>
</asm:assemblyBinding>
</runtime>