如何通过命令行安装Visual Studio Code扩展程序

108

如何在 Visual Studio Code 实例打开的情况下通过命令提示符安装扩展程序。我想从 Visual Studio Code 库中安装扩展程序。

以下是我想要安装的扩展程序数据。

enter image description here

我的 Visual Studio Code 实例已经打开。我想要做的就是从命令提示符中安装以下扩展程序。


你能不能直接打开Visual Studio Code的命令面板,输入ext install并从扩展列表中选择John Papa的扩展呢?它现在似乎已经可用了。为什么你想要从命令提示符中执行这个操作? - Darren Evans
4
可能没有人会为了好玩而从命令行手动操作,而是将命令集成到更大的脚本中,例如完全自动地设置整个系统及其各种设置。需要手动打开VS代码并点击操作将会破坏“完全自动”这一部分。 - Nicolas Marshall
@DarrenEvans 如果可以使用脚本自动完成,为什么要手动操作呢? - iconoclast
9个回答

168
为了更方便地自动化和配置VS Code,可以通过命令行列出、安装和卸载扩展。在标识扩展时,请提供完整的形式发布者.扩展名,例如donjayamanne.python。
code --list-extensions
code --install-extension ms-vscode.cpptools
code --uninstall-extension ms-vscode.csharp

您还可以像这样从本地.vsix文件中包含扩展。
code --install-extension <extension-vsix-path>

使用方法:

code --install-extension hello-world-extension.vsix

文档


