Après avoir rencontré un problème avec mon installation de Visual Studio 2017 Microsoft m'a recommandé d'exécuter InstallCleanup.exe -full
cette commande a supprimé Visual Studio 2017 et le programme d'installation de Visual Studio de mon ordinateur mais dans le processus a cassé quelque chose.Programme d'installation de Visual Studio 2017 TypeInitializationException
Maintenant, lorsque j'essaie d'installer Visual Studio 2017, le programme d'installation de Visual Studio 2017 lève une exception TypeInitializationException chaque fois que je sélectionne une version de Visual Studio à installer.
Le fichier journal affiche la trace de la pile suivante:
2017-05-25T17:19:18 : Verbose : Getting product. [installerId: SetupEngine, productId: Microsoft.VisualStudio.Product.Community].
2017-05-25T17:19:21 : Error : Failed to get product. [installerId: SetupEngine, productId: Microsoft.VisualStudio.Product.Community, error: TypeInitializationException at The type initializer for 'Microsoft.VisualStudio.Setup.Utility.StringUtility' threw an exception.
at Microsoft.VisualStudio.Setup.Utility.StringUtility.ReplaceSpecialFolders(String value)
at Microsoft.VisualStudio.Setup.Utility.StringUtility.ReplaceVariables(String value, IEnumerable`1 parameters)
at Microsoft.VisualStudio.Setup.ProductInstaller.GetSerializableProduct()
at Microsoft.VisualStudio.Setup.ProductsProviderService.GetProduct(String channelId, String productId)]
Malheureusement, je n'ai pas pu corriger. J'ai téléchargé le programme d'installation. désinstallé et supprimé tout ce qui concerne VS2017, redémarré, nettoyé le dossier temp. Rien ne semble avoir d'effet.
J'ai demandé à Microsoft des conseils here, mais deux rapports de bogues similaires here et here restent sans réponse, donc j'ai peu d'espoir.
Je regarderais le code source de la classe StringUtility
qui semble causer le problème. Mais je ne crois pas que ce soit open source. (Je n'ai pas pu trouver un cours similaire sur referencesource). Je voudrais aussi essayer de déboguer l'application en cours d'exécution en attachant un débogueur, mais hélas je n'ai pas Visual Studio et ne peut pas installer un nouveau :).
Est-ce que quelqu'un a la moindre idée comment je pourrais essayer de comprendre ce qui cause cette exception? Ou quelles dépendances je pourrais vérifier?
Edit: après avoir utilisé Collect.exe pour recueillir plus d'informations que j'ai trouvé le InnerException:
05/25/2017 17:55:17 : Error : System.TypeInitializationException: The type initializer for 'Microsoft.VisualStudio.Setup.Utility.StringUtility' threw an exception. ---> System.ArgumentException: Absolute path information is required.
at System.Security.Util.StringExpressionSet.CreateListFromExpressions(String[] str, Boolean needFullPath)
at System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissionAccess access, AccessControlActions control, String[] pathListOrig, Boolean checkForDuplicates, Boolean needFullPath, Boolean copyPathList)
at System.Security.Permissions.FileIOPermission..ctor(FileIOPermissionAccess access, String path)
at System.Environment.InternalGetFolderPath(SpecialFolder folder, SpecialFolderOption option, Boolean suppressSecurityChecks)
at Microsoft.VisualStudio.Setup.Utility.StringUtility..cctor()
--- End of inner exception stack trace ---
at Microsoft.VisualStudio.Setup.Utility.StringUtility.ReplaceSpecialFolders(String value)
at Microsoft.VisualStudio.Setup.Utility.StringUtility.ReplaceVariables(String value, IEnumerable`1 parameters)
at Microsoft.VisualStudio.Setup.ProductInstaller.GetSerializableProduct()
at Microsoft.VisualStudio.Setup.ProductsProviderService.GetProduct(String channelId, String productId)Failed to get a catalog
On dirait qu'il est quelques sheneningans avec un chemin non valide? Mais comment vais-je savoir quel chemin :)?