我的构建并在Visual Studio中运行良好,但是当我运行Nant任务来编译网站时,它给了我一个错误:
[path]\ContactView.ascx
error CS0117: 'System.Web.UI.Usercontrol' does not contain a definition for 'Name'
我有一个名为ContactView的UserControl,它有另一个名为ContactForm的UserControl。联系表单是具有Name属性的人(声明为内联,没有.cs文件)。我不明白为什么错误在父UserControl上,或者甚至为什么它都在抱怨。
当VS2008构建并编译它时,代码似乎运行得很好。
有什么想法吗?
我知道nant构建脚本适用于我的2.0网站,在这个网站web.config中我添加了3.5编译器。有什么我想念的吗?
编辑:此错误实际上是针对此用户控件和其他一些属性的每个属性显示的。我不知道这个错误的单个实例是否导致多个失败,或者所有用户控件是否真的无效。
更新:错误必须与框架的v3.5相关,因为它也在抱怨自动属性。当我将它们切换为具有支持字段时,它将起作用。
答案 0 :(得分:1)
看起来您需要使用NAnt 0.86 Beta 1或使用Palermo's fix。在命令行上使用-t选项以定位正确的版本。您还需要确保在构建服务器上安装了.NET 3.5(可能还有SP1)。
从NAnt到MSBuild通常更容易,因为后者支持.sln文件。
答案 1 :(得分:0)
看起来问题是当您以可更新模式编译网站时,不允许在没有代码的用户控件中调用公共方法/属性。
将代码移动到.cs页面后,就可以了。