2015-06-09 58 views
2

我有從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://stackoverflow.com/a/30289933/1466046)中的配置文件,並使用FusionKeyword關鍵字(0x4)(http://stackoverflow.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

回答

0

這可能是因爲你對ole32.dll的依賴。

我在Xbox上有類似的問題。我的假設是,在UWP應用程序中,ole庫中的方法映射到windows API設置(API-MS-WIN的東西),而不是DLL本身。 ole32.dll可能存在於桌面環境中,但是當您在其他平臺上運行時,此dll可能不在那裏。