Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# UWP安装SQL Server Express或其他先决条件_C#_Sql Server_Uwp - Fatal编程技术网

C# UWP安装SQL Server Express或其他先决条件

C# UWP安装SQL Server Express或其他先决条件,c#,sql-server,uwp,C#,Sql Server,Uwp,有没有办法从商店中发布的UWP应用程序安装必备软件? 我想开发几个使用SQL Server的多用户UWP应用程序 首先,我试图让网络中的所有SQL server实例都能够选择一个(如果存在),或者如果不存在,则提供安装服务器的选项。似乎UWP无法使用任何现有方法获取这些实例: net core中不存在SqlDataSourceEnumerator SqlClientFactory.CanCreateDataSourceEnumerator始终为false SmoApplication.Enum

有没有办法从商店中发布的UWP应用程序安装必备软件? 我想开发几个使用SQL Server的多用户UWP应用程序

首先,我试图让网络中的所有SQL server实例都能够选择一个(如果存在),或者如果不存在,则提供安装服务器的选项。似乎UWP无法使用任何现有方法获取这些实例:

  • net core中不存在SqlDataSourceEnumerator
  • SqlClientFactory.CanCreateDataSourceEnumerator始终为false
  • SmoApplication.EnumAvailableSqlServer也会引发异常,无法从UWP使用,因为它似乎也使用SqlDataSourceEnumerator
然后我尝试使用System.Diagnostics中的Process来启动cmd,使用“net view”获取所有工作组计算机,然后通过powershell或cmd在这些计算机上运行服务以检查sql express是否存在。但是,进程不能从UWP应用程序中使用,总是抛出拒绝访问(即使使用“runas”,也不能使用,因为它需要Process.StartInfo.UseShellExecute,这会引发“平台”错误)。我希望使用cmd或powershell下载并安装SQL Server。当我使用winforms时,我甚至从安装程序中安装了它(使用innosetup)


因此,只要您可以从UWP连接到几乎任何类型的数据库服务器,我们如何使用应用商店交付需要任何先决条件的应用程序?

出于安全要求,无法从商店中发布的UWP应用程序安装先决条件。几乎所有UWP应用程序都在沙箱中运行,这限制了UWP应用程序获取其他软件的实例。UWP应用程序中进程的使用受到安全要求的限制,因此您不能使用“网络视图”让所有工作组计算机检查SQL Server Express是否存在。是的,在安全性方面存在许多缺点。因此,这些场景中的一个解决方案是引导用户完成所有“安装后”过程。或者放弃本地网络数据库解决方案。