我的UWP应用程序是认可的VPN服务提供商。项目解决方案的布局是-
这是通过Appx Manifest文件中的以下设置实现的-
<Applications>
<Extensions>
<Extension Category="windows.backgroundTasks" Executable="MyVPN.exe" EntryPoint="MyVpnPluginAppBg.VpnBackgroundTask">
<BackgroundTasks>
<Task Type="controlChannel" />
<uap:Task Type="vpnClient" />
</BackgroundTasks>
</Extension>
</Extensions>
</Applications>
<!-- This "vpnClient" background task is required for VPN plug-in applications as it will be invoked by the platform whenever the plug-in
needs to perform work (i.e. connect, encapsulate, etc) -->
<Extensions>
<Extension Category="windows.activatableClass.inProcessServer">
<InProcessServer>
<Path>MyVpnPluginAppBg.dll</Path>
<ActivatableClass ActivatableClassId="MyVpnPluginAppBg.VpnBackgroundTask" ThreadingModel="both" />
<ActivatableClass ActivatableClassId="MyVpnPluginAppBg.TemporaryBackgroundTask" ThreadingModel="both" />
</InProcessServer>
</Extension>
</Extensions>
在Visual Studio 15.7.5中,我尝试使用Windows应用程序打包项目功能。我没有使用什么也不做的MyVPN.exe(XAML UI),而是引入了具有更多功能的桌面GUI(因为使用的大多数API都是Win32特定的,并且UWP不允许使用)。新的项目布局为-
我将Package项目中的Appx设置更改为改为使用MyVPNWin32GUI.exe。程序包安装正常,MyVPNWin32GUI.exe运行正常。但是,当我通过“设置”应用启动VPN连接时,未加载我的VPN插件。我相信问题是后台任务没有作为软件包安装的一部分进行注册。尝试从系统应用程序启动VPN连接时,我在系统日志中看到-
服务器MyCompany.MyProductName_4.7.18.0_x86__edjcgkw48dhxt!App.AppXvmk8xta1bs44hd5a11546za1aq3mjk1r.mca没有在所需的超时时间内向DCOM注册。
是否可以通过Win32 32可执行文件,UWP dll,桌面打包项目来实现我以前的UWP应用和UWP dll所做的工作?