.net 已安装的应用程序上出现空引用异常

.net 已安装的应用程序上出现空引用异常,.net,vb.net,nullreferenceexception,.net,Vb.net,Nullreferenceexception,我的情况是,我已经在我的开发机器上创建了一个VB.NET应用程序,现在希望使用包和部署向导将其分发到另一台机器上 开发机器上的代码工作正常,但是当我在目标机器上安装它时,它给出了一个空引用异常 我在目标机器上有一个access数据库,它是我在开发机器上使用的数据库的精确副本。我的连接字符串是在我的app.config文件中定义的,我不知道如何继续 这是我的app.config文件,其中包含我的连接字符串: <?xml version="1.0" encoding="utf-8" ?>

我的情况是,我已经在我的开发机器上创建了一个VB.NET应用程序,现在希望使用包和部署向导将其分发到另一台机器上

开发机器上的代码工作正常,但是当我在目标机器上安装它时,它给出了一个空引用异常

我在目标机器上有一个access数据库,它是我在开发机器上使用的数据库的精确副本。我的连接字符串是在我的app.config文件中定义的,我不知道如何继续

这是我的app.config文件,其中包含我的连接字符串:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
  <add name="connString"
       connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Dave\Documents\duraGadget.mdb"
       providerName="System.Data.OleDb" />
</connectionStrings>
<startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" />
</startup>
</configuration>
Data Source=C:\Users\Dave\Documents\duraGadget.mdb
以下是目标计算机上错误消息框对话框中显示的错误消息:

有关调用的详细信息,请参阅此消息的结尾 即时(JIT)调试,而不是此对话框

异常文本 System.NullReferenceException:对象引用未设置为对象的实例。 在DuraGadget.Form1.Form1_加载(对象发送方,事件参数e) 在System.EventHandler.Invoke(对象发送方,EventArgs e) 在System.Windows.Forms.Form.OnLoad(EventArgs e)中 在System.Windows.Forms.Form.OnCreateControl()中 位于System.Windows.Forms.Control.CreateControl(布尔值不可修改) 在System.Windows.Forms.Control.CreateControl()中 在System.Windows.Forms.Control.WmShowWindow(Message&m)中 位于System.Windows.Forms.Control.WndProc(Message&m) 在System.Windows.Forms.ScrollableControl.WndProc(Message&m)中 在System.Windows.Forms.Form.WmShowWindow(消息和消息) 在System.Windows.Forms.Form.WndProc(Message&m)中 在System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message&m)中 在System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&m)中 在System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd、Int32 msg、IntPtr wparam、IntPtr lparam)中

******加载的程序集********* mscorlib 程序集版本:4.0.0.0 Win32版本:4.0.30319.296(RTMGDR.030319-2900)

代码库:file:///c:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll 杜拉盖特 程序集版本:1.0.0.0 Win32版本:1.0.0.0

代码库:file:///C:/Program%20Files/Default%20Company%20Name/DSN%20new%20Upgrade/DuraGadget.exe Microsoft.VisualBasic 程序集版本:10.0.0.0 Win32版本:10.0.30319.1生成者:RTMRel

代码库:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll 系统 程序集版本:4.0.0.0 Win32版本:4.0.30319.1001生成者:RTMGDR

代码库:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll 系统核心 程序集版本:4.0.0.0 Win32版本:4.0.30319.1生成者:RTMRel

代码库:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll System.Windows.Forms 程序集版本:4.0.0.0 Win32版本:4.0.30319.1002生成者:RTMGDR

代码库:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll 系统图 程序集版本:4.0.0.0 Win32版本:4.0.30319.1001生成者:RTMGDR

代码库:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll System.Runtime.Remoting 程序集版本:4.0.0.0 Win32版本:4.0.30319.1(RTMRel.030319-0100)

代码库:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll 系统数据 程序集版本:4.0.0.0 Win32版本:4.0.30319.1(RTMRel.030319-0100)

代码库:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll 系统配置 程序集版本:4.0.0.0 Win32版本:4.0.30319.1(RTMRel.030319-0100)

代码库:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll Xml 程序集版本:4.0.0.0 Win32版本:4.0.30319.1生成者:RTMRel

代码库:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll ******JIT调试********* 要启用即时(JIT)调试,请为 应用程序或计算机(machine.config)必须具有 在system.windows.forms节中设置的值。 应用程序还必须通过调试进行编译 启用

例如:

启用JIT调试时,任何未处理的异常 将发送到计算机上注册的JIT调试器
而不是由此对话框处理。

以下是连接字符串中的源:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
  <add name="connString"
       connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Dave\Documents\duraGadget.mdb"
       providerName="System.Data.OleDb" />
</connectionStrings>
<startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" />
</startup>
</configuration>
Data Source=C:\Users\Dave\Documents\duraGadget.mdb
计算机上exe的路径:

C:/Program Files/Default Company Name/DSN new Upgrade/DuraGadget.exe

很可能无法打开duraGadget文件,因为指定的文件夹(在目标计算机上)中不存在duraGadget文件,因为C:\Users\Dave目录并不完全存在。你说它是Windows XP,XP没有C:\Users文件夹。所以是的。更新连接字符串的路径。

各位,谢谢你们的建议。经过几个小时的努力,我终于把它弄破了。这是多种因素的结合。对于处于类似情况的任何人,请右键单击项目文件夹,使用“发布”选项。。。属性,然后通过发布向导发布一次单击部署。我也在使用一个不同的数据库。拆分数据库给我带来了麻烦,在我的情况下不需要。更改这些问题,并在my app.config中声明单个连接字符串,同时确保正确设置了数据集连接字符串