【发布时间】:2013-07-02 18:19:37
【问题描述】:
在尝试构建时,突然间(我从事这个项目几天后)我得到:
“类或命名空间 'OpenNETCF' 中不存在类型或命名空间名称 'IO'(您是否缺少程序集引用?)”
但是当我注释掉那一行时(使用 OpenNETCF.IO.Ports;),我得到:
? OpenNETCF.IO.Ports.Handshake(多选...)?
当我点击它时,有两个选择:
OpenNETCF.IO.Ports.Handshake
- and:
OpenNETCF.IO.Serial.Handshake
由于本单元中的代码处理打印,我选择“端口”(拒绝“串行”,因为它的阴/阳为“并行”)。所以它然后添加了我抱怨的使用(使用 OpenNETCF.IO.Ports)......然后它又回到了原来的错误消息。
但我的参考文献中确实有几个 OpenNETCF 项目,即:
OpenNETCF
OpenNETCF.Data
OpenNETCF.Drawing
OpenNETCF.Net
OpenNETCF.Phone
OpenNETCF.VisualBasic // I don't know why, this is a C# project
OpenNETCF.Web.Services2
OpenNETCF.Windows.Forms
OpenNETCF.WindowsCE.Forms
OpenNETCF.Xml
什么可能导致这种鸡和蛋的追尾练习感到沮丧?
奇怪的是,我得到“类型或命名空间名称 'Windows' 不存在于类或命名空间 'OpenNETCF' 中(您是否缺少程序集引用?)”使用在另一个 .cs 文件中:
using OpenNETCF.Windows.Forms;
...但是无论如何,使用都显示为未使用,但是当我将其注释掉时,我得到了很多其他错误,据称是因为它已经消失了,例如在这一行:
IntPtr hwnd = OpenNETCF.Win32.Win32Window.GetCapture();
类或命名空间“OpenNETCF.Win32”中不存在类型或命名空间名称“Win32Window”(您是否缺少程序集引用?)
更新
在“Well Flip My Bits!”的另一集中我刚刚编译,得到那些关于无法将这行代码与已安装和配置的代码相协调的错误消息,等等,向上滚动以查看它应该丢失的“使用”在那里,再次编译,现在它编译得很好。蓝色的火焰是什么?!?!?!?
【问题讨论】:
-
我不确定这是否会有所不同,但请记住 using(它允许您将 namespaces 导入当前文件/scope) 和 references 是两个不同的东西。引用是您要在当前项目中使用的类型的外部文件/项目的位置,并且始终是必需的。如果没有
using,您仍然可以使用当前文件中未定义的类型;你只需要完全限定它:而不是Handshake,你必须输入OpenNETCF.IO.Serial.Handshake。见here。
标签: c# visual-studio .net-assembly opennetcf