2

我有一个从 Windows 8.1 升级的 Windows 10 ( Windows Universal ) 项目。

我尝试在 Windows 10 手机上启动它并获得

System.IO.FileNotFoundException

当它第一次尝试引用我的 Windows 运行时组件时。

System.IO.FileNotFoundException:找不到指定的模块。(HRESULT 异常:0x8007007E)在 System.StubHelpers.StubHelpers.GetWinRTFactoryObject(IntPtr pCPCMD) 在 FooRuntimeComponent.STAContextCapture.CaptureContext() 在 FooApp.App..ctor() 在 FooApp.Program.<>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?

4

1 回答 1

0

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

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

于 2017-06-02T12:09:54.543 回答