当前位置: 首页 > article >正文

【vscode】解决vscode无法安装远程服务器插件问题,显示正在安装

文章目录

    • 现状分析
    • 采用VSIX离线安装
        • 第一步:离线下载插件包
        • 第二步:把下载好的插件文件上传到远程服务器上
        • 第三步:在windows下打开vscode,并链接远端,进行安装

现状分析

vscode无法远程安装扩展插件,显示正在安装
现象:一直处于这个正在安装状态
image.png
原因
服务器没网或者其他各种原因;

采用VSIX离线安装

第一步:离线下载插件包

vscode的扩展下载市场下载需要的插件Extensions for Visual Studio family of products | Visual Studio Marketplace
现在没办法下载VSIX了;
找到一个脚本可以下载VSCode插件:
GitHub - mjmirza/Download-VSIX-From-Visual-Studio-Market-Place: This script allows you to download VS Code extensions as VSIX files directly from the Visual Studio Marketplace.

这个脚本代码在这粘贴出来:

/***
#          Download VS Code extensions as VSIX
#          Author: Mirza Iqbal
***/// *** SCRIPTS NOT TESTED After July 2024 *** ///***
// First 
***/
!function() {(function() {const extensionData = {version: "",publisher: "",identifier: "",getDownloadUrl: function() {return `https://${this.identifier.split(".")[0]}.gallery.vsassets.io/_apis/public/gallery/publisher/${this.identifier.split(".")[0]}/extension/${this.identifier.split(".")[1]}/${this.version}/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage`;},getFileName: function() {return `${this.identifier}_${this.version}.vsix`;},getDownloadButton: function() {const button = document.createElement("a");button.innerHTML = "Download VSIX";button.href = "javascript:void(0);";button.style.fontFamily = "wf_segoe-ui,Helvetica Neue,Helvetica,Arial,Verdana";button.style.display = "inline-block";button.style.padding = "2px 5px";button.style.background = "darkgreen";button.style.color = "white";button.style.fontWeight = "bold";button.style.margin = "2px 5px";button.setAttribute("data-url", this.getDownloadUrl());button.setAttribute("data-filename", this.getFileName());button.onclick = function(event) {event.target.onclick = null;event.target.innerHTML = "Downloading VSIX...";const xhr = new XMLHttpRequest();console.log(event.target.getAttribute("data-url"));xhr.open("GET", event.target.getAttribute("data-url"), true);xhr.responseType = "blob";xhr.onprogress = function(event) {if (event.lengthComputable) {const progress = (event.loaded / event.total * 100).toFixed(0);event.target.innerHTML = `Downloading VSIX... ${progress}%`;}};xhr.onload = function() {if (this.status === 200) {const blob = this.response;const link = document.createElement("a");link.href = window.URL.createObjectURL(blob);link.download = event.target.getAttribute("data-filename");link.click();event.target.href = link.href;event.target.download = link.download;event.target.innerHTML = "Download VSIX";} else {event.target.innerHTML = "Error. Please reload the page and try again.";alert(`Error ${this.status} error receiving the document.`);}};xhr.onerror = function() {event.target.innerHTML = "Error. Please reload the page and try again.";alert(`Error ${this.target.status} occurred while receiving the document.`);};xhr.send();};return button;}};const metadataMap = {Version: "version",Publisher: "publisher","Unique Identifier": "identifier"};const metadataRows = document.querySelectorAll(".ux-table-metadata tr");for (let i = 0; i < metadataRows.length; i++) {const row = metadataRows[i];const cells = row.querySelectorAll("td");if (cells.length === 2) {const key = cells[0].innerText.trim();const value = cells[1].innerText.trim();if (metadataMap.hasOwnProperty(key)) {extensionData[metadataMap[key]] = value;}}}// Handle the case where the element might not existconst moreInfoElement = document.querySelector(".vscode-moreinformation");if (moreInfoElement) {moreInfoElement.parentElement.appendChild(extensionData.getDownloadButton()).scrollIntoView();} else {console.error("Element with class 'vscode-moreinformation' not found.");}})()
}();/***
// 2nd 
***/
(function() {const URL_VSIX_PATTERN = 'https://marketplace.visualstudio.com/_apis/public/gallery/publishers/${publisher}/vsextensions/${extension}/${version}/vspackage';const itemName = new URL(window.location.href).searchParams.get('itemName');const [publisher, extension] = itemName.split('.');const version = document.querySelector('#versionHistoryTab tbody tr .version-history-container-column').textContent;const url = URL_VSIX_PATTERN.replace('${publisher}', publisher).replace('${extension}', extension).replace('${version}', version);window.open(url, '_blank');})();

脚本使用

  1. 先进入VSCode的插件市场:Extensions for Visual Studio family of products | Visual Studio Marketplace
  2. 找到你感兴趣的插件,比如CMake Tools,然后按F12键出现右边的开发者窗口。
  3. 在右下角控制台粘贴前面准备的代码,按下回车,浏览器就会自动下载image.png
    1. image.png
第二步:把下载好的插件文件上传到远程服务器上

image.png

第三步:在windows下打开vscode,并链接远端,进行安装

进入vscode选择扩展,选择右上角三个点的选项,选择VSIX安装。然后找到thirdpart目录下对应的插件文件选择即可。
image.png
image.png
此时显示已经安装成功
image.png

http://www.lryc.cn/news/2378530.html

相关文章:

  • 1688 数据接口调用秘籍:高效获取商品实时信息的开发指南
  • 【Spring】Spring的请求处理
  • 粒子群算法(PSO算法)
  • git提交库常用词
  • LLM智能体新纪元:深入解析MCP与A2A协议,赋能智能自动化协作
  • SAP学习笔记 - 开发豆知识01 - CDS SDK命令出乱码 (cds init CAP-Test03 --add java)
  • (C语言)超市管理系统 (正式版)(指针)(数据结构)(清屏操作)(文件读写)(网页版预告)(html)(js)(json)
  • 进阶-数据结构部分:​​​​​​​2、常用排序算法
  • 解决 Three.js Raycaster 点击位置与实际交点偏差问题
  • 25、DeepSeek-R1论文笔记
  • LeetCode --- 156双周赛
  • 模型量化AWQ和GPTQ哪种效果好?
  • npm 报错 gyp verb `which` failed Error: not found: python2 解决方案
  • 初识Linux · IP协议· 下
  • 5.27本日总结
  • JavaScript基础-创建对象的三种方式
  • JAVA的常见API文档(上)
  • JavaScript 中的 for...in 和 for...of 循环详解
  • AtCoder AT_abc406_c [ABC406C] ~
  • Spark,连接MySQL数据库,添加数据,读取数据
  • Linux容器技术详解
  • 【EDA软件】【联合Modelsim仿真使用方法】
  • STM32 __main
  • 【离散化 线段树】P3740 [HAOI2014] 贴海报|普及+
  • Python训练营打卡Day28
  • MODBUS RTU通信协议详解与调试指南
  • CSP 2024 提高级第一轮(CSP-S 2024)单选题解析
  • 六、绘制图片
  • Java 面向对象详解和JVM底层内存分析
  • 深度学习---知识蒸馏(Knowledge Distillation, KD)