为什么我会收到“对象引用未将对象实例化”的错误提示,但没有代码行涉及?

3
当我尝试构建VB.NET解决方案时,出现错误:“对象引用未设置为对象的实例。”但在错误列表窗格中,文件、行、列和项目列为空:

enter image description here

如果问题没有告诉我出现在哪里,我该如何解决它?

更新

我选择了项目,然后选择“显示项目依赖关系图”,得到了以下结果:

enter image description here

我不知道我在看什么。

更新2

我不知道这是不是不寻常的或者是可以预料的,但是如果我按F5键,我会在浏览器中得到一个页面(http://localhost:2030/),没有任何错误消息;当然,页面看起来像飞机上俯瞰北达科他州的冬天。

更新3

现在(修复了一些明显的问题,比如未终止的HTML标签之后),即使进行“全部重建”也不会说它还好(改进反而让它变得更糟)。

使用“全部重建”和“生成”都会出现“对象引用未设置为对象的实例。”,但没有指示未设置的对象引用在哪里被发现。

更可怕的是,当我运行 Resharper > 检查 > 解决方案中的代码问题 时,有10个VB编译器错误,分别是以下两种类型之一:

Cannot resolve symbol '_GridName'
Cannot resolve symbol 'Class1'

为什么会有编译器错误,但它仍然编译通过?这变得越来越奇怪了。

关于此项目有多少警告、错误等的想法,以下是Resharper指出的概述:

enter image description here

我看到了20个错误和许多其他的“问题”——这让我感觉像写一首乡村歌曲!

更新4

当我右键点击项目并选择“在页面检查器中查看”时,我看到了以下内容:

enter image description here

这可能是问题所在,如果是的话,我该如何确保 Dev 服务器运行在 .NET 4.0 或更高版本上?

还是说这只是一个分散注意力的东西?

更新5

现在有一个警告可能会在这里提供一些线索:

C:\MemberOrderEntry\MembersOrderEntry\MembersOrderEntry\Weyand\Default.aspx: ASP.NET 运行时错误:对象引用未设置为对象的实例。

这是警告涉及的代码行:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="Weyand._Default" title="Web Order Entry" %>

整个 Default.aspx 文件为:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="Weyand._Default" title="Web Order Entry" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Order Entry Login Page</title>
</head>
<body>
<form id="form1" runat="server">
    <div>
    </div>
</form>
</body>
</html>

另一个警告是:“验证(XHTML 1.0 Transitional):元素'page'不受支持。 C:\ MemberOrderEntry \ MembersOrderEntry \ MembersOrderEntry \ Weyand \ Default.aspx”

这是否对任何人都有意义?需要在其中删除或更改什么内容吗?

还有许多其他具有完全相同代码的文件:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="Vinyard._Default" title="Web Order Entry" %>

除非它们使用“Vinyard”或其他名称代替“Weaynd”,否则为什么它们没有几个相同问题的警告,而只有这一个呢?

更新6

好的,如果我在解决方案资源管理器中展开这些文件,它们确实会引发警告。为什么会这样呢?编译器只有在它们在解决方案资源管理器中被展开时才会注意到它们吗?这是毫无意义的...

更新7

“元素'page'不受支持”是问题的根源吗?

当我展开其中三个文件夹时,我看到:

enter image description here

这个“页面”长这样:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="Vinyard._Default" title="Web Order Entry" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

似乎每个“页面”都有问题;对于每个页面,可能会出现相应的“ASP.NET运行时错误:对象引用未设置”的警告-这可能是导致同类型错误的原因。
如果“页面”元素是问题所在,那么如何修复它?
如果我只是将它删除,像这样:
<%@Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="Vinyard._Default" title="Web Order Entry" %>

如果我得到“元素''不受支持”的错误消息。这不仅是一个死结,因为当所有内容都被展开时,会捕获更多的错误。

更新8

这些错误让我想知道:“Inherits”指什么?我有这样的代码:

Inherits="CapitolCity._Default"

在更多的上下文中,它们出现在 Default.aspx 文件中,如下所示:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="CapitolCity._Default" title="Web Order Entry" %>

我看不到任何地方有"CapitolCity._Default"文件(这显然是被“继承”的文件)。这里正在被继承什么,或者试图被继承什么?

在这种情况下,带有上述行的文件是\\CapitolCity文件夹中的Default.aspx。在它下面是Default.aspx.vb文件。

有一个\\Default.aspx文件,下面有一个Default.aspx.vb。第一个是:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" title="Web Order Entry" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
<form id="form1" runat="server">
    <div>
    </div>
</form>
</body>
</html>

这个问题有什么问题吗?如果没有,是什么导致了这个巨大的头痛?


3
这是一个编译错误,而不是运行时错误。在构建过程中出现了严重的问题。尝试重新启动VS吗? - Blorgbeard
1
空引用错误是运行时错误(而不是编译时错误)。您在构建期间收到此错误的事实告诉我,是构建引发了错误。换句话说,问题不在您的源代码中。请查看“输出”页面(将输出表单设置为“构建”),看看是否有任何线索。此外,我会检查项目属性中的构建事件。 - Sparrow
1
右键单击项目,选择项目依赖项。这有点像是除非您明确告诉它全部构建,否则可能会出现某些未构建的情况。 - Ňɏssa Pøngjǣrdenlarp
1
  1. 可能以前编译时没有错误 - 你可以回到版本控制系统的历史记录中查看,看看是否有什么更改导致了问题?
  2. 你是否搜索了所有"_GridName"出现的位置,看看为什么会出现错误?
- Andrew Morton
1
@B.ClayShannon 好吧,这比之前的十个错误要好了。你能在解决方案资源管理器中右键单击并“从项目中排除”多少项目而不会引入更多错误? - Andrew Morton
显示剩余16条评论
1个回答

0

这是一个非常奇怪的问题,但既然已经解决了,那么就应该得到一个答案。

我认为这是.suo文件中的一个bug,因为我的VS最近表现得很奇怪,我的程序突然开始崩溃,无法构建,并显示Office引用无效。

我尝试过的一个修复方法是清理和重新构建解决方案,在四分之一的时间内有效,其他时间我不得不物理上删除并再次添加引用,然后重新构建整个解决方案。

在做了一个星期左右的这件事情后,我厌倦了,于是我在我们工作服务器上创建了一个备份,删除了新文件夹中的.suo文件,然后打开并构建整个解决方案。

它解决了问题。不确定为什么,或者出了什么问题,但是.suo文件和引用中偶尔会发生奇怪的事情。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接