2020年7月1日水曜日

PC VSCode 拡張機能の更新

GIMP の Python や Scheme のスクリプト書きに Visual Studio Code を使っています。
ですから、使う時は 複数の環境下で毎日の様に なのですが、
そうは出番がありません。
で、 更新となると ... 。


Visual Studio Code 重宝させて貰っています。
GIMP の Python や Scheme のスクリプト書きに 大活躍 です。
無償で、バリバリ、書ける!。  ありがたいですね。

さて、勿論、まめに(月1回は)更新が掛かる訳ですが、
皆さんはどうしていますか?。

既定の自動更新は、とても、便利なのですが ... 。
複数の環境の場合、その都度、同じ更新を掛ける羽目になる訳で ... 。

まぁ、
お勧めに従っていれば、 問題無く、最新環境に整えてくれるのです。
でも、
同じ更新用ファイルを何度も取得し適応するのって、... 、無駄 とも思う訳で。

何とかならないのって ... 。
そこで、少し、調べて見ました。
殊に、その拡張機能に関して、です。

自動更新は、該当の更新ファイルを自動で持って来て適応している筈。
ならば、それが残っていれば、別環境にコピーし、実行すれば ... 。
でも、そんなファイルは見当たりません。
用済み後に削除されている様です。
拡張機能 は xxx.vsix と言う名称の筈ですが、
展開されたであろうものはありますが、xxx.vsix そのものは無いのです。
う~ん、
やはり、xxx.vsix を別途用意するのが正解か?。

入手方法については、Visual Studio Code vsix で検索すれば、分かります。
自分の Visual Studio Code (以下、VSCode)で拡張機能導入済みの場合、
最も簡単なのは、
拡張機能で、項目のアイコンをクリックして、
Marketplace の該当ページをブラウザ表示し、
右欄 Resources Group - Download Extension (Link) からファイル入手でしょうか?。

その URL は https://marketplace.visualstudio.com/items?itemName=?.? です。
?.? に入る語句は、extension-id で、
<作者コード>.<製品コード> になりますね。

例:日本語言語パック
URL ; https://marketplace.visualstudio.com/items?itemName=MS-CEINTL.vscode-language-pack-ja
Latest Version ; 1.47.0
Vsix Name ; MS-CEINTL.vscode-language-pack-ja-1.47.0.vsix

この例の場合、落とし穴があります。
はい。  依存関係!。
基本的な拡張機能である為、Version # は本体のものと相関しています。
月例で更新されている様で、殊に、下旬から月末や月端(月初め)になると、
例えば、 本体が 1.46.1 の場合でも、該当ページ上の最新は 近未来用の 1.47.0 が登録されている、と。
ですから、
1.46.1 の VSCode に この 拡張機能 1.47.0 は 入りません!。

これは、例外的かも知れませんが、
依存関係のある拡張機能もある! と、覚えて置いた方が良いでしょう。

因みに、この場合、
ファイル取得 URL は、
https://ms-vscode.gallery.vsassets.io/_apis/public/gallery/publisher/${publisher}/extension/${extension_name}/${version}/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage
ですから、
https://ms-vscode.gallery.vsassets.io/_apis/public/gallery/publisher/MS-CEINTL/extension/vscode-language-pack-ja/1.46.3/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage
これで、Microsoft.VisualStudio.Services.VSIXPackage と言う 固定名ファイル が入手されますので、
MS-CEINTL.vscode-language-pack-ja-1.46.3.vsix に Rename します。
ルールは ${publisher}.${extension_name}-${version}.vsix ですね。


さて、導入(更新)は、以下のコマンドを cmd.exe から叩きます。
外部ドライブ U:¥AppInstallers に最新ファイルがあるとして、
これは、前述の依存関係から、エラーを叩きます。
code --install-extension U:¥AppInstallers¥MS-CEINTL.vscode-language-pack-ja-1.47.0.vsix --force

Installing extensions...
Unable to install extension 'ms-ceintl.vscode-language-pack-ja' as it is not compatible with VS Code '1.46.0'.
Failed

一般例の場合、こんな感じです。
code --install-extension U:¥AppInstallers¥ms-python.python-2020.6.90262.vsix --force

Installing extensions...
Extension 'ms-python.python-2020.6.90262.vsix' was successfully installed.



さて、一応。
ファイルの書き込みを伴うので、ハンドルを捕まえられていると不具合が起こる可能性もある為、
VSCode は実行しない状態で行って下さいね。  念の為。



参考迄に。
こうして、導入された拡張機能は、 個人プロファイルの .vscode 配下に保存されます。
個人プロファイルですから、同一 PC 別ユーザー では 前のまま です。
ユーザー毎に繰り返すのが基本ですが、
ユーザーを跨いでのコピーや、 Junction/Symbolic-Link で対応する方々もいらっしゃる様です。



[2020/07/02] 本体 Version 誤記訂正
[2020/07/06] 文言訂正 ファイル > 最新ファイル

0 件のコメント:

コメントを投稿