如何实现Brokered组件:Windows应用商店应用

时间:2014-07-02 18:36:01

标签: c# visual-studio-2013 windows-store-apps winrt-component

使用此处的说明:http://visualstudiogallery.msdn.microsoft.com/527286e4-b06a-4234-adde-d313c9c3c23e

使用Update 2以管理员身份运行Visual Studio 2013。

我创建了一个C#BWRC项目TestBwrc。在Class.cs中,我添加了一个返回1的int属性。

我在解决方案中添加了一个新项目,一个名为TestBwrc.Ps的C ++ Brokered Windows ProxyStub。

我添加对TestBwrc项目的引用,并将项目链接器属性设置为Register Output。

然后我构建解决方案。

我在解决方案中添加了一个新项目,一个名为TestBwrc.Client的C#空白Windows应用商店应用。我添加了对TestBwrc.Ps项目的引用。 解决方案构建时没有错误或警告。

在App.xaml.cs OnLaunched方法中,我添加了TestBwrc.Class c = new TestBwrc.Class(); Visual Studio抱怨"无法解析符号' Class'" 解决方案构建时没有错误或警告。

运行应用程序会抛出异常,TestBwrc.Class未注册。

我错过了什么?

编辑:

同样在TestBwrc.Client上,我将Extensions标签添加到应用程序清单中,其ClassId为TestBwrc.Class,路径值为" .. \ Debug \ TestBwrc.Ps"

1 个答案:

答案 0 :(得分:0)

问题是路径值" .. \ Debug \ TestBwrc.Ps"在我的编辑中提到的ActivateableClassAttribute中。虽然%ProgramFiles%将被扩展,但..不是,也不是$(SolutionDir)。所以for dev唯一有效的值是C:\ dev \ TestBwrc \ Debug \ TestBwrc.Ps

  <Extensions>
    <Extension Category="windows.activatableClass.inProcessServer">
      <InProcessServer>
        <Path>clrhost.dll</Path>
        <ActivatableClass ActivatableClassId="TestBwrc.Class" ThreadingModel="MTA">
          <ActivatableClassAttribute Name="DesktopApplicationPath" Type="string" Value="C:\dev\TestBwrc\Debug\TestBwrc.Ps" />
        </ActivatableClass>
      </InProcessServer>
    </Extension>
  </Extensions>