Visual Studio adding executable file with same name as dll

我的梦境 提交于 2019-12-01 04:07:36

WinSCP.dll and WinSCP.exe are two different files

Not to the assembly loader, it doesn't pay attention to a filename extension. All it knows is that it needs to find an assembly with a display name of "winscp". When searching for a match, it first tries an EXE file with that name, next a DLL file. Something you can see with the Fuslogvw.exe utility. Display names are described in this blog post by the Microsoft guy that worked on the Fusion component:

The "name" part is usually the file name of the assembly, excluding the extension. So for assembly foo.dll, the "name" part is "foo". Of course, since I said "usually", there are times when the "name" part is not the same as the file name excluding extension. I will discuss this in a bit.

Emphasis added. So it finds WinSCP.exe first and that's a kaboom, it is not a valid .NET assembly. The simple workaround is rename the DLL, that changes the display name of the assembly.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!