На основании 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>
Я сделал путь относительно (используя ../../...) и то же самое сообщение об ошибке появляется. – XSL
Когда вы перемещаете сборку в дочернюю директорию своего приложения вместо родительского каталога, это имеет значение? – sq33G
Проблема в том, что dll находится в этом конкретном каталоге, потому что там также много других зависимостей, поэтому я не могу переместить его в свою дочернюю директорию. Однако, если я создаю новый проект в этом каталоге и вызываю DLL, он утверждает, что он не может загрузить другой dependecy (который может загрузить исходная DLL). Возможно, это проблема с DLL. – XSL