2017-04-08 117 views
1

我尝试使用命令行来避免一些问题,使用Windows 7和的LocalDB 2016 下面是代码:C#cmd命令不工作在Windows 7

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(OS我用它来开发),但是当我移动程序到Windows 7,cmd.exe开始,但后来关闭了几毫秒(没有错误,也不例外),而不是创建localedb实例。

如果在Windows 7上手动输入sw.WriteLine的代码,它工作正常,所以用的LocalDB没有问题,2016年

还有就是要解决这个问题的任何方式?

有代码的任何部分进行编辑与Windows 7的工作(和Windows 10也是如此)?

+0

你有没有试着写任何痕迹的日志? – kennyzx

+0

这个不清楚。你想用localdb做什么?你的意思是由Micorsoft提供的本地数据库系统?:) –

+0

@kennyzx不,我不会,对不起,但我可以用这个跟踪日志吗? – Andrea

回答

0

cmd.ReadKey();

在你的代码的末尾。它将在关闭cmd控制台之前等待一个密钥。

编辑

替换CMD与控制台在Windows 7及以上(按Ctrl + H在Visual Studio中查找和替换所有)

作品。