2012-03-13 6 views
3

CLRで実行可能ファイルの同じフォルダまたはサブフォルダにないアセンブリを見つけて、それを動作させることができない場合のいくつかの他の投稿を確認しました。 ClassLibrary1.dllは署名されていないアセンブリです。例が示しています.Net CodeBase要素

<configuration> 
<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
      <assemblyIdentity name="ClassLibrary1"/> 
      <codeBase version="1.0.0.0"      
       href=file:///C:\somepath\subfolder\ClassLibrary1.dll"/> 
     </dependentAssembly> 
    </assemblyBinding> 
</runtime> 
</configuration> 

私は、コンソールアプリケーションを作成し、その設定ファイル内の適切なパスで上記を置くが、まだそれはしたClassLibrary1.dllを見つけることができないことを示すメッセージが表示されます。私はFUSLOGVWを使用し、CodeBase要素で提供されているフォルダをチェックインしませんでした。誰もがなぜこれがうまくいかないか知っていますか?

答えて

2

MSDNから:

アセンブリに厳密な名前が付いている場合は、コードベースの設定は、ローカルイントラネットまたはインターネット上の任意の場所にすることができます。アセンブリがプライベートアセンブリの場合、のコードベース設定は、アプリケーションのディレクトリに相対的なパスでなければなりません。

つまり、アセンブリに署名しないと、アプリケーションフォルダまたはアプリケーションフォルダのサブフォルダに配置する必要があります。アプリケーションをc:¥Program Files¥MyApplicationに、アセンブリをc:¥MyAssembliesに配置する場合は、アセンブリに署名する必要があります。

関連する問題