TypeLoadException с использованием брокерского компонента WinRT

Я создаю приложение для Магазина Windows с использованием брокерского компонента. Компонент брокера предназначен для обеспечения возможности взаимодействия с RFID-считывателем на устройстве. Когда я пытаюсь инициализировать экземпляр класса, предоставляемый брокерским компонентом, я получаю System.TypeLoadException с сообщением Could not find or load a type. (Exception from HRESULT: 0x80131522).

Я работаю против чистой установки Windows 8.1 Professional на двух разных планшетных устройствах. Оба в настоящее время испытывают эту проблему. Решение работало в прошлом; что-то, что я сделал недавно, должно быть причиной этого. Я также убедился, что к считывателю RFID можно получить доступ с помощью примера приложения, предоставленного поставщиком оборудования.

Мой файл Package.appxmanifest выглядит примерно так:

<Package ...>
  ...
  <Extensions>
    <Extension Category="windows.activatableClass.inProcessServer">
      <InProcessServer>
        <Path>clrhost.dll</Path>
        <ActivatableClass ActivatableClassId="MyApp.RFID.Component.RfidDevice" ThreadingModel="STA">
          <ActivatableClassAttribute Name="DesktopApplicationPath" Type="string" Value="C:\Program Files (x86)\MyApp\RFID" />
        </ActivatableClass>
      </InProcessServer>
    </Extension>
  </Extensions>
</Package>

Решение строится для платформы x86. Я зарегистрировал свои компоненты на целевом устройстве в C:\Program Files (x86)\MyApp\RFID используя следующие команды (согласно этому техническому документу):

icacls . /T /grant "ALL APPLICATION PACKAGES":RX

regsvr32 MyApp.RFID.Proxy.dll

Я установил распространяемый пакет Visual Studio 2013 x86 на целевое устройство. Я также поместил дополнительную DLL-библиотеку зависимостей в тот же каталог, как я делал это на протяжении всей моей разработки.

Некоторые другие вещи, которые я пробовал:

  • Использование%PROGRAMFILES% вместо C:\Program Files (x86) в качестве значения для ActivatableClassAttribute в манифесте.
  • Использование 'STA', 'MTA' и 'Both' в качестве моделей потоков.
  • Добавлена ​​косая черта в путь значения ActivatableClassAttribute.
  • Полностью удалил все и попробовал снова с нуля.
  • Явно добавьте пустой конструктор по умолчанию в RfidDevice учебный класс.

0 ответов

Другие вопросы по тегам