Impossible de charger le fichier ou l'assembly 'msshrtmi' ou l'une de ses dépendances (accès Azure Table Storage)

Impossible de charger le fichier ou l’assembly ‘msshrtmi’ ou l’une de ses dépendances (accès Azure Table Storage)

Il semble que les projets Azure soient très sensibles à ce fichier particulier. D’après : http://social.msdn.microsoft.com/Forums/en-US/windowsazuretroubleshooting/thread/0fac1f05-eb55-432f-80ac-6f15cde5b14b/

Lorsque vous effectuez une recompilation du projet de rôle web, pourriez-vous vérifier
si un fichier msshrtmi.dll se trouve dans le dossier bin ou non ? Si oui, veuillez
vérifier s’il est en 64 bits ou 32 bits en utilisant Dependency Walker. S’il est en 32 bits,
veuillez essayer l’une des options suivantes pour empêcher la sortie de cette
DLL dans le dossier bin.

Ciblez le projet de rôle web en x64 et recréez le projet de service Azure. Cette option a été confirmée par
http://social.msdn.microsoft.com/Forums/en/windowsazure/thread/286cecf6-1423-4ef3-93f9-0eb8a67d8192. (modification : lien mort en date de février 2012.)

Ouvrez le fichier de projet du site web avec le Bloc-notes et supprimez l’élément PlatformTarget de tous les groupes de propriétés de configuration. Cette
option est citée de
http://tomkrueger.wordpress.com/2010/07/27/azure-deployment-issue-after-upgrading-to-visual-studio-2010-and-net-4-0/.

Écrivez une commande d’événement post-build pour supprimer msshrtmi.dll lorsqu’une action de build est effectuée avec succès. Pour cela, faites un clic droit sur le
projet de rôle web et sélectionnez Propriétés. Sélectionnez l’onglet Build Events,
dans la zone de texte « Post-build event command line », entrez la commande suivante :

cd $(TargetDir)
del msshrtmi.dll

Tout cela suggère que vous devriez vérifier que vous avez compilé la configuration correcte pour le déploiement sur votre environnement cible. Assurez-vous d’avoir ciblé x64 pour le déploiement sur vos serveurs de centre de données.