【问题标题】:ASP.NET UpdatePanel library reference errorsASP.NET UpdatePanel 库引用错误
【发布时间】:2011-03-31 00:14:58
【问题描述】:

我在使用 VS 2010 时遇到问题,显然它无法在开发过程中加载 UpdatePanel,这让我发疯了。我正在使用 VS2010 并使用 .NET 3.5 构建用户控件,目标是 DNN 5.x。

我创建了一个控件,可在使用更新面板的 DNN 网站上使用。当我通过 FTP 到网站并在其上进行开发来开发控件时,一切正常。我决定将开发转移到 DNN 的本地副本并为控件创建一个 Web 应用程序项目。起初一切都很好。经过几次构建后,我开始收到以下错误:

类型或命名空间名称 'UpdateProgress' 不存在于 命名空间 'System.Web.UI.WebControls.WebParts' (您是否缺少装配 参考?)

类型或命名空间名称 'UpdatePanel' 不存在于 命名空间 'System.Web.UI.WebControls.WebParts' (您是否缺少装配 参考?)

我认为我在此过程中搞砸了一些东西并搞砸了对库的引用,所以我卸载了所有内容并重新加载了库引用。我继续收到错误,无法编译控件。最后,我决定重做整个项目,并导入我已经写好的代码。一切正常,直到后来出现相同的错误时进行了几次构建。

我遵循所有相同的步骤,卸载引用,重新加载它们,最后删除项目。每次我创建一个新项目并将完全相同的代码复制到 .ascx 文件中时,它们都可以正常工作......对于一些构建。昨晚,我编译了库并测试了更改。一切都很好,所以我关闭了项目并关闭了机器。今天早上打开它并收到构建错误。就好像我的电脑里有一颗定时炸弹,它只会关闭这些东西。

关于我所缺少的可能导致此问题的任何想法?我不知道为什么图书馆会像这样闪烁。我的本地机器上的任何其他项目都没有遇到过这种问题,我真的不想再次通过 FTP 到网站来开发这个问题。呸!

【问题讨论】:

  • 添加引用后,尝试右键单击引用,选择属性并将“复制本地”设置为true。
  • @Tchami,刚刚尝试过(我还没有想到),但仍然遇到同样的错误。
  • 也许将 System.Web.Extensions 的控件添加到 Web 配置可能会起作用。检查一个 asp.net 3.5 项目 web.config
  • @reverseblade,我检查了 web.config(针对 DNN 站点),甚至将原始 web.config 添加回控件的项目,只是为了看看它是否会重新引用该库。跨度>
  • 如何添加参考?你的机器上安装了 ASP.NET Ajax 吗?

标签: asp.net updatepanel dotnetnuke


【解决方案1】:

更新到 Framework 4.0 后,我在所有旧项目中都遇到了同样的问题。我尝试了很多次研究为什么会发生这种情况,但我发现没有任何效果。我的团队花了一年多的时间手动更新 designer.vb 以在每次更改 ASPX 时为 UpdatePanel 提供正确的参考。

问题恰好出在项目文件对 AjaxControlToolkit 的引用中。 .vbproj 文件中的引用是特定于 3.5 的版本。所以只是更新 DLL 并没有更新引用。解决方案是删除 AjaxControlToolkit 引用,保存项目,然后将引用添加回 AjaxControlToolkit.dll

如果您在文本编辑器中打开项目文件,您可能会看到如下内容:

<Reference Include="AjaxControlToolkit, Version=3.5.60623.0, Culture=neutral, 
    PublicKeyToken=28f01b0e84b6d53e, processorArchitecture=MSIL>
    <SpecificVersion>False</SpecificVersion>
    <HintPath>bin\AjaxControlToolkit.dll</HintPath>
</Reference>

如果你做的一切都是正确的,它应该是这样的:

<Reference Include="AjaxControlToolkit">
    <HintPath>bin\AjaxControlToolkit.dll</HintPath>
</Reference>

【讨论】:

    【解决方案2】:

    我的解决方案也进入了这种奇怪的状态。在使用 AnkhSVN 获取最新版本后,在 web-config 中编辑冲突后发生。 该错误仅显示在我当时在 Visual Studio 中打开的页面中。它说它无法再在 System.Web.UI 中找到 UpdatePanel 或 UpdateProgress,这没有意义,因为我在其他页面中使用了这些控件。

    修复
    只需将 UpdatePanel 从工具箱拖放到引发错误的页面上。清理并重建,您就可以开始了。您剩下要做的就是删除刚刚添加的 UpdatePanel。
    我相信这样做会重新连接解决方​​案中我看不到的东西。

    【讨论】:

    • 我已经有一段时间没有遇到这种情况了(基本上已经放弃了 Web 表单),但如果我再次遇到它,我一定会尝试一下。谢谢!
    • 当我这样做时,它在 .designer.cs 文件中从 System.Web.UI.WebControls.UpdatePanel 更改为 System.Web.UI.UpdatePanel(修复了它)。我认为这与在另一台机器上编辑文件有关。稍后我将不得不对其进行更多研究。谢谢!
    • 我不记得为什么我没有将其标记为答案(从那以后我已经做了很多次了)。我正在取消标记我的答案并接受这个答案,因为它过去实际上对我有用。 (很抱歉这么长时间保留这些积分!)=)
    • 这只是一个临时修复。 Visual Studio 一次又一次地将其改回 WebControls。...无论我多久编辑一次设计器文件。
    • @lapsus -1,真的吗?从其他赞成票来看,该解决方案显然有效。您的解决方案文件或从您的存储库获取最新版本可能有问题或损坏?我的修复没有指示您编辑“设计器文件”(例如 Somepage.aspx.design)。它说要将控件从控件工具箱拖放到标记所在的页面本身(例如 Somepage.aspx),然后清理并重建整个解决方案。尝试关闭所有打开的文件(除了一个 asxp 标记文件)并执行此操作。我希望它有效。如果它继续发生,那么我建议创建一个新的解决方案。
    【解决方案3】:

    如果您检查新的 web.config 文件,您会发现添加了以下(或类似内容)。我能够在没有其他更改的情况下添加此编译器指令并成功编​​译。 ScriptManager 在旧版本的扩展 .dll 中,需要绑定。似乎创建一个新网站会添加编译器指令,但升级不会。

    <!--/system.webServer  positional notes-->;
    
    <runtime>
        <assemblyBinding appliesTo="v2.0.50727" xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
    
    <!-- /configuration -->
    

    【讨论】:

    • 感谢您的回复!实际上,我发现这是因为我将 DNN 控件直接放在 DesktopModules 文件夹中(在与安装的其余部分不同的项目中),所以在测试站点时我无法获得完整的 web.config。测试时我会将其重命名为 web.config.old。因此,如果我在关闭 Visual Studio 之前没有将其重命名,那么当我再次启动项目时,我将丢失对程序集的所有引用。不过,感谢您的想法!
    • 您提到 System.Web.Extensions 库使我将该引用添加到我的项目中,它现在可以识别 System.Web.UI.UpdatePanel 而无需进入 UI 或更改框架版本.
    猜你喜欢
    • 1970-01-01
    • 2011-12-28
    • 1970-01-01
    • 2017-07-28
    • 1970-01-01
    • 2011-11-23
    • 1970-01-01
    • 2011-02-10
    • 1970-01-01
    相关资源
    最近更新 更多