Maison >développement back-end >C++ >Comment puis-je trouver de manière fiable le chemin du répertoire de mon assemblage C #?

Comment puis-je trouver de manière fiable le chemin du répertoire de mon assemblage C #?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-31 22:51:16826parcourir

How Can I Reliably Find the Directory Path of My C# Assembly?

Obtenez le chemin d'assemblage en C #

Dans le test unitaire, le chemin d'accès du code d'exécution actuel est souvent nécessaire pour localiser les ressources pertinentes, telles que les fichiers XML.

directement en utilisant n'est pas toujours fiable, car il pointe généralement le chemin du cadre du test, et non l'assemblage du test. De même, le chemin temporaire inattendu peut être retourné dans certains outils de test.

Afin de résoudre ce problème, l'attribut Environment.CurrentDirectory peut être utilisé pour obtenir l'URI de l'assemblage d'exécution. À travers , vous pouvez extraire le chemin de fichier non codé à partir de cet URI. Enfin, utilisez Assembly.GetExecutingAssembly().Location pour obtenir le chemin du répertoire de l'assemblage.

Le fragment de code suivant définit un attribut auxiliaire pour fournir le chemin du répertoire de paramètre d'assemblage: Assembly.CodeBase UriBuilder Path.GetDirectoryName Dans le code de test, accédez simplement à cet attribut:

Cette méthode prouve qu'elle est fiable dans le scénario de test de diverses unités utilisant Nunit et Mbunit pour garantir que le chemin d'assemblage correct peut toujours être récupéré.
<code class="language-csharp">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);
    }
}</code>

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:
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