C#,.NET 2.0MSBuild失败,但建设里面的Visual Studio工作正常
我有一个解决方案,其他2个项目(用作库引用)的ASP.NET网站。当我在Visual Studio中构建(调试或发布)时,一切正常。但是,使用MSBuild构建失败。
这个版本有一直在工作(它实际上是通过一个nAnt任务调用的)。唯一改变的是我有一个新的用户控件,其Type I在我的代码中引用。
违规代码在我的ASPX代码后面。 MessageAlert是用户控件:
MessageAlert userControl = this.LoadControl("~/UserControls/MessageAlert.ascx") as MessageAlert;
userControl.UserMessage = message;
this.UserMessages.Controls.Add(userControl);
为了让Visual Studio来识别型“MessageAlert”我必须:在@Control标记
1)设定该类=“MessageAlert”顶部用户控制的(因为使用自动生成的UserControls_MessageAlert没有任何工作)
2)注册在我的ASPX的标记用户控件,使用@Register
3)添加“使用ASP “到我的代码顶部
经过这些步骤之后,我可以在Visual Studio的代码隐藏中成功引用MessageAlert类型。但是从MSBuild中我得到“无法找到类型或名称空间名称'MessageAlert'(您是否遗漏了使用指令或程序集引用?)”
MSBuild的执行非常简单 - 它指出了非常类似的解决方案文件并将配置属性设置为释放。
看来,根据我在Visual Studio中获得MessageAlert类型引用所经历的步骤数量,MSBuild过程中缺少某些内容。但是什么? Visual Studio实际上不是在幕后调用MSBuild?
有没有更好的方法来引用ASPX后面的代码中的UserControl类型?
编辑:为了澄清,MessageAlert用户控件是而不是在其他引用程序集/项目。我提到他们是因为和网站一起组成了Solution文件,这个文件和MS Build一样是由同一个sln文件构成的。
是在 “其他” 引用的项目之一messageAlert控制?你通常不能这样做,但有解决方法。 – DancesWithBamboo 2009-05-19 23:51:27
你在一个网站“项目”中使用这个吗?如果是这样,他们本身并不是真正意义上的*构建*。这也可能是你所看到的“UserControls_MessageAlert”的原因。 – 2009-05-20 01:27:55