Как связать сборку, когда она не находится в той же папке, что и основной.exe, используя его относительный адрес?

Я добавил эти строки в app.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
  </startup>
  <runtime>
    <assemblyBinding xmlns="urn:schemas?microsoft?com:asm.v1">
      <dependentAssembly>
        <codeBase version="1.0.0.0"
          href= ".\libs\CrashReporter.dll"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

Но мое консольное приложение вылетает, и исключение говорит, что:

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 
'CrashReporter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. 
The system cannot find the file specified.
at TestConsoleApplication.Program.Main(String[] args)

CrashReporter.dll - это управляемый код на C#, на который я ссылался в своем консольном приложении. Но во вкладке свойств dll ссылки я установил Copy Local ложно. Потому что в установщике я хочу скопировать его в папку.\ Libs\CrashReporter.dll, и она не будет находиться в той же папке, что и файл.exe.

Как я могу сказать.net, что я помещаю файл dll в папку../libs/ относительно файла.exe?

0 ответов

Другие вопросы по тегам