当我尝试构建 VB.NET 解决方案时,收到错误“未将对象引用设置为对象的实例”。但在“错误列表”窗格中,“文件”、“行”、“列”和“项目”列为空:
如果它不告诉我问题在哪里,我该如何解决问题?
UPDATE
我选择了项目,然后“显示项目依赖关系图”并得到了这个:
我不知道我在看什么。
UPDATE 2
我不知道这是否不寻常或符合预期,但如果我混搭 F5,我确实会在浏览器中看到一个页面(http://本地主机:2030/ http://localhost:2030/)没有任何错误消息;当然,该页面看起来就像冬天从飞机上看到的北达科他州。
UPDATE 3
现在(在修复了几个明显的问题之后,例如未终止的 html 标签),它甚至不会说“全部重建”没问题(改进它会使情况变得“更糟”)。
通过“重建全部”和“构建”,我得到了,“你调用的对象是空的。" 但没有指示在哪里找到未设置的对象引用。
更可怕的是,当我跑步时Resharper > 检查 > 解决方案中的代码问题,其中有 10 个 VB 编译器错误,分为以下两种类型:
Cannot resolve symbol '_GridName'
Cannot resolve symbol 'Class1'
为什么会出现编译错误但仍然可以编译?这真是让人越来越好奇了。
作为该项目有多少警告、错误等的想法,以下是 Resharper tsk-tsks 相关内容的概述:
20 个错误和一千个其他“问题”——这让我感觉像在写一首乡村歌曲!
UPDATE 4
当我右键单击该项目并选择“在页面检查器中查看”时,我看到以下内容:
这可能是问题所在吗?如果是,我如何确保开发服务器在 .NET 4.0 或更高版本上运行?
或者这是一条红鲱鱼?
UPDATE 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”或其他东西而不是“Weyand”);那么为什么他们不针对同一件事发出多次警告,而不仅仅是这个呢?
UDPATE 6
好吧! (arghh)如果我在解决方案资源管理器中展开这些文件,它们do引发警告。为什么会这样呢?编译器不会注意到 htem,除非它们在解决方案资源管理器中展开?这是没有意义的...
UDPATE 7
“不支持元素'页面'”是问题的根源吗?
展开其中三个文件夹后,我看到:
“页面”是这样的:
<%@ 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">
看来每个“Page”都有问题;对于每一个,都有可能对应的“ASP.NET 运行时错误:对象引用未设置”警告 - 这可能是导致相同类型错误的原因。
如果“Page”元素是问题,那么解决方法是什么?
如果我只是删除它,就像这样:
<%@Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="Vinyard._Default" title="Web Order Entry" %>
...然后我得到,“不支持元素 ''”。这不仅仅是第 22 条军规,因为当所有内容都扩展时,会发现更多的错误。
UPDATE 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”文件(这显然是被“继承”的)。这里正在继承什么,或者试图继承什么?
在本例中,上面一行的文件是 Default.aspx,位于 \\CapitolCity 文件夹下/内。下面是 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>
是不是出了什么问题?如果没有,是什么原因导致了这么大的头痛?