在网站用户控件上运行aspnet_compiler时出错

时间:2009-09-08 20:25:34

标签: c# .net-3.5 nant aspnet-compiler

我的构建并在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相关,因为它也在抱怨自动属性。当我将它们切换为具有支持字段时,它将起作用。

2 个答案:

答案 0 :(得分:1)

看起来您需要使用NAnt 0.86 Beta 1或使用Palermo's fix。在命令行上使用-t选项以定位正确的版本。您还需要确保在构建服务器上安装了.NET 3.5(可能还有SP1)。

从NAnt到MSBuild通常更容易,因为后者支持.sln文件。

答案 1 :(得分:0)

看起来问题是当您以可更新模式编译网站时,不允许在没有代码的用户控件中调用公共方法/属性。

将代码移动到.cs页面后,就可以了。