我想将Windows窗体应用程序中的代码重用到我的Window商店应用程序 如果我替换并编译它,它会产生编译时错误,我无法找到解决方法。
private void Text_Click(object sender, RoutedEventArgs e)
{
var processinfo = new ProcessStartInfo();
String arg ="\"C:\\Users\\chnpn\\Documents\\NetBeansProjects\\PartyDemo\\dist\\PartyDemo.jar\"";
String path ="C:\\Users\\chnpn\\Documents\\NetBeansProjects\\PartyDemo\\newtest.wav";
//processinfo.FileName = "C:\\FFMPEG\\bin\\ffmpeg.exe";
//processinfo.Arguments = "-i 360.mp4 -vn -y 360_1.wma";
processinfo.FileName = "C:\\ProgramData\\Oracle\\Java\\javapath\\java.exe";
processinfo.Arguments = "-jar " + arg + " \"" + path + "\"";
//processinfo.Arguments = "-jar " + arg;
processinfo.RedirectStandardOutput = true;
processinfo.RedirectStandardError = true;
processinfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
processinfo.UseShellExecute = false;
processinfo.LoadUserProfile = true;
processinfo.CreateNoWindow = true;
//processinfo.EnvironmentVariables.Add("HOME", @"C:\Users\napatsawan\.ffmpeg");
Process process = Process.Start(processinfo);
process.OutputDataReceived += new DataReceivedEventHandler(setOutput);
process.BeginOutputReadLine();
process.Start();
process.WaitForExit();
// We may not have received all the events yet!
Thread.Sleep(5000);
// Console.ReadLine();
}
它显示以下
的错误ProcessStartInfo
ProcessWindowStyle
Process
DataReceivedEventHandler(setOutput)
答案 0 :(得分:0)
WPF .csproj文件包含一个附加属性:
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
只需将其放在第一个<PropertyGroup>...</PropertyGroup>
部分,无论在哪里都无关紧要。
{60dc8134-eba5-43b8-bcc9-bb4bc16c2548}
的含义是这是一个WPF项目,而{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
表示一个C#项目。您可以从SO Question
答案 1 :(得分:0)
Windows应用商店应用与桌面应用不同!桌面应用程序具有的命名空间,类和方法。
如果您尝试在Windows应用商店应用中运行此代码,那么我可以告诉您,应用程序是沙箱,他们无法使用不属于他们的资源。
您无法在Windows应用商店应用上运行命令:
How can I run a command in windows store app?
但为什么需要Windows应用商店应用? Windows 8/10还使用桌面应用程序 - WPF,WF等。
答案 2 :(得分:0)
并非所有.NET库都可用于Windows应用商店。
Windows商店不在表单上运行,它在布局上运行。
在Winforms应用程序中同步发生的许多操作必须在Windows应用商店应用程序中异步处理。
如前所述,Windows应用商店应用程序运行在&#34; sandbox&#34;意味着他们完全忘记了正在运行的其他一切。他们是&#34; Apps&#34;不是&#34;应用程序&#34;你的应用程序应该自己完成它需要做的所有事情。
答案 3 :(得分:0)
桌面到UWP Bridge似乎是为处理这种情况而设计的
https://developer.microsoft.com/en-us/windows/bridges/desktop