Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DotNet控制台应用程序崩溃,并显示消息“0”;FileNotFoundException";。尽管dll存在并正在加载_C#_.net_Windows_Console Application_.net 4.5 - Fatal编程技术网

C# DotNet控制台应用程序崩溃,并显示消息“0”;FileNotFoundException";。尽管dll存在并正在加载

C# DotNet控制台应用程序崩溃,并显示消息“0”;FileNotFoundException";。尽管dll存在并正在加载,c#,.net,windows,console-application,.net-4.5,C#,.net,Windows,Console Application,.net 4.5,我有一个简单的控制台应用程序,它使用第三方dll(32位)(它依赖于另外两个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

我有一个简单的控制台应用程序,它使用第三方dll(32位)(它依赖于另外两个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相关的fusion日志中没有错误

=== 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.

Dependency walker显示缺少这些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

我没有足够的代表发表评论,但这可能是重复的


您的平台目标是
AnyCPU
还是仅针对
x86
?另外,代码< > DCASdk.DLL<代码>,您确定它也针对<代码> ANCUP< <代码>,而不是针对特定的平台?< /P> < P>安装<强>微软Visual C++可重新分配包(x86)< /强>解决了这个问题。 依赖沃克是一种误导。我能够使用过程监控工具找到根本原因


谢谢。

dcasdk.dll在哪里?我认为关键是“或其依赖项之一”部分。是否有依赖于
dcasdk.DLL
的DLL,而该DLL不存在?dcasdk.DLL位于“C:\Debug”文件夹中。此dll依赖于同一文件夹中另外两个dll。同一应用程序在本地(Windows7)中工作正常,在windows server 2012 R2上运行的部署计算机中出现错误。我尝试使用dependency walker来查找它试图加载dll的位置。但我无法从该工具中获得任何有用的信息。Fusion日志显示dll正在加载。是的,此问题与您提到的问题有关。当我再添加两个dcasdk所依赖的dll并选择任何启用了prefer32bit的CPU时,它在本地运行得很好。这个问题发生在部署机器(Windows Server 2012 R2)中,我尝试了任何CPU(有和不喜欢32位),x86但没有用。微软Visual C++ 2013更新5可再分发包