Comment obtenir une liste d'assemblages dans un emplacement donné? J'essaie de réfléchir sur le domaine, et cela me donne tout ce qui est chargé. Je veux juste ce qu'il y a dans le répertoire de l'assembly.Trouver des assemblées dans un répertoire
Répondre
La solution fournie par BtBh travaille pour trouver tous les fichiers avec extension .dll. Ricards remarque que seul le runtime .Net peut vous dire ce qu'est un assembly valide. Cela signifie que vous auriez à charger explicitement chaque fichier .dll trouvé pour vérifier s'il s'agit d'un assembly .Net valide (il pourrait s'agir simplement d'une ancienne DLL Windows). Comme mentionné par Josh il y a une méthode statique Assembly.ReflectionOnlyLoadFrom qui te permet de charger des assemblées pour l'inspection par l'intermédiaire de la réflexion.
Pour obtenir le chemin d'assemblage exécutant:
using System.IO;
String path= Path.GetDirectoryName(
System.Reflection.Assembly.GetExecutingAssembly().Location);
Pour obtenir tous les ensembles:
DirectoryInfo di= new DirectoryInfo(path);
FileInfo[] fis = di.GetFiles("*.dll");
foreach(FileInfo fis in fls)
//do something
Vous pouvez obtenir une liste des fichiers en utilisant l'espace de noms System.IO. Regardez la classe Directory. Vous devez ensuite déterminer si le fichier est un assembly ou non. Vous pouvez inspecter le binaire à la recherche des métadonnées IL, mais cela n'est pas compris dans cette réponse.
Vous pouvez également essayer et il suffit de charger chaque fichier de réflexion uniquement à l'aide System.Reflection.Assembly.ReflectionOnlyLoadFrom().
Seulement en les chargeant, et en notant ceux qui échouent à charger. Cela laissera bien sûr ceux qui n'ont pas échoué chargés dans le domaine d'application actuel.
uniquement runtime .NET vous dira ce qui est un ensemble valide (et les ensembles ne doivent pas avoir un « .exe » ou « .dll » extension).
Pour obtenir toutes les assemblées chargées dans le domaine de l'application en cours, vous pouvez utiliser la méthode GetAssemblies:
Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
- 1. Comment écrire regex pour trouver un répertoire dans une URL?
- 2. L'Ordre des Assemblées en cours de chargement
- 3. Trouver le fichier le plus ancien (récursivement) dans un répertoire
- 4. Python, trouver un fichier dans le même répertoire
- 5. "officiel" façon de déployer des assemblées dans le GAC?
- 6. NHibernate Inscrit subclass dans les assemblées séparées
- 7. combiner des répertoires dans un répertoire virtuel
- 8. Trouver tous les fichiers dans un répertoire qui ne sont pas eux-mêmes des répertoires
- 9. Commande Linux: Répertoire dans un répertoire
- 10. Décompresser un répertoire dans son répertoire parent
- 11. Répertoire d'API/WebServices - où puis-je en trouver un?
- 12. Pourquoi s'embêter avec des noms forts pour les assemblées privées?
- 13. Comment trouver des "trous" dans un tableau
- 14. Trouver l'état des contrôles dans un ListView
- 15. Comment trouver le répertoire personnel d'un utilisateur dans Perl?
- 16. Trouver tous les dossiers dans le répertoire racine
- 17. Impossible de trouver un répertoire quand je connais juste son nom par Trouver?
- 18. comment créer un sous-répertoire dans un répertoire
- 19. assemblées SQL Server et SqlBinary DataType
- 20. Pour créer un répertoire des employés
- 21. créer un répertoire dans l'iPhone
- 22. Comment déplacer par programme des fichiers dans un répertoire WebDAV
- 23. Exécution récursive des fichiers dans un répertoire utilisant ruby
- 24. Comment stocker des valeurs persistantes de fichiers dans un répertoire?
- 25. Modifier l'ordre des fichiers dans un répertoire Windows en C
- 26. Trouver quels groupes/Listes de distribution un utilisateur spécifique appartient dans le répertoire actif
- 27. Comment trouver le répertoire site_perl standard pour Perl?
- 28. Redimensionner des images dans le répertoire
- 29. Comment protéger un répertoire dans asp.net MVC?
- 30. Trouver répertoire de travail à partir de Ant
merci, mais cela m'apporte aussi les assemblages de frameworks. Je veux juste les locaux. – Steve