日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

不装 VS 自己编译安装 Windows Terminal

發(fā)布時(shí)間:2023/12/4 windows 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 不装 VS 自己编译安装 Windows Terminal 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Windows Terminal 一直沒(méi)有發(fā)布可以直接安裝的二進(jìn)制文件,想自行編譯的時(shí)候,看到系統(tǒng)需求中包含體積巨大的 Visual Studio 和 Windows SDK,腦袋都大了。直接下載其他人編譯好的安裝包又不放心,那么就想個(gè)辦法避免在本地環(huán)境編譯吧。

1. 編譯結(jié)果獲取

首先想到 Azure DevOps,這個(gè)可以簡(jiǎn)單理解成微軟提供的在線 CI 平臺(tái),寫好編譯文件就可以調(diào)用微軟的自帶所有編譯環(huán)境的鏡像直接在線編譯,并生成二進(jìn)制下載。這個(gè)服務(wù)可以使用 edu 教育賬號(hào)免費(fèi)使用,有 edu 郵箱的都可以用。我曾經(jīng)使用這個(gè)編譯過(guò)其他人久不更新的 MFC 項(xiàng)目。自己寫一個(gè) ,或者修改微軟生成的 azure-pipelines.yml 即可。

那么就從 GitHub 上把微軟的代碼拿過(guò)來(lái),再寫個(gè) pipeline 直接編譯吧。這時(shí)注意到,GitHub 上的項(xiàng)目中,居然已經(jīng)包含了寫好的 pipeline。

想了想,微軟寫的東西當(dāng)然自己也會(huì)用 Azure DevOps 啊。

接下來(lái)注意到,在 GitHub 倉(cāng)庫(kù)的 Readme 中,已經(jīng)有 Azure Pipelines 的編譯結(jié)果圖標(biāo)了。

單擊圖標(biāo),打開(kāi)軟的 DevOps 倉(cāng)庫(kù),可見(jiàn)每次 push 代碼都是會(huì)自動(dòng)編譯的。進(jìn)一步分析發(fā)現(xiàn),只有合并到 master 分支時(shí)會(huì)編譯出二進(jìn)制文件。

那么我們選擇其中一個(gè) master 分支的 CI job:

可以看到,右上角有 Artifacts 按鈕,說(shuō)明這個(gè) CI 是會(huì)上傳編譯出來(lái)的二進(jìn)制文件到服務(wù)器的。不清楚這三個(gè)有什么區(qū)別,我起初以為分別對(duì)應(yīng) x64、x86 和 arm64 的編譯結(jié)果,但我下載第一個(gè)壓縮包中,是包含了三個(gè)平臺(tái)的編譯結(jié)果的。壓縮包很大,150多M,內(nèi)容如下:

其中的 CascadiaPackage_0.0.1.0_x64.msix 就是我們要的二進(jìn)制安裝包。

2. 安裝嘗試

首先把系統(tǒng)調(diào)成開(kāi)發(fā)者模式。

然后雙擊 msix 文件直接安裝,發(fā)現(xiàn)安裝失敗,提示安裝包沒(méi)有簽名。

一番搜索之后,發(fā)現(xiàn)如果使用 VS 在本機(jī)直接部署,VS 會(huì)自動(dòng)幫你簽名。如果使用 VS 命令行工具直接編譯出來(lái)的結(jié)果,是沒(méi)有簽名的。

在 GitHub 倉(cāng)庫(kù)的一個(gè) issue?(https://github.com/microsoft/Terminal/issues/489#issuecomment-496170540)中有人提到,需要用 SignTool.exe 來(lái)為這個(gè)安裝包簽名。

3. 證書生成

簽名首先需要一個(gè)證書。在這里我們直接自簽發(fā)一個(gè)證書并添加信任就行了。參考剛才的 issue 中提到的腳本,打開(kāi)管理員權(quán)限的 Power Shell ,并 cd 到 msix 安裝包所在目錄中,執(zhí)行如下命令:

New-SelfSignedCertificate -Type Custom -Subject "CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" -KeyUsage DigitalSignature -FriendlyName "WindowsTerminal" -CertStoreLocation "Cert:\LocalMachine\My" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3", "2.5.29.19={text}")

此時(shí)會(huì)顯示一個(gè)證書指紋,復(fù)制其中指紋并替換掉下面命令中的 C5C9D98CE9A23FB72C20B4D039876F3D93C3E1FF,同時(shí)修改命令中的密碼。

  • $password = ConvertTo-SecureString -String "隨便設(shè)置一個(gè)密碼" -Force -AsPlainText

  • Export-PfxCertificate -cert "Cert:\LocalMachine\My\C5C9D98CE9A23FB72C20B4D039876F3D93C3E1FF" -FilePath WindowsTerminal.pfx -Password $password

  • Remove-Item -Path "Cert:\LocalMachine\My\C5C9D98CE9A23FB72C20B4D039876F3D93C3E1FF"

  • 此時(shí)當(dāng)前目錄會(huì)生成一個(gè) WindowsTerminal.pfx 證書。雙擊之,安裝到計(jì)算機(jī)存儲(chǔ)的受信任人(Trusted People)目錄中,中間會(huì)要你輸入剛才腳本里設(shè)置的密碼。

    好了,證書搞定了。

    4. 提取安裝簽名工具

    下面使用 SignTool.exe 工具進(jìn)行簽名。這個(gè)工具是 Windows 10 SDK?(https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk) 中的一個(gè)工具。去微軟網(wǎng)站查看發(fā)現(xiàn),這貨體積巨大,包含了許多開(kāi)發(fā) Windows 所需的工具包。但我們并不需要其他的部分,所以這里投機(jī)取巧一下,只安裝所需的部分。

    首先要下載 ISO 格式的安裝鏡像,不要直接下 Installer。大概 800M 左右,半夜直連下載速度飛快,白天就不行了,視情況使用更加科學(xué)的上網(wǎng)方式。

    下好之后,使用 Windows 自帶的 Mount 功能映射為虛擬光驅(qū)。打開(kāi) Installers 目錄,找到 WindowsAppCertificationKitx64-x86_en-us.msi 這個(gè)包,雙擊安裝。

    這個(gè)工具包就包含了我們需要的 SignTools.exe ,其他的部分不需要,可以刪掉這個(gè)鏡像了。在 C:\ProgramFiles(x86)\WindowsKits\10\AppCertificationKit\signtool.exe 路徑可以找到我們需要的工具。

    5. 簽名安裝

    在 msix 和證書文件所在目錄打開(kāi) cmd,執(zhí)行以下命令完成簽名:

  • "C:\Program Files (x86)\Windows Kits\10\App Certification Kit\signtool.exe" sign /fd SHA256 /a /f WindowsTerminal.pfx /p 你的密碼 CascadiaPackage_0.0.1.0_x64.msix

  • 簽好后再雙擊 msix 包,就可以順利安裝了。

    Enjoy!


    總結(jié)

    以上是生活随笔為你收集整理的不装 VS 自己编译安装 Windows Terminal的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。