问题标签 [winrt-component]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
67 浏览

c# - 无法在我的 Visual basics 2010 C# 项目中使用 WinRT 库

因此,我一直在尝试 Windows.Management.Deployment从 Windows 运行时的命名空间访问 PackageManager 类,该命名空间用于获取安装在系统中的 Metro Apps 的详细信息。

有人告诉WinRT我为桌面应用程序使用库,以便我可以在我的项目中引用这些库。

按照本演练中的步骤进行操作后,我应该能够Windows.Management.Deployment在我的项目中添加对命名空间的引用。但是,当我尝试更改上述博客中给出的TargetPlatformVersionin*.csproj文件时,我收到以下错误。

我的结果

此外,在上面链接所示的参考管理器对话框中,有一个 Windows 选项卡,其中提供了所需的库。

但我的参考经理如下: 参考经理

我注意到所有程序都是在 Visual Studio 2012 + 中完成的,而我在 2010 版本中进行项目。此外,该过程中使用的 .NET Framework 版本是 4.5(VS2012 的默认值),而我使用的是 4.0 版(VS2010 的默认值)。这些是否与我面临的问题有关?

如果我犯了一些明显的错误,请承担并指导我解决这个问题。谢谢你。

0 投票
0 回答
158 浏览

c# - 使用 WinRT 代理组件的 TypeLoadException

我正在使用代理组件构建 Windows 应用商店应用程序。代理组件旨在实现与设备上的 RFID 阅读器的交互。当我尝试初始化代理组件公开的类的实例时,我收到了一条System.TypeLoadException消息Could not find or load a type. (Exception from HRESULT: 0x80131522).

我正在反对在两个不同的平板电脑设备上全新安装 Windows 8.1 Professional。两者目前都遇到此问题。该解决方案过去有效;我最近所做的事情一定是造成这种情况的原因。我还验证了可以使用硬件供应商提供的示例应用程序访问 RFID 阅读器。

我的 Package.appxmanifest 文件与此类似:

该解决方案是针对 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
0 投票
2 回答
536 浏览

webview - 使用 AllowForWeb 类从引用的 WinRT 组件调用 WebView 页面方法

我有一个内部带有 WebView 的 XAML 页面(例如 MainPage.xaml)。我也有 WinRT 组件,其类标有 [AllowForWeb] 属性。该组件是从 MainPage.xaml 所在的项目中引用的,并且在代码隐藏中使用了AddWebAllowedObject 方法。由于循环依赖,我无法引用主项目。

如何从组件类调用 MainPage.xaml.cs 方法?很平常的情况。有一些标准的方法吗?

例如。我在 RT 组件中有一个可以从 JavaScript 调用的方法

0 投票
1 回答
69 浏览

c# - 从其 winrt 组件获取 Windows 8.1 通用应用程序状态/公共变量访问权限

我有一个通用 Windows 平台应用程序,我使用 winrt 组件(解决方案中的单独项目)进行背景检查。我正确注册它,系统每 15 分钟启动一次我的 winrt 课程。问题是我的应用程序使用相同的文件并进行与背景检查器相同的检查。所以我需要知道我的应用程序是否还活着(后台或前台)以跳过后台检查以避免多线程文件访问。有什么方法可以从 winrt 组件访问我的应用程序的状态,或者查询系统我的应用程序是否处于活动状态?

0 投票
0 回答
36 浏览

c# - WinRT组件在Windows还是Windows phone环境下如何区分?

我有一个适用于 Windows/WinPhone 8.1 的 Windows 通用应用程序,它使用 WinRT 运行时组件进行后台处理。Win 和 WP 版本在后台处理方面存在细微差别,所以我想考虑这一点。然而,WinRT 组件仅为 WinRT 编译(两个项目使用一个代码库),所以我不能使用预定义的常量 WINDOWS_APP 和 WINDOWS_PHONE_APP - 它总是 WINDOWS_APP 。

但也许有一种方法可以在运行时动态区分 Win 和 WinPhone 环境?

0 投票
0 回答
233 浏览

windows-runtime - 在完全信任的 UWP 中加载扩展 (.dll)?

可以在 WinRT 应用程序中以完全信任模式加载整个进程,并将其添加到其 AppManifest:

虽然它可以工作并且我可能会从中创建一个服务,但我想知道是否也可以以相同的完全信任方式加载 DLL。

例如,

所以我可以在 MyWin32orCLR.dll 上调用一个具有完全信任访问权限的函数。

我知道这样的东西不会发布到 Windows 应用商店,但这很好;我正在尝试创建一个内部应用程序。

0 投票
0 回答
140 浏览

c++ - 如何在 Windows 运行时组件 C++ 中调用 TagLib

所以我在 WinRT 组件中使用 TagLib 并尝试获取 mp3 文件的专辑艺术,然后将它们保存到单独的文件中。到目前为止,我正在使用此代码:

这段代码应该没有我知道的错误,但这里是我收到的异常:

对此的任何帮助将不胜感激!

编辑: 所以,这被标记为重复,但我仍然无法解决问题。如何正确链接 Taglib?我安装了 Nuget 包,我这样做错了吗?

0 投票
1 回答
1494 浏览

c# - 从 C# 使用 C++/WinRT 组件

我有一个用 C++/CX 编写的项目(动态库),这个项目由一个用 C#(针对 x86 和 ARM32)编写的 Windows 10 通用应用程序使用。
我想将库重写为C++/WinRT以使用 vanilla C++。

Q1:是否可以创建一个 C++/WinRT DLL 并从 C# 中使用它?
Q2:如何设置 C++/WinRT 项目以使其能够从商店应用程序中使用?

0 投票
1 回答
512 浏览

uwp - UWP 应用程序的预安装配置任务未运行

对于编写为 Windows 通用应用程序的 LOB 应用程序,我想在安装应用程序时注册一个后台任务,而无需启动它。据我所知,文档将我指向 Package.appxmanifest 中的预安装配置功能,我发现了这个

但是,使用此扩展程序时,后台任务未注册,我也看不到它运行任何东西。

这是我在 Package.appxmanifest 中的预安装配置扩展:

为了验证任务和入口点设置是否正确,我使用更新任务功能注册了它,增加了应用程序版本,再次部署它,后台任务已注册,一切都按预期工作。

这是我在 Package.appxmanifest 中的更新任务扩展:

预安装的配置任务是否受到某种限制或需要其他配置?如何调试此类问题?没有断点被击中。

Foo.BackgroundTasks.DefaultRegistrationBackgroundTask 的代码:

0 投票
2 回答
591 浏览

delphi - Delphi - 使用 TTask.Future 对 WinRT API 进行异步调用

这个问题相关,我正在尝试实现一个使用 WinRT API 设置桌面壁纸的过程。为了模仿awaitC# 中的功能,我使用了此处此处概述的TTask.Future链接) 。

我的实现如下所示:

据我了解,当我尝试获取lFutureTask.Value时,应用程序会暂停当前线程,直到 lFutureTask 完成(如果尚未完成),然后提供该值。但是,当我运行应用程序时,我收到错误消息:EOleException with message 'A method was called at an unexpected time'. 休息在这一行:lStorageFile:=liao_storagefile.GetResults;

我是 TTask 和 WinRT API 的新手——所以我确定我在这里遗漏了一些非常基本的东西。希望能提供任何有关导致此问题的原因或我可以采取不同措施来解决此问题的任何指示。提前致谢。