如何阻止我的类库生成.exe文件,导致TypeLoadException异常?(How do I s

2019-10-17 09:01发布

我有我的解决方案出现的我的项目,这是一个类库之一是导致它被引用在抛出一个TypeLoadException一个项目一个非常奇怪的错误。 我已经通过对SO不同的答案,最接近我的问题是看;

TypeLoadException是C#未处理的(闭合)

这样的回答使我怀疑,如果这是我的问题,我发现我的项目,这是我的引用类库生成的DLL和EXE使用相同的名称,可这是我的问题的调试文件夹做一些挖掘?

如果是的话我怎么解决这个问题?我有我的解决方案的其他类库,在这个项目中,他们却没有产生DLL和EXE文件所引用。

Answer 1:

我不相信,但我已经通过一个同事居然发现的原因,希望这将帮助其他人谁遇到这样的(好一个亚当)。

原因是我的项目,我引用类库有同样的组件名,我一直在做我的命名空间的一些重新跳汰,并没有注意到我的主要项目有相同的名字,这意味着,当我的代码建编译创造了我的主要项目EXE和DLL中对我的类库这反过来又迫使TypeLoadException,因为编译器已经加载的EXE使用相同的名称。

我的代码现在的工作。 感谢所有谁把张贴的时间。



Answer 2:

我的类库生成的DLL和EXE的同名

是的,这导致此问题。 您可以轻松地运行Fuslogvw.exe和记录所有绑定看到它。 这是融合的一个有些奇怪的怪癖,但在查找组件则仅着眼于文件名,并忽略扩展。 这将同时接受一个.dll和.exe文件作为它正在寻找装配可接受的匹配。 这是有点否则逻辑,存在DLL和当它们包含托管代码的EXE之间没有真正的区别。 引用一个EXE是例如完全支持。

有没有办法迫使装载机以不同的方式做到这一点。 解决方法原本应该是简单的,只是一定要产生截然不同的组件名称。



Answer 3:

在项目 - >(命名为yourprojectname)属性 - >应用程序,确保“输出类型”设置为“类库”。



文章来源: How do I stop my class library generating an .EXE file and causing a TypeLoadException Exception?