加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

.net – 在非Metro应用程序中使用自定义Windows运行时组件

发布时间:2020-12-14 04:37:09 所属栏目:Windows 来源:网络整理
导读:想象一下,您有一个复杂的WinRT代码框架,您希望从C Metro Apps和C#Desktop Apps访问这些代码. 有没有办法在非Metro应用程序中包含WinMD? 解决方法 更新:这仅适用于 Windows 8.Microsoft在Windows 8.1中禁用了此功能. 就在这里.尝试通过引用管理器添加它们时
想象一下,您有一个复杂的WinRT代码框架,您希望从C Metro Apps和C#Desktop Apps访问这些代码.

有没有办法在非Metro应用程序中包含WinMD?

解决方法

更新:这仅适用于 Windows 8.Microsoft在Windows 8.1中禁用了此功能.

就在这里.尝试通过引用管理器添加它们时的块似乎是在Visual Studio本身内部实现的.添加后,Visual Studio会将引用的文件视为任何其他WinMD文件.

注意:此解决方案不受MICROSOFT支持!

要将自定义WinMD文件添加到任何非Metro应用程序,必须首先确保您的目标是.NET 4.5.这不适用于任何以前版本的.NET Framework.

一旦定位.NET 4.5,卸载项目文件并打开它进行编辑.然后,在最后一个< PropertyGroup>之后添加以下代码在项目文件中:

<PropertyGroup>
    <TargetPlatformVersion>8.0</TargetPlatformVersion>
  </PropertyGroup>

接下来,找到< ItemGroup>包含您的引用并添加以下内容:

<Reference Include="{Namespace}">
  <HintPath>{Path to WinMD file}</HintPath>
</Reference>

虽然我无法保证这样做不会产生任何问题,并且鉴于Microsoft已经非常清楚无论您使用CLR的哪个Framework Profile加载相同的程序集,我强烈怀疑这不会导致任何问题.危害.

关于类库的说明.如果将WinMD包含在非Metro类库中,然后在非Metro应用程序中引用该库;您将无法访问类库中公开的任何自定义WinRT类型,而无需在应用程序中引用WinMD文件或提供包装类型.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读