Uwp Windows 10物联网核心C++;引用C#运行时组件的后台应用程序 我尝试使用Windows 10 IOT核心C++背景应用程序(基于)。

Uwp Windows 10物联网核心C++;引用C#运行时组件的后台应用程序 我尝试使用Windows 10 IOT核心C++背景应用程序(基于)。,uwp,windowsiot,background-application,windows-iot-core-10,Uwp,Windowsiot,Background Application,Windows Iot Core 10,我的场景涉及创建一个本机(C++)后台应用程序,该应用程序利用现有的托管(C#)运行时组件。我可以在VisualStudio中创建这样的解决方案,它可以编译并部署到物联网设备上 但是,当我运行应用程序时,每当使用托管组件时,我都会看到这样的运行时异常: Exception thrown at 0x76C92052 in backgroundTaskHost.exe: Microsoft C++ exception: Platform::ClassNotRegisteredException ^

我的场景涉及创建一个本机(C++)后台应用程序,该应用程序利用现有的托管(C#)运行时组件。我可以在VisualStudio中创建这样的解决方案,它可以编译并部署到物联网设备上

但是,当我运行应用程序时,每当使用托管组件时,我都会看到这样的运行时异常:

Exception thrown at 0x76C92052 in backgroundTaskHost.exe: Microsoft C++ 
exception: Platform::ClassNotRegisteredException ^ at memory location 
0x02B0F4A8. HRESULT:0x80040154 Class not registered

WinRT information: Class not registered

Stack trace:
[External Code]
backgroundapplicationcpp.dll!BackgroundApplicationCpp::StartupTask::
[Windows::ApplicationModel::Background::IBackgroundTask]::Run
(Windows::ApplicationModel::Background::IBackgroundTaskInstance ^ 
taskInstance) Line 13
Windows运行时承诺的一部分是语言(C++、C#、JS、VB)的互操作。。。这个场景在使用标准UWP应用程序代替物联网后台应用程序时运行良好


此场景如何适用于后台应用程序?

Visual Studio targets系统中处理后台应用程序的部分将项目中的每个库视为与后台应用程序相同的语言(C++)

在此情况下,托管运行时组件被视为C++组件。因此,部署中不包括.NET库

Visual Studio的下一个版本应该包含对此的修复,但在此之前,我将其添加到了后台应用程序的vcxproj中:


真的
win10-$(PlatformTarget.ToLower())
WindowsRuntime 1.4;CLR v4.0.30319
WindowsRuntime 1.4
WindowsRuntime 1.4;CLR v4.0.30319
WindowsRuntime 1.4
WindowsRuntime 1.4
$(PrimaryProjectWinmdImageRuntimeOverride)
使用这段代码,.NET库与后台应用程序一起部署,本机代码可以成功访问托管组件