2010-09-20 4 views
0

J'essaye d'exécuter le test sur mon serveur mais il échoue en raison d'une erreur de C++ venant de MSVCR80.dll. Sur ma machine, ça marche bien, mais sur le serveur, je ne trouve pas le moyen de le faire fonctionner.Échec C++ sur MSVCR80.dll en utilisant Microsoft.SqlServer.Management

Voici l'erreur que j'ai lors de l'exécution de mes tests (désolé, il est en italien mais il pourrait être facile à comprendre, je suppose, tout le monde parle italien, non?):

Class Initialization method Test.Quartz.GestioneQuartzTest.MyClassInitialize threw exception. System.Reflection.TargetInvocationException: System.Reflection.TargetInvocationException: Eccezione generata dalla destinazione di una chiamata. 
---> System.TypeInitializationException: L'inizializzatore di tipo di '<Module>' ha generato un'eccezione. 
---> <CrtImplementationDetails>.ModuleLoadException: The C++ module failed to load during appdomain initialization. 
---> System.DllNotFoundException: Impossibile caricare la DLL 'MSVCR80.dll': Routine di inizializzazione della libreria di collegamento dinamico (DLL) non riuscita. (Eccezione da HRESULT: 0x8007045A).. 

et la trace de la pile: J'ai essayé de télécharger la DLL MSVCR80 et de la mettre sous windows/system32 mais cela n'a pas aidé. Avez-vous déjà rencontré ce problème auparavant?

Merci pour toute aide.

[EDIT]

Lors du débogage d'un test, l'erreur se produit là (2ème ligne):

Microsoft.SqlServer.Management.Smo.Server server = new Microsoft.SqlServer.Management.Smo.Server(svrConnection); 
return server.ConnectionContext.ExecuteNonQuery(scriptText); 

Le texte Script contient le code que j'utilise pour créer ou de supprimer mes tables pour effectuer mon test dans un environnement similaire à la production.

[/ EDIT]

+0

http://social.msdn.microsoft.com/forums/fr-FR/vcgeneral/thread/6d16ecce-f92b-4c53-a45b-40119c4566a6/ – DumbCoder

+0

thx pour le lien, mais je pense que mon problème compte plus sur certains mauvaise installation d'un produit Microsoft. Il vient de "Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery" qui est une ligne interne de code venant de Microsoft. – Arthis

Répondre

0

Au lieu de simplement télécharger une DLL unique (manquant peut-être d'autres dépendances), avez-vous essayé de télécharger et d'installer le Microsoft Visual C++ 2005 SP1 Redistributable?

Modifier, comme pour l'exécution de votre solution dans Visual Studio: Eh bien, l'emplacement d'erreur était déjà à peu près évident, compte tenu de la trace de la pile. Comme il s'agit d'une erreur lors du chargement d'une DLL native, je parlais plutôt de l'exécution de WinDBG, qui dans ce cas pourrait fournir de meilleures informations sur ce qui est chargé et pourquoi il échoue. A en juger par le code d'exception et le mode d'échec (probablement pendant DllMain, c'est-à-dire LoadLibrary), je suppose que c'est une dépendance manquante. WinDbg ou DependencyWalker peuvent vous aider dans ce cas, mais avec DependencyWalker, vous devez savoir où chercher, c'est-à-dire quel module analyser.

+0

Non! ça n'a pas marché ... Thx tout de même! – Arthis

+0

Pouvez-vous exécuter un débogueur sur cette machine? –

+0

Merci pour les précisions. Je vais voir ce que je peux faire, n'étant pas expert dans ce domaine ... – Arthis