繁体   English   中英

DotNet Console应用程序崩溃,并显示消息“ FileNotFoundException”。 虽然dll存在并且正在加载

[英]DotNet Console application crashes with a message “FileNotFoundException”. Though the dll is present and getting loaded

我有一个简单的控制台应用程序,它使用第三方dll(32bit)(依赖于另外两个dll,复制到同一路径)和dotnet framework 4.5。 此应用程序可在本地Windows 7计算机上工作。 但是在Windows Server 2012 R2中运行时,相同的内容崩溃并显示以下消息。

System.IO.FileNotFoundException: Could not load file or assembly 'dcasdk.dll' or one of its dependencies. The specified module could not be found.
File name: 'dcasdk.dll'

从事件查看器:

Faulting application name: ConsoleApplication2.exe, version: 1.0.0.0, time stamp: 0x590c51de
Faulting module name: KERNELBASE.dll, version: 6.3.9600.18340, time stamp: 0x5736541b
Exception code: 0xe0434352
Fault offset: 0x00014878
Faulting process id: 0x9a4
Faulting application start time: 0x01d2c5898c929ee7
Faulting application path: C:\Debug\ConsoleApplication2.exe
Faulting module path: C:\Windows\SYSTEM32\KERNELBASE.dll
Report Id: ca4bbc88-317c-11e7-818e-0ac916d6c5ab
Faulting package full name: 
Faulting package-relative application ID: 

错误消息日志记录以下消息,尽管所有三个dll都位于同一位置。

System.IO.FileNotFoundException: Could not load file or assembly 'dcasdk.dll' or one of its dependencies. The specified module could not be found.
File name: 'dcasdk.dll'

我尝试使用x86编译该应用程序,这有帮助。

关于如何找到根本原因的任何帮助\\会使dcasdk dll加载失败的原因..都将有所帮助。


融合日志

Fusion日志显示加载成功。 尽管应用程序崩溃,但与其他任何dll相关的融合日志中都没有错误。

=== Pre-bind state information ===
LOG: DisplayName = dcasdk, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
 (Fully-specified)
LOG: Appbase = file:///C:/Debug/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = ConsoleApplication2.exe
Calling assembly : ConsoleApplication2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Debug\ConsoleApplication2.exe.Config
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Debug/dcasdk.DLL.
LOG: Assembly download was successful. Attempting setup of file: C:\Debug\dcasdk.dll
LOG: Entering run-from-source setup phase.
LOG: Assembly Name is: dcasdk, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
LOG: Binding succeeds. Returns assembly from C:\Debug\dcasdk.dll.
LOG: Assembly is loaded in default load context.

依赖行者显示这些dll丢失。

API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
DCOMP.DLL
IESHIMS.DLL

安装MIcrosoft Visual C ++可再发行组件包(x86)解决了此问题。 依赖性步行者具有误导性。 我能够使用Process Monitor工具找到根本原因。

谢谢。

我没有足够的代表来发表评论,但这是BadImageFormatException的可能重复项。 无法加载文件或程序集或其依赖项之一。 试图加载格式错误的程序

您的平台是否只针对x86才针对AnyCPU 此外, dcasdk.dll你确定它也针对AnyCPU ,而不是针对特定的平台?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM