gpt4 book ai didi

.net - 获取执行程序集目录的最佳方法是什么

转载 作者:行者123 更新时间:2023-12-03 12:00:43 24 4
gpt4 key购买 nike

对于我的应用程序,我将一些配置文件与Assembly(exe)一起存储在xml中,并将其他一些临时文件存储用于处理目的。

我发现".\\"Application.StartupPath有点古怪。

我一直在用

String configPath = ".\\config.xml";

在我调用 OpenFIleDialog打开其他文件夹中的某些文件之前,它工作正常,以上语句失败。显然,“。\”是指“CurrentDirectory”,每次浏览到另一个文件夹时,该目录都会更改。

在某个时候,我正在使用
String configPath = Path.Combine(Application.StartupPath + "config.xml");

在某些时候,当我需要使用 Process.Start()从另一个文件夹执行该程序集时,事情开始崩溃。显然,工作目录设置不正确,并且 Application.StartupPath实际上是指工作目录,而不是程序集正在执行的目录,正如我所假设的那样。因此,我不得不诉诸使用ProcessInfo将工作目录设置为程序集的目录。在编写VSTO时,我对此也有疑问。

因此,我的问题是,在没有我刚才提到的那些怪异(或误解)的情况下,获取程序集正在执行的当前目录的最佳,最简单和最有把握的方法是什么?

编辑:我的意思是获取程序集所在的目录

编辑:根据 AppDomain.BaseDirectory上的MSDN,似乎它可以在运行时进行更改,这是我不想要的(只是为了澄清一下,不是我不想允许更改BaseDirectory,而是在我检索到它时,不确定是否已更改)

编辑:我注意到一个相关的问题发布得早得多。 What would cause the current directory of an executing app to change?

谢谢你们的回答。

最佳答案

System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location))

关于.net - 获取执行程序集目录的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/253468/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com