【问题标题】:Application doesn't start unless all output files are manually erased除非手动删除所有输出文件,否则应用程序不会启动
【发布时间】:2012-01-22 09:16:00
【问题描述】:

我在 Visual Studio 2010 中处理多项目解决方案。最近,我的一个启动项目(一个 Windows 应用程序)在运行时出现问题:当我尝试像往常一样运行它时出现错误:

ArgumentNullException was unhandled: Value cannot be null.
Parameter name: activationContext

我可以运行该项目的唯一方法是从 bin\debug 文件夹中删除所有文件

但是:我必须手动执行此操作,因为“清理项目”也无法正常工作:.exe 文件未删除(尽管其他文件已删除)并且上述问题仍然存在。

错误的堆栈跟踪:

在 System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData) 在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone() 在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback 回调,对象状态,布尔 ignoreSyncCtx) 在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback 回调,对象状态) 在 System.Threading.ThreadHelper.ThreadStart()

感谢您在这件事上的帮助,谢谢。

【问题讨论】:

  • 没有足够的细节。什么是activationContext,为什么是null?报错项目是什么项目?为什么删除所有文件可以解决问题?
  • ActivationContext 是一个 .NET 库模块,与应用程序激活相关。正如我所写,该项目是一个 Windows 应用程序。关于您的其他问题 - 我还不知道为什么 ActivationContext 为空或为什么删除文件会有所帮助,但我正在努力弄清楚,当然。
  • 调试 + 异常,勾选 CLR 异常的抛出框。发布异常的堆栈跟踪。
  • 我试过了,但行为没有改变(我猜这是因为异常是从外部代码引发的,而不是我自己的)。不过我会发布异常堆栈跟踪。
  • 那是不健康的。项目 + 属性,调试选项卡,取消选中“启用 Visual Studio 托管进程”选项。告诉我们那做了什么。

标签: c# .net visual-studio


【解决方案1】:

如果 exe 未被删除,则表明它的实例仍在运行。签入 TaskManager 并杀死所有仍在运行的进程,然后再启动一个新进程。

【讨论】:

  • 我可以手动删除 exe,所以它不是已经运行的问题。
  • @Tomata - 不能保证。
【解决方案2】:

获取 sysinternal 进程浏览器。在文件/句柄上搜索任何给您带来问题的文件。它将指向仍然打开的可执行文件。右键单击它并杀死它。与任务管理器不同,它还会快速杀死一个进程,这可能需要一些时间。 Process Explorer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多