VSIXInstaller.exe退出代码文档

fus*_*key 4 vsix

从我们的应用程序启动VSIXInstaller.exe时,我们尝试使用Process对象上的ExitCode属性来确定包是否已成功安装,但我们发现退出代码为0,即使用户单击"取消" '对话框上的按钮.

我预计在那个场景中会返回一些其他代码,类似于msiexec所做的.

但是,当我搜索有关VSIXInstaller使用的退出代码的文档时,我找不到任何内容.我正在寻找这些方面的东西.

ama*_*nov 12

这些退出代码来自Microsoft.VisualStudio.ExtensionManager.ExtensionManagerException该类的各种继承者:

1001 ExtensionManager.AlreadyInstalledException  
1002 ExtensionManager.NotInstalledException  
1003 ExtensionManager.NotPendingDeletionException  
1005 ExtensionManager.IdentifierConflictException  
1006 ExtensionManager.MissingTargetFrameworkException  
1007 ExtensionManager.MissingReferencesException  
1008 ExtensionManager.BreaksExistingExtensionsException  
1009 ExtensionManager.InstallByMsiException  
1010 ExtensionManager.SystemComponentException  
1011 ExtensionManager.MissingPackagePartException  
1012 ExtensionManager.InvalidExtensionManifestException  
1013 ExtensionManager.InvalidExtensionPackageException  
1014 ExtensionManager.NestedExtensionInstallException  
1015 ExtensionManager.RequiresAdminRightsException  
1016 ExtensionManager.ProxyCredentialsRequiredException  
1017 ExtensionManager.InvalidPerMachineOperationException  
1018 ExtensionManager.ReferenceConstraintException  
1019 ExtensionManager.DependencyException  
1020 ExtensionManager.InconsistentNestedReferenceIdException  
1021 ExtensionManager.UnsupportedProductException  
1022 ExtensionManager.DirectoryExistsException  
1023 ExtensionManager.FilesInUseException  
1024 ExtensionManager.CannotUninstallOrphanedComponentsException
1025 ExtensionManager.CorruptInstanceException
1026 ExtensionManager.RunFromEnginePathLocationException

2001 VSIXInstaller.InvalidCommandLineException  
2002 VSIXInstaller.InvalidLicenseException  
2003 VSIXInstaller.NoApplicableSKUsException
2004 VSIXInstaller.BlockingProcessesException
2005 VSIXInstaller.UserCancelledException

3001 means any other exception.
Run Code Online (Sandbox Code Playgroud)

PS要在用户单击"取消"时避免获取零退出代码的情况,请在场景中使用静默安装(/quiet命令行中的标记).


编辑:从Visual Studio 2017 15.7开始,如果用户取消安装,VSIXInstaller将返回2005的退出代码.