Pau*_*per 7 c# dll assemblies visual-studio
在Visual Studio 2008中,我添加了WinScp.dll(在项目根目录中)作为参考,并立即有一个黄色图标.在编译时:
经过一个小时的挫折,我发现如果我将WinSCP.exe作为项目文件(也在项目根目录中)删除,那么一切都编译得很好.奇怪的!!!!
问题是我的输出目录中需要WinSCP.dll和WinSCP.exe.我该怎么办?
编辑:我知道有一些解决方法,如重命名文件或更改路径.我最初改名为exe; 现在我重命名dll(感谢@Michael),因为它不需要我在我的代码中指定重命名的exe.
但是为什么首先出现问题呢?WinSCP.dll和WinSCP.exe是两个不同的文件.这是Visual Studio中的错误,还是我不理解的dll/exe错综复杂?
WinSCP.dll和WinSCP.exe是两个不同的文件
不是程序集加载器,它不注意文件扩展名.它所知道的是它需要找到一个显示名称为"winscp"的程序集.搜索匹配时,它首先尝试使用该名称的EXE文件,然后尝试DLL文件.您可以使用Fuslogvw.exe实用程序查看的内容.显示名称在此博客文章中由处理Fusion组件的Microsoft人员描述:
"名称"部分通常是程序集的文件名,不包括扩展名.所以对于程序集foo.dll,"name"部分是"foo".当然,由于我说"通常",有时"名称"部分与文件名不同,不包括扩展名.我会稍微讨论一下.
强调补充说.所以它首先找到WinSCP.exe,这是一个kaboom,它不是一个有效的.NET程序集.简单的解决方法是重命名 DLL,它会更改程序集的显示名称.
归档时间: |
|
查看次数: |
3418 次 |
最近记录: |