2009-07-03 22 views
0

我发布了这个问题,仍然没有得到答案,所以我想我会链接到以下视频文件的问题...对不起,我试图upload the video到videos.yahoo.com,但降级的视频是不可查看的。所以这里是我的网站上托管的direct link to the avi file命名空间浏览在工具中正常工作,并作为进口,但不在代码窗口(除进口行)

问题概要 我有一个控件项目... GoodMins.MeetingMgr.Winforms.Controls。 它具有GoodMins.MeetingMgr.BizObjects的项目引用。 在GoodMins.MeetingMgr.Winforms.Control的任何代码文件中,我都可以 *将一个Imports添加到GoodMins.MeetingMgr.BizObjects,并且intellisense成功浏览命名空间路径。 *在同一文件中在CLASS声明中,我无法再成功浏览GoodMins.MeetingMgr.BizObjects命名空间。
*但我可以浏览MeetingMgr.BizObjects(应该是一个无效的命名空间)。它找不到Goodmins命名空间。

问题是,当我在设计器中对文件进行更改时... Visual Studio在设计器文件中重新生成代码并使用正确的名称空间。但是由于Visual Studio无法识别该名称空间,因此会发生编译错误。

帮助...我在这个今晚花了大约3个小时无济于事。

老问题与更多细节。

的问题

我刚刚注意到在我的项目一些奇怪的事情,这是造成一些编译时间的问题。如果你想得到底线问题,请阅读问题底部的粗体文字。阅读所有的行为细节。

我有控制项目,并在该项目中引用另一个bizobjects项目。

我使用我的控制项目的数据源视图来创建对象以放入控件并创建AttendeesBindingSource。所有这一切都很好。

在编译的时候虽然我在控制的DESIGNER文件得到一个错误:

Me.AttendessBindingSource.DataSource = GetType(GoodMins.MeetingMgr.BizObjects.Attendees) 

这有下与警告“类型“GoodMins GoodMins.MeetingMgr.BizObjects.Attendees小squiggley线。 MeetingMgr.BizObjects.Attendees'未定义“

稍微更多的信息 我已经想出了如何解决这个错误。

我只是删除GoodMins。从参考。换句话说......到VS我可以从

Me.AttendessBindingSource.DataSource = GetType(GoodMins.MeetingMgr.BizObjects.Attendees) 

上述行更改为

Me.AttendessBindingSource.DataSource = GetType(MeetingMgr.BizObjects.Attendees) 

,我可以编译。当我对控件进行一些更改时,将恢复代码,并且我无法再次编译。

仅供参考数据源视图窗口显示GoodMins.MeetingMgr的完整名称空间。作为父母的BizObjects我想添加

仅供参考如果我尝试添加一个Imports语句(这是一个vb.net项目),Intellisense将不会找到该项目GoodMins.MeetingMgr.BizObjects。但它会找到项目MeetingMgr.BizObjects。

仅供参考对象浏览器在“视图命名空间”模式下显示GoodMins.MeetingMgr.BizObjects命名空间并且不显示MeetingMgr.BizObjects命名空间。

最后一条信息。我在BizObject项目中进行命名空间的方式是从项目属性中删除命名空间声明,并将每个类文件周围的显式命名空间声明命名为“Namespace GoodMins.MeetingMgr.BizObjects”...“End Namespace”我很遗憾地这样做,有一天我可能会改变它,但现在我坚持不懈。

因此,这里是我的问题的底线......为什么Visual Studio中内置的所有工具都想使用GoodMins.MeetingMrg.BizObjects的完整名称空间,但代码窗口中的智能感知无法识别完整名称空间,但会识别MeetingMgr.BizObjects的截断名称空间。

我已经看到无处不在,我知道看,无法找出这一个。

Seth

+0

一点点的数据添加到我的问题。该项目的AssemblyName与命名空间不同。 AssemblyName是MeetingMgr.BizObjects.dll 是吗? Seth – 2009-07-03 18:50:18

+0

划伤最后的评论。大会名称是MeetingManager.BizObjects.dll不MeetingMgr .... Seth – 2009-07-03 18:53:40

回答

1

在VB中定义名称空间有点奇怪。一切都自动成为默认名称空间的一部分(在项目属性中定义)。添加命名空间语句时,不像在C#中那样添加默认名称空间。

例如,如果您的默认命名空间是GoodMins然后,

Namespace MeetingMgr 
End Namespace 

实际上会被翻译成GoodMins.MeetingMgr。如果您将名称空间定义为

Namespace GoodMins.MeetingMgr 
End Namespace 

那么这将与GoodMins.GoodMins.MeetingMgr相同。