fro*_*ite 3 f# visual-studio-2013
F#newbie在这里花了很多痛苦的时间尝试使用MSDN F#教程中的一段简单代码来解决错误.
#r "Microsoft.Office.Interop.Excel.dll"
// fails with invalid/not found errors
#r "Microsoft.Office.Interop.Excel" // works like a charm.
Run Code Online (Sandbox Code Playgroud)
任何F#大师都知道为什么?
"Microsoft.Office.Interop.Excel.dll"是文件的名称(推断,因为.dll后缀).提供文件名时,#r将在文件系统中查找该文件.由于您没有提供路径,因此它将查看您当前的工作目录.最有可能的"Microsoft.Office.Interop.Excel.dll"是,不在您的工作目录中.这解释了第一个例子失败的原因.
"Microsoft.Office.Interop.Excel"另一方面,推断是程序集的名称(因为没有文件扩展名).程序集是库,通常分布在.dll文件中.但他们没有必要; 例如,它们可以在运行时动态发出.另外,.dll文件在技术上可以包含多个程序集,尽管我从未在野外看到过这种情况.最常见的情况是.dll文件包含单个程序集,并且文件名对应于程序集的名称.
当您请求加载程序集时,.NET程序集加载程序(称为Fusion)开始查找具有所请求标识的程序集.它将开始查看全局程序集缓存,我的猜测是它在"Microsoft.Office.Interop.Excel"那里找到了程序集.这解释了为什么第二个例子成功了.
| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |