WPF 專案遷移到.Net Core中時居然出了一堆問題...(很無語)
今天在使用的時候居然發現Process.Start居然打不開Url鏈接了? 報 找不到指定檔案 的例外?!
一、bug重現
首先以.Net Core 3.1框架 中一個Console專案 打開百度為例:

運行然后你就會得到:

納悶的是,這種方法打開Url在.Net Framework中是沒問題的..
二、解決方法
方案一:使用windows系統自帶的資源管理器來打開Url
Process.Start("explorer", "https://www.baidu.com");
你就可以得到一個瀏覽器視窗,打開著百度網頁..
但是如果你的Url復雜一點的話,例如打開百度搜索what
Process.Start("explorer", "https://www.baidu.com/s?wd=what");
explorer表示不干,并直接給你拋了個檔案管理器視窗
所以這個方法只可以用于打開簡單的URL...
方案二:使用cmd中的start命令 可以打開任意形式的URL
string url = "https://www.baidu.com/s?wd=what"; Process p = new Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.UseShellExecute = false; //不使用shell啟動 p.StartInfo.RedirectStandardInput = true;//喊cmd接受標準輸入 p.StartInfo.RedirectStandardOutput = false;//不想聽cmd講話所以不要他輸出 p.StartInfo.RedirectStandardError = true;//重定向標準錯誤輸出 p.StartInfo.CreateNoWindow = true;//不顯示視窗 p.Start(); //向cmd視窗發送輸入資訊 后面的&exit告訴cmd運行好之后就退出 p.StandardInput.WriteLine("start "+url + "&exit"); p.StandardInput.AutoFlush = true; p.WaitForExit();//等待程式執行完退出行程 p.Close();
OK
以上的問題我只在Windows平臺上找到過,不知Linux和OSX有沒有...
Thanks
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/56738.html
標籤:.NET Core
上一篇:.net core WebAPI+EF 動態接收前臺json,并動態修改資料庫
下一篇:iNeuOS工業互聯平臺,開放設備驅動管理、服務驅動管理、云組態自定義畫布等,促進平臺開放、賦能和落地。發布:v2.3版本。
