代码之家  ›  专栏  ›  技术社区  ›  Jared Updike

.NET 2.0程序(与2005年相比)在Visual Studio中运行,但不是从Windows资源管理器运行

  •  1
  • Jared Updike  · 技术社区  · 17 年前

    有人看到这个吗?

    有几秒钟的延迟,然后其中一个对话框说“雅达雅达遇到问题,需要关闭。我们为这种不一致感到抱歉。”(这很奇怪,因为我的程序有一个特殊的处理系统,如果在我的代码中抛出异常,它会给出有用的错误消息,但显然没有达到那个程度:如果你试图在没有安装.NET的计算机上运行.NET程序,这个对话框与你看到的是同一种情况。)同样二进制文件在其他Windows系统上运行。

    我尝试重新安装.NET 2.0。我试图把它移走(不允许)。我试着改变它(没有明显的改变)。我尝试重新发布我的项目(ClickOnce),它仍然在其他计算机上工作,但在我的开发计算机上不工作,除了在Visual Studio中。我尝试删除已安装的ClickOnce项目并重新安装,但它仍然无法启动该程序。

    我找到的最接近的东西是 this (阅读他的澄清)但这些解决方案都不起作用。

    我正在考虑重新命名程序,重新发布和重新安装,看看它是否与神秘的GAC或邪恶的注册表有关,但是。

    6 回复  |  直到 17 年前
        1
  •  1
  •   David Nelson    17 年前

    使用事件查看器检查应用程序事件日志。你可能不会得到太多的信息,但有时它可以为你指明正确的方向。

        2
  •  1
  •   Maslow    17 年前

    在“应用程序事件”部分中是否有捕获和报告未处理异常的内容?

        3
  •  1
  •   Paul Farry    17 年前

    我还建议手动将exe和dll复制到一个目录中,并为自己准备一份reflector副本,然后用reflector打开主应用程序exe,然后浏览所有引用。可能存在某种依赖关系,它期望在GAC中有一个不同的版本或者更旧的版本,并且您认为已经删除了它。

    同时在程序中找到入口点,看看Reflector认为它在做什么。

        4
  •  0
  •   ryansstack    17 年前

    是否尝试过可再发行软件(vcredist_x86.exe)?

        5
  •  0
  •   Maslow    17 年前

    您是否尝试手动将exe和支持文件复制到计算机而不是使用publish?另外,您也不想经历这些麻烦,但是在我们的机器上,偶尔会出现这样的问题,我们安装了一个Visual Studio的副本,因此它会出现调试或关闭提示,我们单击调试并复制它要求的源代码文件,然后我们会看到更多详细信息。

        6
  •  0
  •   Dov    17 年前

    当您直接双击编译器输出时,它不会运行?如果是这样的话,通常解决这个问题的方法是为项目中引用的所有DLL指定copy local=true。

    推荐文章