4

На основании this question я попытался использовать <codebase>, чтобы найти внешнюю сборку. Теперь, когда я запускаю программу, появляется сообщение об ошибке, в котором говорится, что частная сборка находится за пределами приложения. Как я могу исправить эту проблему? Одно из предложений, которое я видел, сказал, чтобы подписать собрание. Я сделал это, но тогда моя программа не смогла найти сборку. Когда я его без знака, я получаю ошибку outside the appbase. Как загрузить сборку, расположенную в другом месте, с помощью <codebase> и не устанавливать ее в GAC? (Зондирование не сработало, и кажется, что он все еще должен присутствовать в папке приложения) Мой конфигурационный файл:Использование Codebase для загрузки сборки

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 

     <assemblyIdentity name="NGameHost" 

          culture="neutral" /> 
     <codeBase version="1.0.0.0" 
        href="C:/Program Files/NetworkGame3/api/NGameHost.exe"/> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 

</configuration> 

ответ

7

Если сборка является частным сборки, установка кодовой должна быть путь к каталогу приложения.

(от MSDN)

+0

Я сделал путь относительно (используя ../../...) и то же самое сообщение об ошибке появляется. – XSL

+0

Когда вы перемещаете сборку в дочернюю директорию своего приложения вместо родительского каталога, это имеет значение? – sq33G

+0

Проблема в том, что dll находится в этом конкретном каталоге, потому что там также много других зависимостей, поэтому я не могу переместить его в свою дочернюю директорию. Однако, если я создаю новый проект в этом каталоге и вызываю DLL, он утверждает, что он не может загрузить другой dependecy (который может загрузить исходная DLL). Возможно, это проблема с DLL. – XSL

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

  • Нет связанных вопросов^_^