CoffeeMakerSoftware项目引用了CoffeeMakerInterface。 TestCoffeeMaker项目引用了CoffeeMakerInterface和CoffeeMakerSoftware。
现在让我疯狂的事情。我无法建立这个。 如果我从TestCoffeeMaker中删除CoffeeMakerSoftware项目引用它构建(?? !!)..一旦我添加第二个项目引用,它就会抛出构建错误声称在第一个引用中声明的类型'不能被发现..你错过了一个大会参考'
起初我有前2个程序集具有相同的名称空间CoffeeMaker ..然后我使它们不同(虽然我认为在程序集中应该有可能属于相同NS的类)但是即使这样也不是它
呼唤更多眼球。任何指针..
答案 0 :(得分:1)
我打破了'当你累了时不要编码'的格言。我把它拉上拉链,睡觉然后今天看了看..通过查看输出窗口找到了问题。 (FWIW所有内容都是CopyLocal = True而GAC中没有任何内容。这是来自Agile PPnP书籍的Bob Martin的OOD问题..提出好名字特别困难)
1. CoffeeMaker > CoffeeMakerInterfaces
2. [X] > CoffeeMaker > CoffeeMakerSoftware
3. [X] > TestCoffeeMaker
这就是我按时间顺序添加和重命名项目的方式。显然,通过解决方案资源管理器重命名程序集,不会更改生成的二进制文件的名称或发出警告。结果,#1和#2都生成了CoffeeMaker.dll作为输出。 将参考文献#2添加到TestCoffeeMaker中,将参考文献#1中定义的所有类型都视为未知,并且流行
“错误2类型或命名空间名称 无法找到'CoffeeMaker'(是 你错过了使用指令或 汇编参考?)C:\ Documents and Settings \ pillaigi \ Desktop \ CoffeeMaker \ TestCoffeeMaker \ FakeCoffeeMakerDevice.cs 4 7 TestCoffeeMaker“
解决方案:打开项目属性并检查每个(参考或其他)项目的项目属性中的“程序集名称:”是否唯一且不会发生冲突。
也许没有足够的人这样做.. IDE或编译器可以很容易地抓住这个'如果被引用的程序集具有相同的二进制名称...请修复它...你会反正' 我曾经对自己这样做过一次......这次给自己做了一个大笔记。现在请原谅我戴着我的Dunce帽子并坐在角落里。
答案 1 :(得分:0)
要检查的一些事项:
如果所有这些都失败,请从解决方案中删除所有项目,创建新解决方案并重新添加项目。是的,这是伏都教,但这让我过去经历过愚蠢的错误。 ; - )