在另一个c#winform中添加c#windows exe作为参考是否正确?

时间:2014-10-14 08:41:53

标签: c# c#-4.0

我有c#winform应用程序。我可以在另一个winform应用程序中添加此exe作为参考。

它像dll类型一样工作得非常好。

截至目前,我没有看到任何问题。在这种情况下我是否需要研究任何问题。

1 个答案:

答案 0 :(得分:5)

是的,这很好。 CLR实际上并不关心文件扩展名,在添加引用时IDE也不关心。

CLR知道的所有内容都是程序集的显示名称。换句话说,当它被要求寻找一个程序集时,它首先按全名。例如:

    ClassLibrary1, Version=1.2.3.4, Culture=neutral, PublicKeyToken=b77a5c561934e089

它首先在GAC中查看显示名称(ClassLibrary1),版本和令牌上的完全匹配。如果做不到这一点,它会在程序的探测路径中寻找文件。只是" ClassLibrary1"。请注意,根本没有指定文件扩展名。它将首先尝试查找" ClassLibrary1.EXE"。如果做不到这一点,它接下来会尝试找到" ClassLibrary1.DLL'。没有尝试进一步的扩展。你可以看到这是用Fuslogvw.exe btw。

完成的

请注意,这种方法存在一个令人讨厌的问题,DLL不能与EXE具有相同的文件名。当要求解析DLL程序集时,CLR将加载EXE。那当然是一个kaboom。发现的问题the hard way。它首先寻找的是EXE而不是最后一个是奇怪的。

所以,没有什么可担心的。只需将.exe重命名为.dll即可。