2009-07-27 5 views
0

Je fais face à un problème de variété est expliqué ci-dessous.Comment faire pour bulid l'exe qui se comporte de la même manière dans toutes les machines

J'ai créé une bibliothèque de classe C# (Test.dll) à l'aide de laquelle je peux énumérer la liste des instances et des bases de données de sqlserver. J'ai 2 machines 1 machine de dev et 2 une machine d'essai.

Maintenant, lorsque je teste l'application dans ma machine dev il se comporte correctement. Mais quand je copie l'application (exe file to) machine de test, il est impossible d'appeler les méthodes de l'interface que j'ai écrites dans Test.dll

Lorsque je débogue l'application dans la machine dev le fichier tli est appelé par le débogueur et j'ai simplement partagé le dossier qui contient mon code source pour tester la machine. Et maintenant je débogue l'application via une machine de test qui ne contient pas de code source. Mais je crains l'appel de la fonction aux méthodes qui sont dans test.dll est échoué.Je ne sais pas cela est arrivé ...

Comment résoudre ce problème et comment faire l'application à exécuter dans toutes les machines avec le même effet .....

+1

S'il s'agit de C#, pourquoi est-il étiqueté C++? – xtofl

+0

Le serveur COM est en C#, le client est en VC++. – sharptooth

Répondre

1

mignon,

Vous semble manquer le lien logiciel entre votre application et SQL Server.

Si vous programmez pour accéder à SQL Server via des pilotes natifs/OLEDB/ODBC, vous devez vous assurer que ces pilotes sont installés. Ces pilotes font partie de Microsoft Data Access Components (MDAC) qui est maintenant à v2.8 (http://www.microsoft.com/downloads/details.aspx?FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c&displaylang=en). Lorsque vous installez les composants de l'environnement de développement/de la station de travail SQL Server, ces éléments sont installés par eux-mêmes.

+0

Je ne manque aucun lien logiciel. – Cute

+0

Mignon, je voulais dire que vous aviez besoin de ces pilotes pour que votre logiciel fonctionne. –

1

Vous devez implémenter la gestion des erreurs dans votre application - un code qui vérifie par programmation les codes d'erreur renvoyés par les méthodes COM, récupère IErrorInfo le cas échéant et fait quelque chose de pertinent - affiche le message d'erreur à l'utilisateur fichier journal. Pour que le débogage se comporte de la même manière sur toutes les machines, vous ne pouvez pas faire grand chose, sauf copier les sources sur chaque machine que vous voulez déboguer.

Questions connexes