不管可执行文件的位置如何,如何使用相对路径访问项目目录中的文件?

月亮

使用Visual Studio运行项目时,工作目录(AppDomain.CurrentDomain.BaseDirectory)为{ProjectDirectoryPath}\bin\Debug\netcoreapp2.0; 但是,从发布目录(发布后)运行项目时,工作目录为{PublishDirectoryPath}所有的项目配置和数据文件都位于{ProjectDirectoryPath}{PublishDirectoryPath}在同一个树形结构。这意味着,每当我使用Visual Studio运行项目时,都应在每个文件的路径前面加上../../../

我当前的解决方案是在访问项目目录中的文件时使用以下功能:

public static string Root()
{
    string root = AppDomain.CurrentDomain.BaseDirectory;
    if (root.EndsWith("Debug\\netcoreapp2.0\\"))
        root = root + Slash("../../..");
    return root;
}

但是,在我看来,必须有一些更好的方法来解决此问题,因为使用位于项目目录下的文件并不是什么不寻常的事(尽管通常将配置和数据文件存储在%AppData%/home)。因此,似乎有如此多的开发人员真正实现如此普遍的解决方案似乎并不正确。

我想念什么?

月亮

经过数小时的研究,我发布了这个问题。即使发布后,我仍在继续寻找解决方案。在这个问题上,我看到了很多话题,而对于我来说,很多解决方案都行不通。现在我偶然发现了这一点,并且我使用了第二种方法。使用此解决方案,它可以工作。

对我来说,似乎很奇怪,以至于无法获得如此基本的东西。不幸的是,.NET Core还不够成熟。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Xcode:如何将当前工作目录设置为可执行文件的相对路径?

在带有符号链接的可执行文件中使用相对路径

/ vs. \到CMD和C系统功能中可执行文件的相对路径

通过相对路径中的守护程序systemd启动一个dotnet核心可执行文件

为什么File.OpenRead()将相对路径附加到可执行文件?

如何使可执行文件独立于项目目录

如何使用相对路径到执行文件而不是python命令路径导入其他文件?

如何在Play框架项目中使用相对路径访问资源文件?

如何使用 dlopen() 获取可执行文件路径

如何使用Qt确定可执行文件的目录?

Java-如何使用相对路径在目录中创建文件

如何获取可执行文件的完整路径,该可执行文件是从%PATH%中的目录之一调用的

如何避免在systemd中指向可执行文件的绝对路径?

如何访问带有相对路径的txt文件?

如何获取python可执行文件的文件路径

cmake-是否可以在运行时将可执行文件链接到具有相对路径的共享库?

如何定义文件的相对路径?

如何使用该位置的相对路径在一个位置中创建多个文件夹?

如何从相对路径的MediaStore中读取文件?

如何更改可执行文件的路径?

如何扫描可执行文件的搜索路径

如何从路径调用可执行文件?

如何清除Bash可执行文件路径的缓存?

如何使用相对路径包含文件?

如何返回给定可执行文件的目录?

如何仅获取当前可执行文件路径的目录部分?

如何知道调用shell目录的路径并在我的python可执行文件中使用它

如何从通过链接启动可执行文件的位置获取目录的名称?

使用Maven的可执行jar中资源文件的相对路径问题