如何在Windows 10上调试缺少的dll

问题描述:

我有从Windows 8.1升级的Windows 10(Windows通用)项目。如何在Windows 10上调试缺少的dll

我尝试推出这种在Windows 10手机即可

System.IO.FileNotFoundException

,当它第一次尝试是指我的Windows运行时组件。

System.IO.FileNotFoundException:无法找到指定的模块。在System.StubHelpers.StubHelpers.GetWinRTFactoryObject(IntPtr的pCPCMD) 在FooRuntimeComponent.STAContextCapture.CaptureContext() 在FooApp.App..ctor() 在FooApp.Program:(0x8007007E从HRESULT异常)。 <> c.b__0_0(ApplicationInitializationCallbackParams P)}

异常本身并没有告诉我是哪个模块是找不到的。 这里的第一级依赖列表:

API-MS-WIN-CORE-HANDLE-L1-1-0.DLL 
API-MS-WIN-CORE-SYNCH-L1-2-0.DLL 
API-MS-WIN-CORE-PROCESSTHREADS-L1-1-2.DLL 
API-MS-WIN-CORE-UTIL-L1-1-0.DLL 
API-MS-WIN-CORE-ERRORHANDLING-L1-1-1.DLL 
API-MS-WIN-CORE-STRING-L1-1-0.DLL 
API-MS-WIN-CORE-COM-L1-1-1.DLL 
MMDEVAPI.DLL 
VCCORLIB140D_APP.DLL 
MSVCP140D_APP.DLL 
KERNEL32.DLL 
OLE32.DLL 
CONCRT140D_APP.DLL 
VCRUNTIME140D_APP.DLL 
UCRTBASED.DLL 
WS2_32.DLL 
API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL 
API-MS-WIN-CORE-WINRT-ERROR-L1-1-1.DLL 
API-MS-WIN-CORE-WINRT-L1-1-0.DLL 

如果我尝试引用和使用空的Windows运行时组件它的工作原理。

我试图重新创建项目仍然无法正常工作。

似乎在手机上缺少一些这样的dll。如何理解哪一个?在Windows 10上是否有针对VS2015的FusLogW?

+1

使用FieldMedic App捕获ETW数据。使用我的答案(http://*.com/a/30289933/1466046)中的配置文件,并使用FusionKeyword关键字(0x4)(http://*.com/a/29374658/1466046)激活DotnetRuntime Private提供程序, 。通过USB将手机连接到PC,打开资源管理器中的“This PC \ Windows Phone \ Phone \ Documents \ FieldMedic \ CustomProfiles”文件夹,并将WPRP文件复制到该文件夹​​中。运行应用程序,在高级“自定义组”下选择配置文件。开始记录,运行你的应用程序,停止记录。将ETL复制到PC并使用PerfView或WPA(通用事件)进行分析 – magicandre1981

+0

如何在手机上激活私有DotnetRuntime?另外我没有看到来自Microsoft-Windows-DotNetRuntime的通用消息。也许这是一个原因。 – norekhov

+0

好的,我试过了,记录失败。我需要弄清楚失败的原因。我将在稍后测试并报告。 – magicandre1981

这可能是因为你对ole32.dll的依赖。

我在Xbox上有类似的问题。我的假设是,在UWP应用程序中,ole库中的方法映射到windows API设置(API-MS-WIN的东西),而不是DLL本身。 ole32.dll可能存在于桌面环境中,但是当您在其他平台上运行时,此dll可能不在那里。