本文來告訴大家如何基於 .NET 5 框架和 .NET 6 SDK 進行完全單文件發布,這是對 WPF 應用程序進行獨立發布,生成的是完全單文件的方法
在之前的版本,盡管也是基於 .NET 5 框架的 WPF 應用,然而在 .NET 5 的 SDK 下,除非是采用框架依賴的方法,否則大部分應用發布作為單文件將會運行失敗。在 .NET 6 的 SDK 下,官方修復了一些文檔,對於大部分 WPF 應用程序來說,可以在 .NET 6 的 SDK 下,可以發布為完全的單文件
發布方法是在參數加上 -p:PublishSingleFile=true 和 -p:IncludeNativeLibrariesForSelfExtract=true 兩個參數
dotnet publish -r win-x86 -c release -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true
用此方法的要求是,如果在 WPF 的 XAML 或者業務邏輯里面,有用到 Content 的內容都需要進行更改,有使用到當前應用程序所在文件夾附近的其他的文件的邏輯,也需要進行更改。畢竟是單文件發布,也只有一個文件
更改的方法是將原本的讀取文件的邏輯,放入到程序集里面,通過程序集讀取
當前的 WPF 暫時不支持裁剪的功能,完全單文件無框架依賴發布的空應用有 130M 左右
