当我加入一个项目时,已经开发了UserControlA
。它在项目中,我将调用MyProjectWeb
,它的名称空间为MyProjectWeb.Common
。
namespace MyProjectWeb.Common
{
public partial class UserControlA : System.Web.UI.UserControl
{
...
还有另一个WorkFlowManager项目,它包含一个访问此UserControl1的类文件。
MyProjectWeb.Common.UserControlA myUserControlA = (MyProjectWeb.Common.UserControlA)WizardControl.FindControl("TabContainer5$tpSomething$UserControlID");
注意:WorkFlowManager和MyProjectWeb属于同一解决方案。
这完全没问题。现在我想创建另一个UserControl,即UserControlB。
我跟着完全一样的事情。
namespace MyProjectWeb.Common
{
public partial class UserControlB : System.Web.UI.UserControl
{
但令我惊讶的是,我无法在WorkFlowManager中的同一代码文件中创建UserControlB的实例。 MyProjectWeb.Common命名空间甚至不包含UserControlB。当我编译时,我明显得到了一个
The type or namespace name 'UserControlB' does not exist in the namespace 'MyProjectWeb.Common' (are you missing an assembly reference?)
为什么我可以引用UserControlA而不是UserControlB,它们位于WorkFlowManager cs文件的同一命名空间中?如果我在MyProjectWeb内的任何地方访问MyProjectWeb.Common命名空间,我可以看到两个用户控件。在哪里寻找错误?
我正在使用Visual Studio 2005和ASP .NET 2.0
答案 0 :(得分:1)
我必须看看项目才能确定,上面你说的内容并没有告诉我足够的。
快速创意:
答案 1 :(得分:1)
这将取决于 WorkFlowManager 项目如何引用 MyProjectWeb dll。如果两个项目都在同一个解决方案中,那么它应该是项目参考,但您需要对其进行验证。如果引用了dll文件,那么你需要查看存储引用文件的确切位置 - 我的猜测是 WorkFlowManager 项目引用了 MyProjectWeb dll的私有副本显然,在重建MyProjectWeb时不会更新。