我的朋友告诉我,他们的公司已经创建了一个软件,可以在安装exe时动态下载SQL服务器,甚至可以安装SQL服务器,并使用一些默认名称为实例命名。实际上他们有独立的应用程序,动态安装SQL服务器。数据不会集中存储在服务器上。我不知道他们一定是这么做的。这真的有可能吗?我们怎么做到这一点?
答案 0 :(得分:2)
我觉得这并不难。首先使用HttpWebRequest
类从Microsoft下载安装程序,然后按照安装指南安装SqlServer from the command prompt,方法是将其作为单独的进程启动并传递相应的参数。这是您希望从软件中执行此操作的时间。
否则它取决于您使用的安装程序 - 但大多数都可以编写脚本来下载文件并使用给定的命令行参数执行处理。
答案 1 :(得分:1)
是的,您可以通过设置安装程序的先决条件来执行此操作。
在解决方案探索中添加“设置和Deplyoment”项目类型选择安装项目并右键单击以打开上下文菜单。
然后单击“属性”菜单项。这将打开“设置属性页面”,点击“先决条件”按钮,这将打开一个新的对话窗口,在那里你可以选择“SQL服务器”作为安装的先决条件。
答案 2 :(得分:1)
您可以在部署项目中添加安装程序类,如下面突出显示的那样。
Add Sql server exe in the deployment project.
Add the commit event in this class like below.
public override void Commit(IDictionary savedState)
{
try
{
base.Commit(savedState);
Process p = System.Diagnostics.Process.Start("Your path of sql server exe");
if (!p.HasExited)
{
p.Refresh();
}
while (!p.WaitForExit(1000)) ;
}
catch (Exception)
{
throw new InstallException();
}
finally
{
startuppath = null;
}
}
您还可以根据以下先决条件对话框尝试在部署项目中使用sql server的先决条件。
答案 3 :(得分:0)
我相信sql server使用msi安装。
MSI可以从命令行运行,因此可能是他们使用安静开关安装msi并提供通常在设置UI中提供的所有必需参数。
答案 4 :(得分:0)
您几乎可以自动完成所有安装。你可以看一下MSDN Library。他们可能正在下载sql server的Express版本 - 我认为每个其他版本都有许可问题。
答案 5 :(得分:0)
此方法称为无提示安装或无人参与安装。请参阅here有关此内容的完整教程。