web-dev-qa-db-fra.com

SSMS refuse de démarrer

J'ai récemment installé SQL Server 2017 Express et SSMS v18.0 sur mon ordinateur personnel (Windows 10) et au début, cela a bien fonctionné. Cependant, après un redémarrage, SSMS refuse catégoriquement de démarrer. Aucun message d'erreur, rien dans l'Observateur d'événements (pour autant que je sache), juste l'écran de démarrage, une tonalité audible et puis ... rien. J'ai vérifié dans le Gestionnaire des tâches pour voir s'il y a un processus en attente bloquant quelque chose mais je n'ai rien vu là-bas.

J'ai eu exactement le même problème il y a environ une semaine. J'ai désinstallé et réinstallé SSMS et cela l'a corrigé (l'option de "réparation" régulière dans la configuration SSMS n'a rien fait), mais cela ne semble pas être un moyen viable d'exécuter SSMS.

Donc, une idée de ce qui se passe? Je sais que les informations ici sont assez minces, donc une idée d'où je peux chercher des fichiers journaux/erreurs?

EDIT: Le commentaire de @SeanGallardy m'a donné la connexion. Le message d'erreur:

  <entry>
    <record>111</record>
    <time>2019/05/20 19:37:30.130</time>
    <type>Error</type>
    <source>VisualStudio</source>
    <description>CreateInstance failed for package [Task Scheduler Package]Source: 'mscorlib' Description: 
    Could not load file or Assembly 'Microsoft.VisualStudio.Shell.Interop.8.0, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located Assembly's manifest definition does not match the Assembly reference. (Exception from HRESULT: 0x80131040)&#x000D;&#x000A;System.IO.FileLoadException: 
    Could not load file or Assembly 'Microsoft.VisualStudio.Shell.Interop.8.0, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located Assembly's manifest definition does not match the Assembly reference. (Exception from HRESULT: 0x80131040)&#x000D;&#x000A;File name: 'Microsoft.VisualStudio.Shell.Interop.8.0, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ---> System.IO.FileLoadException: 
    Could not load file or Assembly 'Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located Assembly's manifest definition does not match the Assembly reference. (Exception from HRESULT: 0x80131040)&#x000D;&#x000A;File name: 'Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'&#x000D;&#x000A;&#x000D;&#x000A;WRN: Assembly binding logging is turned OFF.&#x000D;&#x000A;To enable Assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.&#x000D;&#x000A;Note: There is some performance penalty associated with Assembly bind failure logging.&#x000D;&#x000A;To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].&#x000D;&#x000A;&#x000D;&#x000A;   
    at System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly Assembly, String name, Boolean throwOnError, Boolean ignoreCase, ObjectHandleOnStack type)&#x000D;&#x000A;   
    at System.Reflection.RuntimeAssembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase)&#x000D;&#x000A;   
    at System.Activator.CreateInstance(String assemblyString, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo, StackCrawlMark&amp; stackMark)&#x000D;&#x000A;   
    at System.Activator.CreateInstance(String assemblyName, String typeName)&#x000D;&#x000A;   
    at System.AppDomain.CreateInstance(String assemblyName, String typeName)&#x000D;&#x000A;&#x000D;&#x000A;System.IO.FileLoadException: 
    Could not load file or Assembly 'Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located Assembly's manifest definition does not match the Assembly reference. (Exception from HRESULT: 0x80131040)&#x000D;&#x000A;File name: 'Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'&#x000D;&#x000A;&#x000D;&#x000A;WRN: Assembly binding logging is turned OFF.&#x000D;&#x000A;To enable Assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.&#x000D;&#x000A;Note: There is some performance penalty associated with Assembly bind failure logging.&#x000D;&#x000A;To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].&#x000D;&#x000A;
</description>
    <guid>{00CD9DDA-7350-457C-A240-71BD667FC4DE}</guid>
    <hr>80004005 - E_FAIL</hr>
  </entry>
2
steenbergh

Cela a été répondu ailleurs sur DBA.se - Vérifiez cette réponse out - en gros, il vous suffit de copier Microsoft.VisualStudio.Shell.Interop.8.0.dll à partir de

C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\PrivateAssemblies\Interop

dans

C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\PublicAssemblies

alors SSMS devrait commencer à se comporter.

1
HandyD

La solution officielle a été donnée ici Elle implique la modification du fichier Ssms.exe.config. Pour être précis:

La solution de contournement recommandée, dans l'intervalle, est la suivante: 1) Fermez toutes les instances de SSMS

2) Modifiez ssms.exe.config

3) Supprimez la ligne qui contient le texte suivant (devrait être la ligne 38): NgenBind_OptimizeNonGacenabled = "1"

2
KansaiRobot