为什么我的Web应用程序会编译,但会抛出Type' BitmapImage'没有定义。调试时出错?

时间:2017-01-26 16:20:51

标签: c# asp.net .net

我的Web应用程序项目构建并运行得很好。在构建期间没有引用或类型未定义的错误。当我尝试加载使用PresentationCore.dll来使用BitmapImage的Web表单时,我得到Type 'BitmapImage' is not defined.

我做过的事情:

  • 在我的代码隐藏文件
  • 的顶部包含Imports System.Windows.Media.Imaging
  • 清理并重建项目和解决方案
  • 删除并重新添加对PresentationCore.dll的引用
  • 确认intellisense对我的代码中的BitmapImage名称起作用,以将其标识为System.Windows.Media.Imaging的成员
  • 确认没有在网络上发布文本Type 'BitmapImage' is not defined.的实例
  • 完全删除了bin和obj文件夹
  • 将PresentationCore添加为导入的命名空间(因此不需要导入或使用语句)
  • 还添加了对WindowsBase的引用
  • 使用名称System.Windows.Media.Imaging.BitmapImage而非BitmapImage
  • 重新安装Visual Studio 2015社区
  • 将我的所有代码移至运行框架4.5.2
  • 的新Web应用程序项目

以下是在运行时抛出的异常:

  • System.Web.HttpParseException错误BC30002:键入' BitmapImage'未定义。
  • System.Web.HttpCompileException错误BC30002:键入' BitmapImage'未定义。

这些例外不应该阻止我编译吗?为什么在调试时,如果项目构建并运行,我对PresentationCore.dll的引用是否在运行时工作?

更新:我被要求分享一些代码。

TestBitmapImage.aspx内容:

<%@ Page Language="vb" Src="TestBitmapImage.aspx.vb" Inherits="PortalVB.TestBitmapImage" %>

TestBitmapImage.aspx.vb内容:

Imports System.Windows.Media.Imaging

Public Class TestBitmapImage
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim b As New BitmapImage()
    End Sub

End Class

2 个答案:

答案 0 :(得分:0)

还有几件事要尝试

  • 清除asp.net临时文件夹。

  • 在GAC中查找有冲突的程序集

答案 1 :(得分:0)

在此行中包含项目命名空间以及使用SrcCodeBehind时有一些奇怪的事情:

<%@ Page Language="vb" Src="TestBitmapImage.aspx.vb" Inherits="TestBitmapImage" %>

<%@ Page Language="vb" CodeBehind="TestBitmapImage.aspx.vb" Inherits="PortalVB.TestBitmapImage" %>

我不明白,但是当我使用Web表单创建AJAX调用的目标时,我必须更改默认(第二行)以模仿第一行。