我有一个.Net应用程序,它使用几个.Net dll,这些dll位于PATH环境变量中包含的文件夹中,但是当我启动我的.Net App时如果失败并出现错误:
Could not load file or assembly 'FxDoc.dll, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d4261664821' or one of its dependencies. The system cannot find the file specified.
我已经阅读这些MSDN项Search Path Used by Windows to Locate a DLL和Dynamic-Link Library Search Order
哪个州:
Windows然后按以下顺序搜索DLL:
当前进程的可执行模块所在的目录.
当前目录.
Windows系统目录.GetSystemDirectory函数检索此目录的路径.
Windows目录.GetWindowsDirectory函数检索此目录的路径.
PATH环境变量中列出的目录.
我的问题是:
Joh*_*hnD 18
.NET程序集和普通旧DLL的规则不尽相同.您列出的规则适用于普通的DLL.
装配加载非常复杂,但基本搜索顺序如下:
环境变量PATH不用于.NET程序集.对于所有令人毛骨悚然的细节,您可能想要查看官方文档:
http://msdn.microsoft.com/en-us/library/aa720133.aspx
我工作的大多数地方,人们都坚持基础 - 要么装配进入GAC,要么将它放在与应用程序相同的目录中.
您可能也对此工具(fuslogvw.exe)感兴趣,它可以帮助您找出加载程序未找到程序集的原因:
http://msdn.microsoft.com/en-us/library/e74a18c4.aspx
| 归档时间: |
|
| 查看次数: |
10155 次 |
| 最近记录: |