Heim >Backend-Entwicklung >C++ >Wie kann ich den Montagepfad zuverlässig in .NET bekommen?
Die Bestimmung des Standorts der derzeit ausführenden Montage ist eine häufige Aufgabe in der .NET -Entwicklung. Dieser Weg ist entscheidend für den Zugriff auf Ressourcen in Bezug auf das Verzeichnis der Versammlung. Während Unit -Tests diese Informationen häufig erfordert, erstrecken sich die Verwendung auf verschiedene andere Szenarien.
Es gibt verschiedene Methoden, um den Montagepfad mit jeweils potenziellen Einschränkungen zu erhalten:
Environment.CurrentDirectory
: Gibt das aktuelle Arbeitsverzeichnis der Anwendung zurück, das sich vom tatsächlichen Standort der Baugruppe unterscheidet. Assembly.GetAssembly(Type).Location
: liefert den Pfad der Baugruppe, die einen angegebenen Typ enthält. Dies kann manchmal auf einen temporären Ort hinweisen, insbesondere innerhalb von Test -Frameworks. Assembly.GetExecutingAssembly().Location
: Ähnlich wie bei der vorherigen Methode wird der Pfad der ausführenden Montage zurückgegeben, kann aber auch in bestimmten Testkontexten einen temporären Pfad ergeben. Um die Inkonsistenzen der obigen Ansätze zu überwinden, wird eine zuverlässigere benutzerdefinierte Eigenschaft empfohlen:
<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>
Diese Methode verwendet die Eigenschaft CodeBase
, die die URI der Baugruppe liefert. Der URI wird dann nicht beschleunigt und der Verzeichnispfad unter Verwendung von Path.GetDirectoryName
extrahiert. Dieser Ansatz sorgt dafür, dass konsistente Ergebnisse selbst in verschiedenen Umgebungen in den Unit -Tests gewährleistet sind. Dies liefert eine zuverlässige Lösung zum Abrufen des Standorts der Baugruppe unabhängig vom Ausführungskontext.
Das obige ist der detaillierte Inhalt vonWie kann ich den Montagepfad zuverlässig in .NET bekommen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!