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

问题描述 投票:7回答:1

我可以通过Extensions and Updates manager in Visual Studio禁用特定扩展的自动扩展更新。但是,当我想在无人值守模式下在我的团队的所有计算机上禁用扩展FOO的自动更新时,我该怎么办?

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

visual-studio visual-studio-2017 visual-studio-extensions vsix
1个回答
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\下找到扩展数据。


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
© www.soinside.com 2019 - 2024. All rights reserved.