我尝试使用命令行来避免使用Windows 7和LocalDB 2016的某些问题。 这是代码:
Process cmd = new Process();
ProcessStartInfo infocmd = new ProcessStartInfo();
// infocmd.CreateNoWindow = true; (using when code is ok for win 7)
infocmd.Verb = "runas";
infocmd.FileName = "cmd";
infocmd.RedirectStandardInput = true;
infocmd.UseShellExecute = false;
cmd.StartInfo = infocmd;
cmd.Start();
using (StreamWriter sw = cmd.StandardInput)
{
sw.WriteLine("sqllocaldb stop localedb");
sw.WriteLine("sqllocaldb delete localedb");
sw.WriteLine("sqllocaldb create localedb");
sw.WriteLine("sqllocaldb start localedb");
}
cmd.WaitForExit();
一切正常在Windows 10(我用来开发的操作系统)中正常工作但是当我将程序移动到Windows 7时,cmd.exe
启动,但它会在几毫秒之后关闭(没有错误且没有异常)并且未创建localedb
实例。
如果在Windows 7上手动键入sw.WriteLine
中的代码,它可以正常工作,因此LocalDB 2016没有问题。
有什么方法可以解决这个问题吗?
要编辑的代码部分可以与Windows 7(以及Windows 10)一起使用吗?
答案 0 :(得分:0)
穿戴
cmd.ReadKey();
代码末尾。它会在关闭cmd控制台之前等待一个键。
修改强>
将cmd替换为控制台(在Visual Studio中使用ctrl + H查找并全部替换)
适用于Windows 7及更高版本。