ASP.NET UpdatePanel库引用错误

时间:2010-08-17 13:53:48

标签: asp.net updatepanel dotnetnuke

我遇到了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到网站再次开发这个。的Bleh!

3 个答案:

答案 0 :(得分:15)

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

修复
只需将UpdatePanel从工具箱拖放到抛出错误的页面上即可。清洁和重建,你很高兴。您剩下要做的就是删除刚刚添加的UpdatePanel 我相信这样做可以解决我无法看到的解决方案。

答案 1 :(得分: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 -->

答案 2 :(得分:1)

在更新到Framework 4.0之后,我在所有旧项目中遇到了同样的问题。我多次尝试研究为什么会发生这种情况,而我发现的任何东西都不会起作用。我的团队花了一年多的时间来手动更新UpdatePanel的designer.vb以便每次更改ASPX时都有正确的参考。

问题恰好出在项目文件对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>