2009-01-13 6 views
0

Existe-t-il un moyen de vérifier que les signatures de méthode d'un groupe de DLL .NET sont "alignées" les unes par rapport aux autres? Basiclly ce que le compilateur fait pendant la compilation, mais à la place, il essaye de me déplacer d'une seule DLL au lieu du groupe entier de 20 pour résoudre un problème.Vérifier les signatures de méthode lors du déplacement d'une DLL unique

Par exemple, vous avez une fonction qui vit dans AssemblyB.dll

function foo(strMyValue as string, objObject as IObject) 

se transforme en cela quelques mois plus tard

function foo(strMyValue as string, objObject as IObject2) 

Et vous voulez déplacer AssemblyC qui appelle la fonction foo de AssemblyB. dll. Si vous déplacez tous vos dll en même temps, aucun problème car AssemblyC a la nouvelle signature de méthode d'AssembleyB et transmet le nouveau type. Mais disons qu'il y a une urgence et que vous devez simplement déplacer AssemblyC pour résoudre un problème. Le seul moyen que je connaisse pour attraper ça est de toucher la ligne de code qui appellera la méthode. Choses à considérer Je n'ai pas de branche. J'aurais aimé le faire, mais je n'étais pas là pour le démarrage du système, et à la toute fin du système, nous n'avons pas de moyen d'y arriver.

Je pourrais déplacer toutes mes DLL, mais il y aura des centaines de changements non documentés qui vont avec. Le système se situe actuellement à 4 millions de lignes de code.

Répondre

1

Je suppose que vous faites référence au fait que vous avez déjà fait un tas de changements que vous n'êtes pas nécessairement prêt à déplacer en direct, mais que vous devez déplacer une construction en cas d'urgence.

au lieu de tourner

function foo(strMyValue as string, objObject as IObject) 

dans

function foo(strMyValue as string, objObject as IObject2) 

Pourriez-vous pas surcharger foo d'avoir les deux signatures de méthode dans AssemblyB? Obsolète la première fonction afin que les gens au moins se voient dire qu'ils ne devraient pas l'utiliser et ensuite télécharger AssemblyC lorsque vous êtes prêt à faire le changement? Après cela, une fois que vous êtes certain que vous avez complètement basculé, vous pouvez supprimer la signature de la méthode d'origine.

Si vous ne modifiez jamais une signature de méthode, vous ne devriez jamais avoir un problème de ce type. Mais, à mon avis ... Je me lancerais dans une sorte de contrôle de la source.

+0

Nous utilisons TFS pour l'instant, et venons juste de VSS. Nous voulions mettre des branches, mais les développeurs précédents ont créé des références circulaires sur notre ancien code. Ce serait formidable si les anciennes méthodes étaient obsolètes, et nous avons commencé à le faire, mais pas tout le monde. Avec nous ayant deux contrôles de la souce, ce n'est pas amusant. – Josh

Questions connexes