Comment VS 2008 détermine-t-il où rechercher les assemblages utilisés lors de la compilation des applications? Il doit y avoir un certain ordre utilisé. Y at-il quelque chose qui est utilisé dans les Outils \ Paramètres ou autre chose? Je suis à la recherche de l'ordre de résolution des assemblages lors du processus de compilation.Ordre de résolution de l'assemblage lors de la compilation
Répondre
Ce n'est vraiment pas VS 2008 qui détermine l'ordre, mais plutôt le compilateur. Je sais que vous n'avez pas spécifié de langue, mais je vais utiliser C# comme exemple (je suis sûr que beaucoup d'autres langues serviraient aussi de bons exemples). Si vous utilisiez C#, le compilateur traite d'abord csc.rsp (fichier de réponses situé à côté de csc.exe), puis traite les options de ligne de commande/r:. L'ordre des opérations détermine quel assembly est référencé. Par conséquent, les références d'assembly dans csc.rsp sont trouvées en premier, puis les assemblys de ligne de commande sont trouvés. C'était la compilation.
est ici la documentation pour le fichier de réponse C#:
http://msdn.microsoft.com/en-us/library/8a1fs1tb(VS.71).aspx
Voici les documents pour les options du compilateur C# de ligne de commande:
http://msdn.microsoft.com/en-us/library/2fdbz5xd(VS.71).aspx
Vous devez utiliser le Commande- compilateur de ligne si vous souhaitez utiliser un fichier de réponses personnalisé. Sinon, les références que vous ajoutez au dossier de références d'un projet déterminent ce qui apparaît sur la ligne de commande lorsque vous générez VS. Vous pouvez voir l'ordre dans lequel ces références apparaissent sur la ligne de commande en faisant une construction et en regardant la fenêtre de sortie, Ctrl + W + O.
La liaison d'assemblage à l'exécution n'est pas déterminée par VS, ni par le CLR. Un récapitulatif rapide indique que le CLR recherche si un assembly a été précédemment chargé en mémoire, vérifie le GAC et effectue une vérification en fonction de l'existence d'un appel explicite à Load dans le code, puis d'un paramètre de configuration pour codeBase, puis un ensemble de dossiers sous le dossier de l'application qui sont nommés pour les versions exe ou dll de l'assembly.Voici le lien MSDN:
http://msdn.microsoft.com/en-us/library/yx7xezcf.aspx
Le fait que vous vous posez cette question, je me demande si votre motivation est de résoudre un ensemble de liaison question. Il existe un outil dans le .NET Framework SDK, appelé l'Assemblée Binding Log Viewer (Fuslogvw.exe) pour aider à résoudre ces types de problèmes:
http://msdn.microsoft.com/en-us/library/e74a18c4(VS.71).aspx
Deux des meilleures ressources sur le net pour le travail avec les fixations de montage et visionneuse de journaux de Fusion sont Fusion Atelier de Richard Grimes:
http://www.grimes.demon.co.uk/workshops/fusionWS.htm
quelques années, Suzanne Cook, qui était membre de l'équipe CLR, avait une excellente série de messages sur la liaison CLR:
http://blogs.msdn.com/suzcook/default.aspx
Hope this helps,
Joe
Voici un post qui semble apporter un peu de lumière sur votre question ... Désolé, je n'ai pas eu le temps d'obtenir une meilleure réponse.
Jolie que cela dépend de la façon dont vous avez ajouté vos références.
Je pense il va comme ceci:
- Si une référence GAC, regardez dans le GAC
- Si une référence de projet, de la sortie de la construction du projet
- Si une référence de fichier, regards à l'emplacement du fichier
Si vous avez une référence directe à un type, votre projet ne se construira pas à moins que vous ne référenciez son assembly contenant, donc ce n'est pas comme vous pouvez simplement mettre les fichiers dans un répertoire commun et compiler. Vous devez référencer explicitement l'assembly.
La résolution de l'assemblage est plus importante lors de l'exécution. Au moment de la compilation, c'est assez déterministe.
- 1. Comment vérifier TR1 lors de la compilation?
- 2. erreur de compilation lors de la compilation de classe dans une autre
- 3. Problème lors de la compilation de l'exemple K & R
- 4. Impossible de créer des fichiers temporaires lors de la compilation
- 5. Indigène Erreur de référence lors de la compilation
- 6. Erreur lors de la compilation de rtmpd dans VC++
- 7. Erreur lors de la compilation de Ruby 1.8.7 Build 160
- 8. Erreur de lieur lors de la compilation du code C++
- 9. Résolution des erreurs 'non mappées' lors de l'utilisation de CreateQuery
- 10. Comment désactiver explicitement la compilation de _tkinter.c lors de la compilation de Python 2.4.3 sur CentOS 5?
- 11. erreur `missing-syscalls 'lors de la compilation du noyau
- 12. .NET - Erreur lors de la compilation des propriétés automatiques
- 13. ios :: nocreate erreur lors de la compilation d'un code C++
- 14. Java StackOverflowError lors de la compilation d'une méthode clone
- 15. iReport: Erreur lors de la compilation avec rapport sous-état
- 16. Erreur MSBuild lors de la compilation du site Web ASP.NET
- 17. erreur lors de la compilation dans Fujitsu COBOL 3.0
- 18. MIDL change cas d'identification lors de la compilation fichier IDL
- 19. Erreur lors de la compilation C++ fichier Dans GCC
- 20. Programme est plus lent lors de la compilation
- 21. ip_mreq struct disparaît lors de la compilation avec std = c99
- 22. Exécutez shell GWT normal, utilisez -noserver lors de la compilation?
- 23. Problème lors de la compilation du programme Platform SDK
- 24. Problème lors de la compilation en mode release --VC++
- 25. Erreur lors de la compilation dans Qt (Ubuntu)
- 26. Ordre de l'invocation de la méthode
- 27. Erreur du compilateur - uniquement lors de la compilation à partir de la ligne de commande
- 28. Modification de l'ordre des gestionnaires de polices lors de la compilation via la tâche ANT, impossible?
- 29. Problèmes lors de la compilation de programmes d'amplification à l'aide de la fonction cygwin
- 30. Ajustement de la hauteur de la résolution de l'écran jQuery