Изменение ссылок C # .dll с абсолютных на относительные - PullRequest
13 голосов
/ 13 марта 2011

Я скомпилировал свой проект, и некоторые из добавленных .dll моего проекта имеют абсолютные ссылки.Когда я пытаюсь запустить свой проект на другом компьютере, он ищет DLL-файлы из исходного пути проекта.

Как я могу заставить проект искать DLL-файлы, используя относительный путь?

Ответы [ 2 ]

18 голосов
/ 13 марта 2011

Отредактируйте файл .csproj и измените элементы <HintPath> с абсолютных путей на относительные пути.

4 голосов
/ 13 марта 2011

Вы также можете написать свой обработчик для разрешения сборок.В простейшей форме это может выглядеть так:

AppDomain.CurrentDomain.AssemblyResolve += AssemblyResolveHandler;
..
static Assembly AssemblyResolveHandler(object sender, ResolveEventArgs args)
{
  string assemblyPath = "yourpath";
  return Assembly.LoadFrom(assemblyPath + args.Name);
}

Другой вариант - добавить запись в App.config:

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="yourpath"/>
     </assemblyBinding>
  </runtime>
...