Maison > développement back-end > C++ > Comment puis-je obtenir de manière fiable le chemin d'assemblage dans .NET?

Comment puis-je obtenir de manière fiable le chemin d'assemblage dans .NET?

Barbara Streisand
Libérer: 2025-01-31 23:01:10
original
339 Les gens l'ont consulté

How Can I Reliably Get the Assembly Path in .NET?

Récupération du chemin d'assemblage dans les applications .NET

Déterminer l'emplacement de l'assemblage en cours d'exécution est une tâche fréquente dans le développement .NET. Ce chemin est crucial pour accéder aux ressources par rapport au répertoire de l'assemblée. Alors que les tests unitaires nécessitent souvent ces informations, ses utilisations s'étendent à divers autres scénarios.

Plusieurs méthodes existent pour obtenir le chemin d'assemblage, chacune avec des limites potentielles:

  • Environment.CurrentDirectory: Renvoie le répertoire de travail actuel de l'application, qui pourrait différer de l'emplacement réel de l'assembly.
  • Assembly.GetAssembly(Type).Location: Fournit le chemin de l'assemblage contenant un type spécifié. Cela peut parfois indiquer un emplacement temporaire, en particulier dans les cadres de test.
  • Assembly.GetExecutingAssembly().Location: Similaire à la méthode précédente, cela renvoie le chemin de l'assemblage exécutif, mais peut également produire un chemin temporaire dans certains contextes de test.

Une solution robuste

Pour surmonter les incohérences des approches ci-dessus, une propriété personnalisée plus fiable est recommandée:

public static string AssemblyDirectory
{
    get
    {
        string codeBase = Assembly.GetExecutingAssembly().CodeBase;
        UriBuilder uri = new UriBuilder(codeBase);
        string path = Uri.UnescapeDataString(uri.Path);
        return Path.GetDirectoryName(path);
    }
}
Copier après la connexion

Cette méthode utilise la propriété CodeBase, qui fournit l'URI de l'assembly. L'URI est ensuite analysé, non recommandé et le chemin du répertoire est extrait à l'aide de Path.GetDirectoryName. Cette approche garantit des résultats cohérents, même dans divers environnements de test unitaires. Cela fournit une solution fiable pour récupérer l'emplacement de l'assemblage quel que soit le contexte d'exécution.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal