Visual Studio 2015/2017同一解决方案同名项目引用报错问题咨询
解决Visual Studio 2015/2017中同名类库项目引用冲突的问题
这不是VS2015-2017的Bug,而是微软在这两个版本中强化了项目引用的命名冲突检测机制——VS2012对这类同名项目的约束更宽松,而后续版本为了避免编译时的文件覆盖、命名空间混淆等潜在问题,增加了严格的校验。
你可以通过以下几种配置方式解决这个问题:
修改程序集名称:
虽然两个项目的文件夹都叫Common,但你可以分别进入每个项目的属性(右键项目 → 属性 → 应用程序),将「程序集名称」修改为不同的名称,比如F1.Common和F2.Common。这样即使项目文件夹同名,编译后的程序集名称唯一,VS就不会再弹出错误。为项目引用设置别名:
如果不想修改程序集名称,可以给每个引用设置独特的别名:- 在Wapp项目的「引用」节点下,找到第一个
Common项目,右键选择「属性」; - 在属性窗口的「别名」栏输入自定义名称(比如
F1Common),回车确认; - 对第二个
Common项目重复上述操作,设置另一个别名(比如F2Common); - 在代码中使用
extern alias F1Common;和extern alias F2Common;来区分不同的引用,然后通过F1Common::Common.XXX的方式调用对应类库的代码。
- 在Wapp项目的「引用」节点下,找到第一个
调整输出路径:
检查两个Common项目的输出路径(右键项目 → 属性 → 生成 → 输出路径),确保它们的编译输出文件(比如Common.dll)不会被输出到同一个目录,避免文件覆盖的问题。VS2015+会检测到这种潜在冲突并报错,分开输出路径就能解决。
内容的提问来源于stack exchange,提问作者anonim




