Как реализовать брокерский компонент: приложение для Магазина 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>