我只在 Windows 7 上遇到 NullReference 异常有什么原因吗?
我的 C#、.NET 4 应用程序在 XP 上运行良好(确切地说是媒体中心 - 不要问)。
在 Windows 7 上,它安装得很好,但很快就卡住了。它抱怨后台工作人员的回调中出现 NullReferenceException。 (我很乐意为您提供更多信息,但由于无法在目标计算机上安装 VS,所以我只能得到这些信息。)
那么,关于部署到 Windows 7,我应该了解什么?
编辑:根据要求,这里是对正在发生的事情的更好描述...当我的应用程序的主窗体初始化时,它使用后台工作程序来创建日志记录类的实例。创建日志记录类后,工作线程的回调将使用日志实例来添加新条目。
My C#, .NET 4, app runs fine on XP (media centre to be exact - don't ask).
On Windows 7, it installs fine, but immediately borks. It complains about a NullReferenceException in the callback of a background worker. (I'd love to give you more information, but short of installing VS on the target machine, this is all I can get.)
So, anything I should know about deploying to Windows 7?
Edit: As requested, here's a better description of what's going on... When the main form of my app initialises, it uses a background worker to create an instance of a logging class. When the logging class is created, the worker's callback uses the log instance to add a new entry.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
就像我评论的那样,这很可能是特权的情况(并且它也会在 Vista 上崩溃)。
可以写入事件日志,但受限(普通)用户无法创建事件日志。
您可以通过使用其他工具预先创建事件日志来解决此问题。但某些(具有 XP 意识的)软件认为始终创建日志是个好主意。错误的。
标准解决方案是从 setup.exe 创建源
Like I commented, this is most likely a case of privileges (and it will break on Vista too).
It should be OK to write to an eventlog, but a restricted (normal) user cannot create an EventLog.
You may be able to workaround by pre-creating the EventLog with another Tool. But some (XP-minded) software thinks it's a good idea to always create the Log. Wrong.
Standard solution is to create the source from your setup.exe
您正在尝试访问无法创建的资源。您是否有堆栈跟踪或对该应用程序实际功能的更好描述?
You are trying to access a resource that can't be created. Do you happen to have a stacktrace or a better description of what this app actually does?