我已经编译了我的项目,我的一些项目添加了.dll有绝对引用。当我尝试在另一台机器上运行我的项目时,它会从原始项目路径中查找.dll。
如何让项目使用相对路径查找.dll?
答案 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>