我添加了一个dataaccess.dll,我在我的proyect中包含了这个dll,但问题是.net从该dll添加了整个目录。
c:/users/myuser/documents/dataaccess.dll
问题是当我换到另一台计算机时,它找不到那个dll,因为该路径不存在。
我可以做两件事来解决这个问题,把所有的dll添加到C:和 引用C:/dataaccess.dll 要么 添加动态路径到dataaccess.dll
我想知道是否有另一种方法,例如在我的项目中创建一个lib文件夹并配置.net来搜索dll,在该文件夹中没有引用整个路径的文件夹。
答案 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
。