未处理的异常:System.InvalidProgramException:公共语言运行时检测到无效程序

本文关键字:检测 无效 程序 运行时 InvalidProgramException 异常 System 未处理 公共语言 | 更新日期: 2023-09-27 18:29:34

我最近买了一台新电脑,并将此项目上传到FTP服务器,然后将其下载到我的新电脑,但现在它导致了此错误:

Unhandled Exception: System.InvalidProgramException: Common Language Runtime det
ected an invalid program.
   at Nancy.Conventions.NancyConventions.<Validate>b__1(Tuple'2 result)
   at System.Linq.Enumerable.WhereEnumerableIterator'1.MoveNext()
   at Nancy.Conventions.NancyConventions.Validate()
   at Nancy.Bootstrapper.NancyBootstrapperBase'1.Initialise()
   at Nancy.Hosting.Self.NancyHost..ctor(INancyBootstrapper bootstrapper, HostCo
nfiguration configuration, Uri[] baseUris)
   at Nancy.Hosting.Self.NancyHost..ctor(Uri baseUri, INancyBootstrapper bootstr
apper, HostConfiguration configuration)
   at PokerServer.Program.startServer() in f:'Projects'Visual Studio'PokerServer
'PokerServer'Program.cs:line 93
   at PokerServer.Program.Main() in f:'Projects'Visual Studio'PokerServer'PokerS
erver'Program.cs:line 23

它在旧电脑上运行良好。

我已经更新了.NET(以及其他线程中提到的Windows Update下的所有其他更新)。

我尝试过去激活和激活"代码优化",没有任何问题。

目录与以前不一样,不确定是否会导致此问题?

我用peverify验证我的代码,如果我理解正确,一切看起来都很好:

F:'Projects'Visual Studio'PokerServer'PokerServer'bin'Debug>peverify PokerServer
.exe /md /il
Microsoft (R) .NET Framework PE Verifier.  Version  4.0.30319.33440
Copyright (c) Microsoft Corporation.  All rights reserved.
All Classes and Methods in PokerServer.exe Verified.

非常感谢您的帮助!

未处理的异常:System.InvalidProgramException:公共语言运行时检测到无效程序

您实际上是在新计算机上编译项目还是只是运行应用程序?

如果你只是在运行它,你是否验证了两台计算机上的一个或多个应用程序集实际上是相同的?我建议,你首先排除这个选项,在数据传输过程中发生了一些事情。

如果你在编译它,你用什么来编译它?VIsual工作室?哪个版本?

在任何情况下,错误都与应用程序所在的文件目录无关。根据MSDN,只有当编译的应用程序无效时(即编译器中出现错误时),才应抛出异常。你可以在这篇知识库文章中找到更多信息。试着运行PEVerify工具,并按照文章的建议在调试配置中重新构建应用程序。

我删除了旧的Nancy依赖项,并从Nuget中重新安装了它,现在它可以工作了。