对于Raspberry Pi2上的Windows 10 IoT Core应用程序,我需要使用启动器应用程序或StartUp-Task,它会创建我的应用程序的卷影副本并启动它。我需要使用这种方法能够在运行时替换DLL,而无需锁定DLL并且不会中断正在运行的服务。这是运行它的设备所需要的,远程在某个遥不可及的地方,部署在客户的站点上,我需要运行我的应用来为设备提供服务。更新我的DLL后,我会重新启动它,它将与新库一起运行,启动启动器作为默认应用程序,然后启动我的应用程序。
在Windows 10和UWP之前,方法是使用.NET Framework中mscorlib.dll的System.AppDomain在缓存目录中创建新的AppDomain。配置,可执行文件和DLL将被复制到缓存目录并从那里运行。这使原始DLL可用于替换,并且不会锁定它们。这也是IIS和webapps中使用的一种非常有用的技术,即使代码需要更新,它也需要在没有中断的情况下运行。开放威胁将继续为打开请求提供服务,直到完成这些请求,并使用新的更新版本为新请求提供服务。
现在在Windows 10 System.AppDomain不再可用。我尝试过Windows.System.ProcessLauncher,但遇到了几个问题。首先,我必须在注册表中注册EXE才能启动它。然后它告诉我我只能从app容器中运行它。到目前为止,我没有让它工作。这只是一个单调乏味和混乱的方法恕我直言。
现在我的问题是:在Windows 10 IoT Core上,您将使用什么作为旧方法的替代方案?有没有人可以分享一小段示例代码?或者是指向正确方向的链接?任何意见,将不胜感激。
答案 0 :(得分:2)
此方法与通用Windows平台应用程序模型不兼容。
您必须推送应用的更新包。