Y at-il un nombre maximum de fois qu'une DLL peut être enregistrée et désinscrite dans une période de temps spécifique?Nombre maximal de fois qu'une DLL peut être enregistrée/non enregistrée?
Voici ce que je veux dire et pourquoi: j'ai un paquet d'intégration continue qui construit mes applications VB6 et pour construire chacun des 80 composants de la solution, I:
- récupérer les dépendances de chaque projet en tour
- enregistrer le fichier DLL (en utilisant NAnt < comregister annuler l'enregistrement = "false" ... ...>)
- construire le projet
- publier le fichier .dll de sortie ou .exe dans un endroit sûr
- désenregistrer dll (en utilisant NAnt < comregister annuler l'enregistrement = "true" ... ...>)
Maintenant, tout cela fonctionne 100% du temps, IF Je construis chacun des 80 projets manuellement; Cependant, si je reçois mon script NAnt pour construire les 80 projets, à leur tour (dans l'ordre correct), la construction ne parvient, me donnant cette erreur dans la sortie CruiseControls ...
[comregister] Unregistering 1 files
[comregister] c:\location\myBuild.include(301,4): Error while unregistering 'c:\\[project-location]\lib\myDependentDLLFile.dll' Unable to find an entry point named '**DllUnregisterServer**' in DLL 'c:\\[project-location]\lib\myDependentDLLFile.dll'.
(je ne sais pas où 'DllUnregisterServer' vient cependant!)
La même erreur apparaît alors pour tous les projets suivants que je construis après le point de défaillance, qui est autour de la zone 50-projets-construit. Ce que je veux dire, c'est que les 50 premiers projets vont bien, alors le reste échoue à son tour. J'ai atténué cela en utilisant l'attribut failonerror = "false" dans l'appel de comregister à l'intérieur de NAnt, mais cela me fait douter que cela soit correct ou non ...!
Idéalement, je souhaite supprimer l'attribut failonerror et signaler les erreurs réelles aux fonctions de journalisation de CruiseControl. Des pensées ou des suggestions?
Je me demande si l'échec de trouver DllUnregisterServer est juste une supposition, et l'erreur réelle est quelque chose d'autre ...? Pouvez-vous obtenir Nant pour afficher l'erreur Win32 en quelque sorte? Peut-être pourriez-vous modifier la tâche du serveur d'enregistrement pour émettre plus d'informations ... DllUnregisterServer est une fonction que tous les serveurs COM DLL doivent exporter et quel code d'enregistrement appelle simplement à l'annulation de l'enregistrement des objets du serveur. –