W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Tauri v1.3 新增了一種基于 NSIS 安裝程序框架的新 Windows 安裝程序類型。與 WiX 不同,NSIS 本身也可以在 Linux 和 macOS 上運(yùn)行,這使得在非 Windows 主機(jī)上構(gòu)建許多 Tauri 應(yīng)用程序成為可能。請注意,這目前被認(rèn)為是高度實(shí)驗(yàn)性的,可能不適用于每個(gè)系統(tǒng)或每個(gè)項(xiàng)目。因此,只有在本地虛擬機(jī)或 GitHub Actions 等 CI 解決方案不適用時(shí),才應(yīng)將其視為最后的選擇。
由于 Tauri 官方僅支持 MSVC Windows 目標(biāo),設(shè)置稍微復(fù)雜一些。
首先,請確保所有 Tauri 依賴項(xiàng)至少是 1.3 版本,如果不確定如何操作,請查看依賴項(xiàng)更新指南。
一些 Linux 發(fā)行版在它們的軟件倉庫中提供了 NSIS,例如在 Ubuntu 上,您可以通過運(yùn)行以下命令來安裝 NSIS:
Ubuntu
sudo apt install nsis
但在許多其他發(fā)行版中,您必須自行編譯 NSIS,或手動(dòng)下載未包含在發(fā)行版二進(jìn)制包中的存根和插件。例如,F(xiàn)edora 只提供二進(jìn)制文件,但沒有提供存根和插件:
Fedora
sudo dnf in mingw64-nsis
wget https://github.com/tauri-apps/binary-releases/releases/download/nsis-3/nsis-3.zip
unzip nsis-3.zip
sudo cp nsis-3.08/Stubs/* /usr/share/nsis/Stubs/
sudo cp -r nsis-3.08/Plugins/** /usr/share/nsis/Plugins/
在 macOS 上,您需要使用 Homebrew 安裝 NSIS:
macOS
brew install nsis
由于默認(rèn)的 Microsoft 鏈接器僅在 Windows 上工作,因此我們還需要安裝新的鏈接器。為了編譯用于設(shè)置應(yīng)用程序圖標(biāo)等內(nèi)容的 Windows 資源文件,我們還需要 LLVM 項(xiàng)目的一部分,即 llvm-rc 二進(jìn)制文件。
Ubuntu
sudo apt install lld llvm
macOS
brew install llvm
在 macOS 上,還需要將 /opt/homebrew/opt/llvm/bin 添加到您的 $PATH 中,如在安裝輸出中建議的那樣。
假設(shè)您要構(gòu)建適用于 64 位 Windows 系統(tǒng)的應(yīng)用程序:
rustup target add x86_64-pc-windows-msvc
為獲取 msvc 目標(biāo)所需的 Windows SDK,我們將使用 xwin 項(xiàng)目:
cargo install xwin
然后,您可以使用 xwin 命令行工具將所需的文件安裝到您選擇的位置。請記住這個(gè)位置,因?yàn)槲覀儗⒃谙乱徊街行枰T诒局改现?,我們將在主目錄中?chuàng)建一個(gè)名為 .xwin 的目錄。
xwin splat --output ~/.xwin
如果出現(xiàn)以下錯(cuò)誤消息而失?。?br>
Error: failed to splat Microsoft.VC.14.29.16.10.CRT.x64.Desktop.base.vsix
Caused by:
0: unable to symlink from .xwin/crt/lib/x86_64/LIBCMT.lib to libcmt.lib
1: File exists (os error 17)
您可以嘗試將 --disable-symlinks 標(biāo)志添加到命令中:
xwin splat --output ~/.xwin --disable-symlinks
要使 Rust 編譯器使用這些文件,首先需要在項(xiàng)目中創(chuàng)建一個(gè) .cargo 目錄,并在其中創(chuàng)建一個(gè)名為 config.toml 的文件,內(nèi)容如下。請確保根據(jù)您的實(shí)際情況更改路徑。
.cargo/config.toml
[target.x86_64-pc-windows-msvc]
linker = "lld"
rustflags = [
"-Lnative=/home/username/.xwin/crt/lib/x86_64",
"-Lnative=/home/username/.xwin/sdk/lib/um/x86_64",
"-Lnative=/home/username/.xwin/sdk/lib/ucrt/x86_64"
]
請記住,此文件特定于您的機(jī)器,因此如果您的項(xiàng)目是公開的或?qū)⑴c他人共享,我們不建議將其提交到 git。
現(xiàn)在,只需將目標(biāo)添加到 tauri build 命令中即可:
npm run tauri build -- --target x86_64-pc-windows-msvc
yarn tauri build --target x86_64-pc-windows-msvc
pnpm tauri build --target x86_64-pc-windows-msvc
cargo tauri build --target x86_64-pc-windows-msvc
The build output will then be in target/x86_64-pc-windows-msvc/release/bundle/nsis/.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: