【问题标题】:Error running aspnet_compiler on websites user controls在网站用户控件上运行 aspnet_compiler 时出错
【发布时间】:2009-09-08 20:25:34
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多