【问题标题】:C# Visual Studio 2010 - 'Could not load type' Parse errorC# Visual Studio 2010 - “无法加载类型”解析错误
【发布时间】:2012-11-30 00:09:18
【问题描述】:

解析器错误消息:无法加载类型“TestProject.Default”。


我已经检查了我能找到的关于这个问题的所有其他线程。到目前为止,我还没有找到适用于我的案例的解决方案。


来源错误:

Line 1:  <%@ Page Title="Home Page" Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TestProject.Default" %>
Line 2:  
Line 3:  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Source File: /testarea/default.aspx    Line: 1

Default.aspx.cs

using System;
using System.Web;
using System.Web.UI;

namespace TestProject
{
    public partial class Default : System.Web.UI.Page
    {

相关说明

  • /testarea 是服务器上不可编译文件所在的目录 /testarea/bin 是否包含已编译的文件
  • 项目已编译(使用 Build -> Build TestProject)
  • 在本地调试时运行良好 - 问题仅在发布时出现 到网络
  • 我不/不能通过 VS 发布(没有首页扩展),所以 跨文件复制(从 PackageTmp 文件夹中使用 Build -> 发布 -> 文件系统)
  • 我用同样的方法把之前的一个项目放到了网上,没有 问题。
  • 在所有其他线程和对此问题的引用中,命名空间 不准确,缺乏编译项目和项目 属性似乎不适用于这种情况(我检查了很多 时间和所有看起来都是正确的)
  • 项目属性中的输出路径为\bin,与位置相同 在服务器上 (/testarea/bin)
  • 已尝试“转换为 Web 应用程序”,但之前存在问题,并且 之后
  • 尝试了无数次构建 -> 清理,然后再次构建,清理然后 发布。没有变化。

旁注

我是一名 PHP 开发人员,所以这些奇怪的 .NET / C# 问题难以追踪和找到逻辑,对我来说尤其困难。任何建议重新。如何正确调试 VS C# 应用程序将不胜感激。

这是我在这里的第一个问题。如果我可以通过更多信息帮助简化此操作,请尽管询问。

【问题讨论】:

  • 我是新来的,所以请原谅额外的评论,但我有点惊讶的是,下面的 2 个尝试的答案已被某人或多个人标记,而没有给出替代方案。并不是说我期待答案这么快,只是对那些尝试过的人来说似乎不公平。

标签: c# asp.net visual-studio-2010


【解决方案1】:

Line 1 中尝试这一行,而不是你已经拥有的。

<%@ Page Title="Home Page" Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TestProject._Default" %>

【讨论】:

  • 我试过这个,但解析错误似乎是一样的,只是用'_Default'而不是'Default'。 Parser Error Message: Could not load type 'TestProject._Default'.Source Error: Line 1: &lt;%@ Page Title="Home Page" Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TestProject._Default" %&gt; Line 2: Line 3: &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;我也改了default.aspx.cs文件中的类名
【解决方案2】:

我遇到了类似的问题,不同之处在于我有时无法编译,有时我能够编译但在浏览器打开时收到错误,未加载页面并声明无法加载类型 xxxyyyy.default 我之前所做的是手动导入一些类(将 .cs 文件放到项目标题中),昨天在另一台计算机上运行良好。现在我在另一台计算机上并收到此错误。一开始的一个问题是,当我导入这些类时,它们属于不同的命名空间。所以起初我决定改变所有类的命名空间来“规范化”这个问题。它碰巧适用于编写代码,但在运行时它返回错误。所以我最终所做的是返回到原始命名空间,并在 Default.aspx.cs 文件的顶部包含“使用 NameOfMyImportedNamespace”。 与命名空间相关的新错误再次出现。因此,我最终通过将文件 Default.aspx.designer.cs 上的先前命名空间(原始)重命名为 NameOfMyImportedNamespace 来解决它,并且它起作用了! 但是,当我今天收到这个新错误时,我发现 Default.aspx.designer.cs 文件上的命名空间已重命名回原来的名称。所以这次我重命名它时,我注意到 Visual Studio 在你更改的单词后面绘制的红色光标,并且有一个选项可以在整个项目本身中重命名该命名空间。所以我做到了,它终于奏效了。 我想我的项目名称也会被重命名,但它没有,所以我认为它可能是解决您问题的合适方法。 顺便说一句,我昨天开始在 Windows 7 下运行的 VS2010 Ultimate 上编写此代码,并且在我现在使用的另一台计算机上发生了错误并解决了这个问题,在 Windows XP 下运行 VS2010 Enterprise。所以我想它不应该是一个操作系统。或 VS 版本问题,因为它可以通过重命名命名空间来解决。

【讨论】:

    【解决方案3】:

    你的第一行应该喜欢

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %>
    

    【讨论】:

      【解决方案4】:

      我得到了 MyProject.csproj 文件的旧副本并将其替换并修复了它。 希望这会有所帮助。

      【讨论】:

        【解决方案5】:

        您在页面参考上方缺少您的程序集参考:

        <%@ Assembly Name="YOURASSEMBLY.NAME, Version=1.0.0.0, Culture=neutral, PublicKeyToken=YOURPUBLICKEYTOKEN" %>
        

        【讨论】:

          【解决方案6】:

          尝试从最后一部分删除 .Default:Inherits="TestProject.Default"%>

          【讨论】:

          • 当我这样做时,我无法编译/构建。我认为这是因为 default.aspx.designer.cs 文件不包含类名。
          • 为什么 OP 应该继承命名空间而不是正确的类?这个答案没有意义。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-06-10
          相关资源
          最近更新 更多