5
很遗憾他们没有 --update-extension。命令行无法更新。 - Illuminator
2
code --list-extensions 和其他命令无法正常工作,这些命令只会打开 VSCode 窗口而不执行预期的操作。顺便说一下,我正在使用 VSCode win32-x64-1.21.1 在 wn7 x64 上。 - hugemeow
18
现在可以使用--force选项和--install-extension一起更新扩展。(请参见GitHub问题#58434,提交1dd7326。) - Peterino

20

根据文档,你可以使用--install-extension实现此功能。例如:

code --install-extension ms-vscode.csharp

3
最近版本中这个不起作用了。现在出现了两个错误:忽略选项install-extension:不支持code。至少必须提供一个文件或文件夹。 - Avindra Goolcharan

15

补充Shan Khan上面的答案,如果您想在.bat文件中安装扩展程序,则必须使用call关键字,否则您的脚本在扩展程序安装完成后将退出。此外,如果code.exe不在路径中,并且您正在使用完整路径调用,请确保指向/bin目录:

echo.
echo.
echo Installing VS Code Extensions...
call "C:\Program Files\Microsoft VS Code\bin\code" --install-extension ritwickdey.liveserver
call "C:\Program Files\Microsoft VS Code\bin\code" --install-extension ritwickdey.live-sass
call "C:\Program Files\Microsoft VS Code\bin\code" --install-extension ms-vscode.csharp
call "C:\Program Files\Microsoft VS Code\bin\code" --install-extension PKief.material-icon-theme
echo Done.
echo.
echo.

2
如果您正在脚本(批处理、ansible、bash等)中自动安装vscode扩展程序,我建议添加--force标志,因为--install-extension将提示更新扩展程序,如果已经安装了旧版本。在自动化脚本中,人员不会总是在那里回答提示。如果不希望始终安装扩展的最新版本,则需要使用--list-extensions--show-versions并以编程方式决定是否更新。 - Kallmanation

10
我认为您想要安装一个.vsix文件作为扩展。 这里有相关的文档。以下是参考内容。
您可以使用VS Code命令行手动安装打包在.vsix文件中的VS Code扩展程序。只需提供到.vsix文件的路径即可进行安装。 code --install-extension myExtensionFolder\myExtension.vsix 扩展将安装在用户.vscode / extensions文件夹下。 您可以在命令行上提供多个.vsix文件,以一次安装多个扩展程序。

你提供的场景必须包含一个 VSIX 文件。我只想提供 ID、链接或名称,然后直接从市场下载 VSIX 或扩展并安装到代码中。 - Shan Khan
嗯...文档中好像没有关于如何做到这一点的内容。您可以按照此处所述使用命令面板。这是您要找的吗?如果是,我会更新我的回答。 - Wade Anderson
4
如果其他人遇到这个答案,你需要使用“--install-extension”参数来安装vsix扩展。https://code.visualstudio.com/docs/editor/extension-gallery#_install-from-a-vsix - Sorskoot

5
@derekbaker783 提供的 PowerShell 脚本对我没用,它会抛出一个与“Code”不是 cmdlet 相关的异常,因此我将分享一个替代方案,这个方案对我有用:
$vsCodeExec = ($Env:PROGRAMFILES) + "\Visual Studio Code\Bin\code.cmd"
$extensions = @(
    "ms-vscode.cpptools",               # C/C++ Language Support
    "ms-dotnettools.csharp",            # C# Language Support
    "dbankier.vscode-instant-markdown", # Markdown Language Support
    "ms-vscode.powershell",             # PowerShell Language Support
    "ms-python.python",                 # Python Language Support
    "rebornix.ruby",                    # Ruby Language Support
    "spences10.vba",                    # VBA Language Support
    "luggage66.vbscript",               # VBScript Language Support
    "gordonwalkedby.vbnet",             # VB.NET Language Support
    "dotjoshjohnson.xml",               # XML Language Support
    "abusaidm.html-snippets",           # HTML Snippets
    "ecmel.vscode-html-css",            # CSS Intellisense for HTML
    "formulahendry.code-runner",        # Code Runner
    "ms-vscode-remote.remote-wsl",      # VSCode Remote - WSL
    "vscode-icons-team.vscode-icons",   # Icons for VSCode
    "ms-vscode.vs-keybindings",         # Visual Studio Keymap for VSCode
    "abhiagr.livs"                      # Open/Launch in Visual Studio
) | SORT

$extensions | ForEach-Object {
    try {
        Invoke-Expression "& '$vsCodeExec' --install-extension $_ --force"
        Write-Host # New-Line
    } catch {
        $_
        Exit(1)
    }
}

Exit(0)

我认为我的脚本对你没有起作用,是因为你的安装是系统范围的(而不是每个用户)。 - derekbaker783
1
@derekbaker783 我没有足够的Powershell知识来调试并找出确切原因,但我可以说您脚本中的目录路径不是问题,因为当我尝试使用您的脚本与我的当前目录路径匹配时,我当然已经进行了修改。但出于某些原因,该脚本无法识别“code”(或“code.cmd”)。顺便说一句,我正在使用便携式版本,完全没有安装。感谢您的评论。 - ElektroStudios

3

在微软的教程“[https://learn.microsoft.com/de-de/azure/azure-signalr/signalr-tutorial-authenticate-azure-functions][1]”中,他们展示了以下内容:

func extensions install -p Microsoft.Azure.WebJobs.Extensions.SignalRService -v 1.0.0

但它不起作用。因此,我尝试了这里的一部分:

code --install-extension Microsoft.Azure.WebJobs.Extensions.SignalRService -v 1.0.0

An(一位名为An的人)得到了答案:

1.56.2
054a9295330880ed74ceaedda236253b4f39a335
x64

我希望现在它能够正常工作...


2

首先,找到完整的扩展名。为此,您可以右键单击给定的扩展,并在扩展面板中选择“复制扩展ID”。

由于其他答案已经说明了.BAT/.CMD语法,这里提供使用Powershell脚本安装扩展的示例(当然可以从CMD执行)。

# A system-wide install of VSCode might be in: "C:\Program Files\Microsoft VS Code\bin\code"
param(
    [string] $pathToVsCodeExe = ($Env:USERPROFILE + '\AppData\Local\Programs\Microsoft VS Code'),
    [string[]] $extensions = @("editorconfig.editorconfig", "dbaeumer.vscode-eslint")
)


try {
    $originalLocation = Get-Location
    Set-Location $pathToVsCodeExe
    $extensions | ForEach-Object {
        Invoke-Expression -Command "Code --install-extension $_ --force"
    }    
}
catch {
    $_
}
finally {
    Set-Location $originalLocation    
}

2

要同时安装多个扩展,请使用以下格式:

code --install-extension dakshmiglani.hex-to-rgba --install-extension dudemelo.php


1
非常感谢。我来找那个。 - Joe Rowe

0
#!/bin/bash

# by Cypher
# grab your extensions with:
# codium (or code) --list-extensions --show-versions > codeium.ext
# tweak your extension list to be like the one below
# you can create a $var for "codium --force --install-extension", if you wish...
# https://codeium.com/
# make a bashscript (in GNU/Linux) and easily install them:
# So that the bashscript can be portable for reproducing your config in anoter machine(s)
# save this as, say, "codeiumExtensions.sh"
# chmod +x codeiumExtensions.sh
# then, run it:
# as normal user: ./codeiumExtensions.sh
# codium --help
# --force installs the latest version

codium --force --install-extension  abusaidm.html-snippets@0.2.1
codium --force --install-extension  anilkumarum.compile-ts@0.1.4
codium --force --install-extension  auiworks.amvim@1.36.0
codium --force --install-extension  Codeium.codeium@1.2.36
codium --force --install-extension  dramforever.vscode-ghc-simple@0.2.3
codium --force --install-extension  ecmel.vscode-html-css@1.13.1
codium --force --install-extension  evzen-wybitul.magic-racket@0.6.2
codium --force --install-extension  garrit.p5canvas@1.7.0
codium --force --install-extension  haskell.haskell@2.2.4
codium --force --install-extension  jeandeaual.scheme@0.2.0
codium --force --install-extension  julialang.language-julia@1.47.2
codium --force --install-extension  justusadam.language-haskell@3.6.0
codium --force --install-extension  koog1000.fossil@0.3.1
codium --force --install-extension  ms-python.python@2023.10.1
codium --force --install-extension  ms-vscode.vscode-typescript-next@5.2.20230516
codium --force --install-extension  ocamllabs.ocaml-platform@1.12.2
codium --force --install-extension  rgherdt.scheme-lsp@0.3.12
codium --force --install-extension  ritwickdey.LiveServer@5.7.9
codium --force --install-extension  shaunlebron.vscode-parinfer@0.6.1
codium --force --install-extension  slbtty.Lisp-Syntax@0.2.1
codium --force --install-extension  sumneko.lua@3.6.22
codium --force --install-extension  vscode-org-mode.org-mode@1.0.0

你应该添加解释。 - Super Kai - Kazuya Ito
这个解释在bash脚本中... - Achylles

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接