将C#.dll引用从绝对更改为相对

时间:2011-03-13 16:58:37

标签: c# dll reference relative-path absolute-path

我已经编译了我的项目,我的一些项目添加了.dll有绝对引用。当我尝试在另一台机器上运行我的项目时,它会从原始项目路径中查找.dll。

如何让项目使用相对路径查找.dll?

2 个答案:

答案 0 :(得分:18)

编辑.csproj文件,将<HintPath>元素从绝对路径更改为相对路径。

答案 1 :(得分:4)

您也可以编写解析程序集的处理程序。最简单的形式可能如下所示:

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>