如何在Visual Studio 2015中将两个项目WinRT与Windows.Forms合并

时间:2016-07-28 19:52:16

标签: c# winforms windows-runtime visual-studio-2015

在尝试使用类似app-store的方法学习C#和玩具的过程中,我现在有两个应用程序;

  1. 网络电视指南(WinRT公开密封的暴露C#分类支持)
  2. 一个网络电视播放器(winforms + WebBrowser/ActiveX)和。
  3. 第一个意图是将#1(WinRT)上传到appstore - 并提供指向我私人网页上托管的#2的链接...

    但我想知道如何将两个项目合并在一个解决方案中,以便将它们组合在一起。我打赌这也会消除我对WFC服务(IPC)通信的一些要求。

    结构如下,以提供一点见解;

    enter image description here enter image description here

    我可以推出'我的Windows.Forms应用程序中的WinRT TVGuide - 无需运行两个安装程序包 - 并通过Process进行调用?

1 个答案:

答案 0 :(得分:0)

您可以通过将两个项目放在同一个解决方案中并将所有共享核心代码(如果有)移动到PCL项目来简化未来的开发。但是,你赢得的其他计划确实无效。

只有在用户的计算机上已经安装了应用程序,才能从Windows窗体应用程序启动WinRT应用程序。如果应用程序可用,您可以使用IApplicationActivationManager COM接口启动它。

我认为您最好的选择是依靠安装WinRT应用程序的用户,然后从大约页面或其他内容链接到Windows窗体应用程序。

这是一篇很好的文章,详细介绍了IApplicationActivationManager的使用:

Launching Windows Store Apps Programmatically

修改:经过进一步调查,看起来我可能略有错误。实际上有一种合法的方式来支持Windows Store应用程序,但它需要跳过很多环节。但是,您应该能够使用自己的安装程序安装Windows窗体应用程序和WinRT应用程序,然后按照您的意愿启动WinRT应用程序。

以下是快速参考步骤。有关详细说明,请参阅Install a Windows 8 Modern UI app without the Windows Store

Windows 8和8.1

  1. 启用Allow all trusted apps to install组策略
  2. 使用目标PC上信任的CA对应用程序进行签名
  3. 运行PowerShell命令以安装该应用程序。例如Add-AppxPackage C:\app1.appx –DependencyPath C:\winjs.appx
  4. 在某些情况下,需要使用企业侧载产品密钥。查看链接的答案以获取有关该答案的更多详细信息。
  5. Windows 10

    我还看了一下它在Windows 10上是如何完成的,这是我的发现。微软已采取更轻松的方法将应用程序侧载到Windows 10安装。与早期版本的不同之处如下:

    • 您可以使用企业策略或通过设置
    • 解锁设备以进行侧载
    • 不需要许可证密钥
    • 设备不必加入域

    侧载的要求如下:

    • 需要解锁设备以进行侧载(启用解锁策略)
    • 分配给应用的证书
    • 签名的应用程序包

    最后这里是采取的步骤:

    • 启用旁加载 - 您可以使用MDM提供程序推送策略,也可以使用“设置”。
    • 信任该应用 - 将安全证书导入本地设备。
    • 安装应用程序 - 使用PowerShell安装应用程序包。

    请查看this article,了解有关如何在Windows 10上实现应用程序边加载的详细步骤。