CS0436编译器警告与共享项目

时间:2016-11-20 13:55:20

标签: c# .net dependencies compiler-warnings shared-project

我们有两个由几个项目组成的解决方案( C#,VS2015 )。 命名空间 Wpf 的Basic-Solution有一些类在更高级 - 名称空间 Wpf.Advanced 中的解决方案中重写,因为更高级的解决方案使用不同的数据类型例如。

由于两个解决方案中存在的其中一个类中的每个代码更改都需要在第二个文件中重写,因此我们决定更改结构并使用共享项目作为两个解决方案都应该找到文件的单个位置。

我们现在将“usings”与预编译器 #if #else #endif 块结合使用,通过根据项目更改数据类型将两个文件合并为一个(通过编译符号高级)。

现在问题:

由于我们的一些示例项目需要同时引用 Wpf 和共享项目,我们会收到上面提到的警告 CS0436 ,因为某些对象现在存在于共享中项目和命名空间 Wpf

如何解决此问题? 我的意思是,一切正常,但没有警告比任何警告更好,谢谢!

2 个答案:

答案 0 :(得分:0)

NamespaceName1中的名称空间NamespaceName2TypeName1中的NamespaceName3类型冲突

当导入的类型和导入的命名空间具有相同的完全限定名称时,会发生此错误。当引用该重复名称时,编译器无法区分这两者。

答案 1 :(得分:0)

我也有类似情况。在exe项目中,我引用了dll和共享项目。 dll反过来引用共享项目。解决方案是从exe项目中排除共享项目。由于共享项目是从dll中引用的,因此exe也会将其全部获取。
除非您没有共享项目的经验,否则它可能看起来微不足道。