金魚都能懂的 .NET 6 開源程式 EXE 製作法
11 |
昨天在 Windows 11 啟動獨立 IE 應用程式展示的復刻版 ClassicIE,有讀者敲碗希望能提供 EXE 下載。
這一年來我陸續寫了一些 .NET 6 小工具,清一色都是用 Github 分享原始碼,沒想過直接提供 EXE。主要原因是 EXE 檔不透明,永遠要面對可能窩藏病毒木馬的質疑,下載的人難免擔心;若不幸出了問題,提供 EXE 的人總是第一個被懷疑,跳到黃河也洗不清。
用開源方式分享,所有程式碼都攤在陽光下經過檢驗,想用的朋友抓回去自己用 .NET 6 SDK 譯編,就有熱騰騰的 EXE 可用,它是我心中最無爭議的小工具分享方式。
不過,若是完全不懂程式的朋友,要他編譯 .NET 專案製作 EXE,豈不強人所難?失去使用小工具的權利?
如果不改程式,純粹只是將 .NET 6 專案編譯成 EXE,其實也沒那麼難。只要下載安裝 .NET 6 SDK,從 Github 下載專案 ZIP 解壓縮,再點擊開發者事先準備好的編譯批次檔,只需要幾分鐘,即使毫無程式背景的朋友也能從 .NET 專案產生 EXE 檔。
科普時間:.NET(發音為「搭內」)是微軟主推的程式平台,採開放原始碼可免費使用,並能在 Windows/MacOS/Linux 甚至手機上執行。
下面的影片將示範從下載安裝 .NET 6 SDK,Github 取得原始碼 ZIP 到編譯成 ClassicIE.exe 的完整過程,耗時約 3 分鐘。.NET 6 SDK 只需裝一次,未來編譯其他 .NET 專案甚至可縮短到一分鐘內搞定。
補充:publish.bat 為網路下載的可執行程式,Windows 預設會判定有風險禁止執行,故建議如影片中的操作,先解除鎖定並檢查內容是 dotnet publish ... 後再執行。
下載位址:
- .NET SDK (.NET SDK 唸法為「搭內 S-D-K)
註:此連結會下載 .NET 最新版 SDK,若與專案所需版本不同,可嘗試修改 .csproj 的<TargetFramework>netX.0</TargetFramework>
,大多能無痛升級。 - ClassicIE 專案
歡迎想用我的開源小工具卻完全不會 .NET 6 的朋友試看看,過程如有遇到問題,歡迎反映給我。(成功後記得跟朋友炫耀,你現在也是電腦有裝 .NET 6 SDK 還會編譯 EXE 的半專業人士惹)
Tutorial to setup .NET SDK, download source from Github and build projects to EXEs.
Comments
# by 工具人
如果是透過 GitHub Actions 自動 build exe檔、自動上傳到 Github Release 頁來釋出給別人下載來用 不曉得能不能避免出問題會被質疑 要完全的小白朋友為了執行檔裝一整包SDK 總覺得太狠了
# by Jeffrey
to 工具人,感謝,回覆在此 https://www.facebook.com/darkthread.net/posts/pfbid02bw2hKnNExmq3TmJGveYWEBkgUuHFHJKgQcZsqqfmk2Hnu9mo7yf3vcHSKjr3kGvwl
# by joyce
感謝大大分享了
# by Rex
不好意思打擾了,如果要用.NET Framework編譯的話,程式碼需要怎麼寫呢,.NET 6幾乎都要在裝桌面執行程式,Framework感覺可以少一些需要安裝的機會。
# by Jeffrey
to Rex, .NET 6 可以自帶 Runtime 包成單一 .exe 檔(甚至把參照 DLL 也包進去),客戶端不需要安裝 .NET 6 Runtime (當然有安裝更好, exe 可以從 60MB 減到 10MB 以下),我的桌面小工具現在都用這種方式部署,未必要走回頭路。 參考: https://blog.darkthread.net/blog/net5-single-file-deployment/ https://blog.darkthread.net/blog/dotnet6-publish-notes/
# by john
已成功做出.EXE檔並執行,但開出來是空白頁的,如果我想開啟後自動到指定網頁,該如何修改?
# by john
回看編程,找到Program.cs,改這個就可以了,謝謝
# by Yllin
但是現在會被強制導到Edge去,不知有何方式可不讓它轉至Edge啊?
# by John
to Yllin 在EDGE設定,edge://settings/defaultBrowser,不允許"允許在 Internet Explorer 模式中重新載入網站 (IE 模式)"
# by R
設定edge://settings/defaultBrowser,不允許"允許在 Internet Explorer 模式中重新載入網站 (IE 模式)後還是會被強制導到Edge 請問黑暗大哥要如何處理
# by Jeffrey
to R, 這是新版 Edge 加裝元件造成的,與此設定應該無關。細節參考這篇:https://blog.darkthread.net/blog/ie11-desktop-app-2023-feb/