Как реализовать брокерский компонент: приложение для Магазина Windows

Используя инструкции здесь: http://visualstudiogallery.msdn.microsoft.com/527286e4-b06a-4234-adde-d313c9c3c23e

Запуск Visual Studio 2013 в качестве администратора с обновлением 2.

Я создаю проект C# BWRC, TestBwrc. В Class.cs я добавляю свойство int, которое возвращает 1.

Я добавляю в решение новый проект - C++ Brokered Windows ProxyStub с именем TestBwrc.Ps.

Я добавляю ссылку на проект TestBwrc и устанавливаю свойства компоновщика проекта в Register Output.

Затем я строю решение.

Я добавляю в решение новый проект, приложение для хранения пустых окон C#, которое называется TestBwrc.Client. Я добавляю ссылку на проект TestBwrc.Ps. Решение строится без ошибок и предупреждений.

В методе App.xaml.cs OnLaunched я добавляю TestBwrc.Class c = new TestBwrc.Class(); Visual Studio жалуется: "Не удается разрешить символ" Класс "". Построение решения без ошибок и предупреждений.

При запуске приложения возникает исключение, TestBwrc.Class не зарегистрирован.

Что мне не хватает?

Редактировать:

Также на TestBwrc.Client я добавил тег Extensions в манифест приложения с ClassId класса TestBwrc.Class и значением пути "..\Debug\TestBwrc.Ps"

1 ответ

Решение

Проблема заключается в значении пути "..\Debug\TestBwrc.Ps" в ActivateableClassAttribute, как упомянуто в моем редактировании. Хотя%ProgramFiles% будет расширен, .. нет, равно как и $(SolutionDir). Таким образом, для 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>
Другие вопросы по тегам