0

我正在使用代理组件构建 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 Redistributable Package。我还在同一目录中放置了一个额外的依赖项 .dll,就像我在所有开发过程中所做的那样。

我尝试过的其他一些事情:

  • 使用 %PROGRAMFILES% 而不是C:\Program Files (x86)作为清单中 ActivatableClassAttribute 的值。
  • 使用“STA”、“MTA”和“Both”作为线程模型。
  • 在 ActivatableClassAttribute 值路径中添加了尾部斜杠。
  • 完全卸载所有内容并从头开始重试。
  • 向类显式添加一个空的默认构造函数RfidDevice
4

0 回答 0