如何找出在用户计算机上安装了哪些Visual Studio扩展?
我想跟踪在AD环境中用户计算机上安装了哪些VS扩展。我认为通过Windows Installer(* .msi)安装扩展程序很容易。但是VSIX扩展(vsixinstaller.exe)呢?
我不知道列出所有已安装的VSIX扩展的直接方法,但是vsixInstaller
可以选择生成一个日志文件,该日志文件标识它所定位的extension.vsixmanifest
文件,每个这样的文件都是一个XML文件,其中包含有关扩展的相关详细信息(名称,版本等)。
要使vsixInstaller
生成日志文件,请假装卸载不存在的扩展名。这可能需要一段时间,尤其是如果安装了多个版本的VS(以下内容必须全部放在一行上)。
C:\Program Files (x86)\Microsoft Visual Studio\Installer\resources\
app\ServiceHub\Services\Microsoft.VisualStudio.Setup.Service>
vsixInstaller /logFile:vsix.log /appIdName:VS /uninstall:nosuchxt
例如,生成的日志文件将是%TEMP%\vsix.log
,Found
行指向vsixInstaller
所在的扩展名(用%VS20xx%
替换根路径):
vsixinstaller.exe version:
16.5.2047
...
BEGIN: Processing extension pack
...
Found '%ProgramFiles(x86)%\COMMON FILES\MICROSOFT\EXTENSIONMANAGER\EXTENSIONS\Microsoft\Windows Kits\10\Desktop SDK\extension.vsixmanifest'
...
Found '%VS2015%\COMMON7\IDE\EXTENSIONS\VSSDK\extension.vsixmanifest'
...
Found '%VS2019%\COMMON7\IDE\EXTENSIONS\VSSDK\extension.vsixmanifest'
...
END: Processing extension pack
列表中引用的每个extension.vsixmanifest
文件均以metadata
节点开头,该节点标识相应扩展名的名称和版本,例如:
<Metadata>
<Identity Id="Microsoft.VisualStudio.SDK"
Version="16.0"
Language="en-US"
Publisher="Microsoft Corporation" />
<DisplayName>Microsoft Visual Studio SDK</DisplayName>
<Description>Tools for building Visual Studio extensions</Description>
</Metadata>
通过一些(并非完全不重要的)管道工程,可以在脚本/批处理作业中将其全部自动化。