0

我在 Visual Studio 中构建和运行良好,但是当我运行 Nant 任务来编译网站时,它给了我一个错误:

[path]\ContactView.ascx   
error CS0117: 'System.Web.UI.Usercontrol' does not contain a definition for 'Name'

我有一个名为 ContactView 的用户控件,它有另一个名为 ContactForm 的用户控件。Contact Form 是具有 Name 属性的那个(内联声明,没有 .cs 文件)。我不明白为什么错误出现在父 UserControl 上,甚至根本不明白为什么它在抱怨。

当 VS2008 构建和编译它时,代码似乎运行得很好。

有任何想法吗?

我知道 nant 构建脚本适用于我的 2.0 网站,并且在这个网站 web.config 中我添加了 3.5 编译器。有什么我想念的吗?

编辑:此错误实际上显示在此用户控件和其他一些属性上的每个属性中。我不知道这个错误的单个实例是否导致多次失败,或者所有用户控件是否真的无效。

更新:该错误必须与框架的 v3.5 有关,因为它还抱怨自动属性。当我将它们切换为具有支持字段时,它会起作用。

4

2 回答 2

1

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

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

于 2009-09-09T01:16:44.563 回答
0

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

将代码移至 .cs 页面后,它就可以工作了。

于 2009-09-09T14:46:29.057 回答