如何在Visual C#中添加相对引用路径

时间:2016-02-17 19:05:39

标签: c# .net dll

我添加了一个dataaccess.dll,我在我的proyect中包含了这个dll,但问题是.net从该dll添加了整个目录。

c:/users/myuser/documents/dataaccess.dll

问题是当我换到另一台计算机时,它找不到那个dll,因为该路径不存在。

  

我可以做两件事来解决这个问题,把所有的dll添加到C:和   引用C:/dataaccess.dll   要么   添加动态路径到dataaccess.dll

我想知道是否有另一种方法,例如在我的项目中创建一个lib文件夹并配置.net来搜索dll,在该文件夹中没有引用整个路径的文件夹。

3 个答案:

答案 0 :(得分:1)

请勿引用这样的硬编码路径 - c:/users/myuser/documents/dataaccess.dll而是在解决方案文件夹中添加了一个库文件夹。并给出一个相对路径,如 - ..\lib\dataaccess.dll

..将在当前项目位置上方占用一个文件夹。 lib是dll所在的文件夹。您可以通过编辑记事本中的.csproj文件并查看它所做的引用来检查这一点。然后将c:/users/myuser/documents/dataaccess.dll替换为文字..\lib\dataaccess.dll

答案 1 :(得分:0)

找到您的DLL参考,打开属性并将其设置为Copy Local - Always。这将制作一份不依赖于来源的副本

答案 2 :(得分:0)

System.Reflection.Assembly.GetExecutingAssembly().Location会给出.exe所在的路径。要获取.exe所在的目录,您可以使用System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)

您可以使用它始终引用.exe位置,并相应地更改它以转到。dll