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

问题描述:

我最近买了一台新计算机,并将此项目上载到FTP服务器,然后将其下载到我的新计算机,但现在它导致此错误:未处理的异常:System.InvalidProgramException:公共语言运行时检测到一个无效的程序

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. 

任何帮助,不胜感激!

你真的在新计算机上编译项目还是只运行应用程序?

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

如果你正在编译它,你在编译什么?视觉工作室?哪个版本?

在任何情况下,错误与文件目录无关,应用程序位于。According to MSDN,应仅在编译的应用程序无效(即编译器存在错误的情况下)时抛出异常。你可以找到更多信息in this knowledge base article。按照文章的建议,尝试运行PEVerify工具并在调试配置中重新构建应用程序。

+0

VS 12.0.30723.00。我从Nuget Manager中删除并重新安装了Nancy,现在它可以工作。 – Jefecito 2014-11-08 21:33:01

我删除了旧的南希依赖并从Nuget再次安装它,现在它的工作。