.Net运行时:FileNotFoundException Program.Main..cctor()

时间:2017-08-24 15:15:53

标签: c# .net winforms exception filenotfoundexception

我收到了FileNotFoundException,我很好奇原因是什么。

.Net Runtime
---------------------------------------------------------------------
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
  <Provider Name=".NET Runtime" /> 
  <EventID Qualifiers="0">1026</EventID> 
  <Level>2</Level> 
  <Task>0</Task> 
  <Keywords>0x80000000000000</Keywords> 
  <TimeCreated SystemTime="2017-08-24T14:45:09.382117400Z" /> 
  <EventRecordID>820</EventRecordID> 
  <Channel>Application</Channel> 
  <Computer>Sarah-VPC</Computer> 
  <Security /> 
  </System>
- <EventData>
  <Data>Application: Jobfish.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.IO.FileLoadException at Jobfish.Program..cctor() Exception Info: System.TypeInitializationException at Jobfish.Program.Main(System.String[])</Data> 
  </EventData>
  </Event>

以下是“事件查看器”常规视图中的片段。

Exception Info: System.IO.FileLoadException
   at Jobfish.Program..cctor()

Exception Info: System.TypeInitializationException
   at Jobfish.Program.Main(System.String[])

以下是详细信息:

我的开发桌面上的一切正常。我在Windows 10 64位VirtualBox PC上收到此错误消息。

我最后一次在VirtualBox环境中检查应用程序是使用Windows 8.1和Visual Studio 2015.一切都很好。我更新到VS2017和Windows 10(最新版),我得到了上面的例外。

我从未在MessageBox.Show()入口点收到Program.Main()调试声明。

我查看了引用,它们看起来很好,但话说回来,我们正在谈论WinForm应用程序的入口点,所以就在开始时。此外,错误是.NetRuntime。

目标是4.5.1,Windows 10附带4.7。

我尝试在.Net Framework v2/3.5 Add Windows Features控制面板小程序中添加Programs and Features,但没有。我也试过在VS C ++ Runtime 64和X86中添加VS2012,VS2015和VS2017,也没有去。我在谷歌搜索中看到了推荐。

显然,问题是Windows无法在main()和Program.Main()之间找到空间,这是在启动代码中。

我做了&#34;升级&#34;我的应用程序,所以可能是升级问题。我刚刚尝试了一个干净的新创建的X64 WinForm项目,并且出现了,所以有些不同。

明显的前进方法是开始一次向一个干净的项目添加内容,看看事情何时中断。在两个项目文件之间也做同样的事情。

我希望有人可能知道一些事情,因为这个问题与VS2015 / Win81到VS2017Win10有关。

有更好的方法来获取更多信息吗?事件查看器很好,但不是很有帮助。

我尝试复制RemoteDebuger文件并在Virtual Box上启动远程调试器,但VS2017找不到远程系统,因此出现了一些IP / VBx问题。我尝试安装.Net Framework 4.5,但被告知我已经拥有它。

谷歌和SO帖子看起来似乎没什么帮助,即使查询..cctor(),虽然特定错误是TypeInitializationException在System.String []`上,这是非常基本的。净的东西,所以我觉得几乎没有安装适用版本的.Net的问题,我有4.7。哎呀,正如我所说的,我试图使用离线安装程序安装4.5.1,但显然失败了,因为4.7包含早期版本的4.X。

我针对4.5.1,4.5,4.0和2.0运行了outlined步骤,但这一切都很好。我对新安装的Windows的期望很高。

思想?

1 个答案:

答案 0 :(得分:1)

我在安装新服务时遇到了同样的问题,这看起来像是由于.Net运行时或者IO.FileLoadExceptionTypeInitializationException的目录权限或服务用户权限:

enter image description here

问题实际上并非与此有关。问题与我的服务试图用来编写日志的底层log4net.dll版本有关。该服务是使用较早的Nuget版本构建的。

我也有类似的服务在同一个盒子上运行而没有问题,因为它们是使用更高版本的log4net.dll构建的。

当我添加了dll的更新版本时,问题就解决了。