我有一个由类库支持的GUI项目。两者都属于相同的解决方案并具有相似的目的,所以我想给它们相同的名称。这应该是可能的,因为GUI应用程序的文件名对于库来说是foo.exe
和foo.dll
。但是,在实践中尝试此操作会导致CLR无法找到其中一个程序集。
首先,部分问题似乎是PDB文件名是从程序集名称而不是文件名生成的,例如, PDB的名称为foo.pdb
,而不是foo.exe.pdb
。因此,一个PDB会覆盖另一个PDB。但是,即使在不需要PDB的 Release 模式下,程序集仍然无法以相同的异常执行,因此问题可能与调试无关。
如何创建包含具有相同名称的应用程序(exe)和类库(dll)的解决方案?
答案 0 :(得分:3)
这是不可能的。 CLR按 display 名称查找程序集。 EXE和DLL项目的显示名称是“foo”,它不包含文件扩展名。因此,当CLR需要找到程序集“foo”时,它将首先尝试“foo.EXE”和下一个“foo.DLL”。很明显,这在你的情况下效果不好,当你的程序试图使用类库中的类型时,你的程序会爆炸。
您必须使用其他名称。
答案 1 :(得分:0)
如果您关心的是同名,那么这就是我的建议。如果你不介意,我将从头开始: