如何在无人参与模式下禁用Visual Studio扩展自动更新?

时间:2018-10-24 12:40:20

标签: visual-studio visual-studio-2017 visual-studio-extensions vsix

我可以通过lorawan module禁用特定扩展名的自动扩展名更新。但是,当我想在无人参与模式下在团队的所有计算机上禁用扩展名FOO的自动更新时,该怎么办?

我想要一个使用AD GPO或修改Windows注册表以使特定的Visual Studio扩展停止接收自动更新的选项。现在有可能吗?

3 个答案:

答案 0 :(得分:1)

我今天也遇到了类似的问题。我没有一个完全自动化的解决方案,因为我不需要它,但我想我已经收集了足够的信息,因此您将能够正确准备一个可以完成此任务的小型应用程序。

从Visual Studio 2017开始,配置不再存储在中央注册表中,而是存储在%LOCALAPPDATA%\Microsoft\VisualStudio\15.0_ <somekind_of_id>\privateregistry.bin的私有文件中。我不确定如何确定somekind_of_id(在我的情况下是3eeca950,为简单起见,我在所有路径中都保留了这种价值,只是用您的路径代替)。该文件已被Visual Studio锁定,因此在尝试对其进行修改之前必须将其关闭(VS释放锁定需要花费几秒钟)。

可以使用RegLoadAppKeyA将此文件导入到配置单元中。此函数将创建一个HKEY,可以与RegSetKeyValueA一起使用来修改所需的值。

您感兴趣的密钥是Software\Microsoft\VisualStudio\15.0_3eeca950\ExtensionManager\ExtensionAutoUpdateEnrollment。在其下列出了所有已安装的扩展,每个扩展都是DWORD值,其中0值表示没有自动更新,1表示它已自动更新。

每个扩展名都以扩展名ID以及当前版本命名。例如WixToolset.VisualStudioExtension.Dev15,0.9.21.62588

您可以在扩展程序包的manifest.json文件中检查此ID(例如,您可以使用7-Zip打开.vsix文件)。如果没有.vsix文件,则可以在%LOCALAPPDATA%\Microsoft\VisualStudio\15.0_3eeca950\Extensions\下找到扩展名数据。

答案 1 :(得分:0)

我完全阻止VS检查更新。

对于VS2019:

vsregedit.exe set "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" HKCU ExtensionManager AutomaticallyCheckForUpdates2Override dword 0

对于VS2017:

vsregedit.exe set "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" HKCU ExtensionManager AutomaticallyCheckForUpdates2Override dword 0

答案 2 :(得分:0)

要停止从Visual Studio Marketplace扩展到TFS本地服务器的自动更新

在1Tfs_configuration1中运行以下命令

update [Tfs_Configuration].[dbo].[tbl_JobDefinition]
set EnabledState = 2 
where PartitionId > 0 and JobId = 'A8F60BD0-BCBA-4343-82B3-FD6B40D657D8' 

它应使用JobId A8F60BD0-BCBA-4343-82B3-FD6B40D657D8停止扩展名的自动更新。