Brokered Runtime Component:' windows.activatableClass.inProcessServer'根据其数据类型

时间:2016-10-17 17:05:48

标签: visual-studio xaml windows-runtime uwp

我尝试创建Brokered Windows Runtime Component以使用我的UWP应用程序。

我已经能够构建我的代理组件和代理,创建winmd文件,并在我的UWP应用程序中引用代理。但是,在编辑UWP应用程序的应用清单以包含代理作为扩展时,我遇到了以下问题:

  

'类别'属性无效 - 值windows.activatableClass.inProcessServer根据其数据类型' http://schemas.microsoft.com/appx/manifest/types:ST_ApplicationExtensionCategory_Foundation'无效。 - 枚举约束失败。

以下是我尝试在应用清单中使用的XAML代码:

<Extensions>
...
  <Extension Category="windows.activatableClass.inProcessServer">
        <InProcessServer>
           <Path>clrhost.dll</Path>
           <ActivatableClass ActivatableClassId="BrokeredTasks.Utilities"
                          ThreadingModel="both">
              <ActivatableClassAttribute
                 Name="DesktopApplicationPath"
                 Type="string"
                 Value="C:\Users\MyUserName\Documents\Visual Studio 2015\Projects\MyProject\Debug\BrokeredTasksProxyStub"/>
           </ActivatableClass>
        </InProcessServer>
  </Extension>
</Extensions>

P.S。

有关使用代码运行时组件和模板的更易读的说明here(请参阅步骤9),但 this tutorial是最佳整体指南我&# 39;我们找到了转发RT组件。

1 个答案:

答案 0 :(得分:2)

这里的问题是,由于某人没有手动编辑应用清单的经验,我将Application/Extensions/ExtensionPackage/Extensions/Extension混淆了。

inProcessServer不是应用Extension的类别,而是包Extension

因此

<Package>
...
    <Application ... >
        <Extensions>
            <!-- Application Extensions here -->
        <Extensions>
    </Application>

    <Extensions>
        <Extension Category="windows.activatableClass.inProcessServer">
            ...
        </Extension>
    </Extensions>
</Package>