2012-03-13 6 views
3

Я рассмотрел несколько других сообщений о том, как заставить CLR найти сборку, которая находится не в той же папке или в любой подпапке исполняемого файла, и мне не удается заставить ее работать для меня. ClassLibrary1.dll - это неподписанная сборка. Примеры показывают:.Net CodeBase element

<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, вы должны подписать сборку.

Смежные вопросы