如何创建包含具有相同输出程序集名称的应用程序和类库项目的C#解决方案?
我有一个由类库支持的GUI项目。两者属于同一个解决方案,具有相似的用途,因此我想给它们取一个相同的名字。这应该是可能的,因为GUI应用程序的文件名对于库是如何创建包含具有相同输出程序集名称的应用程序和类库项目的C#解决方案?,c#,.net,C#,.net,我有一个由类库支持的GUI项目。两者属于同一个解决方案,具有相似的用途,因此我想给它们取一个相同的名字。这应该是可能的,因为GUI应用程序的文件名对于库是foo.exe和foo.dll。但是,在实践中尝试此操作会导致CLR无法找到其中一个程序集 首先,部分问题似乎是PDB文件名是从程序集名称而不是文件名生成的,例如,PDB的名称是foo.PDB,而不是foo.exe.PDB。因此,一个PDB覆盖另一个PDB。但是,即使在不需要PDB的发布模式下,程序集仍然无法执行,并且出现相同的异常,因此问题可
foo.exe
和foo.dll
。但是,在实践中尝试此操作会导致CLR无法找到其中一个程序集
首先,部分问题似乎是PDB文件名是从程序集名称而不是文件名生成的,例如,PDB的名称是foo.PDB
,而不是foo.exe.PDB
。因此,一个PDB覆盖另一个PDB。但是,即使在不需要PDB的发布模式下,程序集仍然无法执行,并且出现相同的异常,因此问题可能与调试无关
如何创建包含同名应用程序(exe)和类库(dll)的解决方案?这是不可能的。CLR根据程序集的显示名称查找程序集。EXE和DLL项目的显示名称都是“foo”,它不包括文件扩展名。因此,当CLR需要查找程序集“foo”时,它将首先尝试“foo.EXE”,然后尝试“foo.DLL”。显然,这在您的情况下不会很好地工作,当您的程序试图使用类库中的类型时,它会爆炸
您必须使用其他名称。这是不可能的。CLR根据程序集的显示名称查找程序集。EXE和DLL项目的显示名称都是“foo”,它不包括文件扩展名。因此,当CLR需要查找程序集“foo”时,它将首先尝试“foo.EXE”,然后尝试“foo.DLL”。显然,这在您的情况下不会很好地工作,当您的程序试图使用类库中的类型时,它会爆炸
您必须使用其他名称。这是不可能的。CLR根据程序集的显示名称查找程序集。EXE和DLL项目的显示名称都是“foo”,它不包括文件扩展名。因此,当CLR需要查找程序集“foo”时,它将首先尝试“foo.EXE”,然后尝试“foo.DLL”。显然,这在您的情况下不会很好地工作,当您的程序试图使用类库中的类型时,它会爆炸
您必须使用其他名称。这是不可能的。CLR根据程序集的显示名称查找程序集。EXE和DLL项目的显示名称都是“foo”,它不包括文件扩展名。因此,当CLR需要查找程序集“foo”时,它将首先尝试“foo.EXE”,然后尝试“foo.DLL”。显然,这在您的情况下不会很好地工作,当您的程序试图使用类库中的类型时,它会爆炸
您必须使用不同的名称。如果您只关心同名,那么这就是我的建议。如果你不介意的话,我将从零开始:
如果你只在乎同名,那么这就是我的建议。如果你不介意的话,我将从零开始:
如果你只在乎同名,那么这就是我的建议。如果你不介意的话,我将从零开始:
如果你只在乎同名,那么这就是我的建议。如果你不介意的话,我将从零开始:
你知道你可以像使用.dll一样向.exe程序集添加依赖项吗?从.Net的角度来看,这会让人感到困惑,因为这两个程序集都将被命名为Foo(其中一个是exec)