【问题标题】:Getting full path to project directory (both in Visual Studio debug and release)获取项目目录的完整路径(在 Visual Studio 调试和发布中)
【发布时间】:2020-12-30 02:18:26
【问题描述】:

我无法弄清楚如何获取已添加或创建到项目中的文件的路径。目前在项目的根目录我有一个数据文件夹<projectName>\data\..。我一直在尝试获取文件路径并检查文件是否存在,但在获取动态且正确的路径时遇到了麻烦。

我的主要尝试是使用Directory.GetCurrentDirectory()AppDomain.CurrentDomain.BaseDirectory,但最终使用G:\..\<projectName>\<projectName>\bin\Debug\netcoreapp3.1\ 之类的东西。第一个<projectName> 有.sln 文件,第二个<projectName> 有我的数据、bin 等文件夹。

我希望能够在我的 IDE 中调试和发布程序时检查该路径。如此有效地找到路径G:\..\<projectName>\<projectName>\data\<actualFile>。也许我误解了我应该如何在我的项目文件夹中设置我的目录。因为我知道运行调试会将 .exe 放在 bin\debug 中。因此,除非有某种方法可以在调试时更改独立于 exe 的工作目录(我认为这不会真正有太大帮助,并且一旦我发布就会导致同样的问题)或 Visual Studio 中的一些其他设置,我不太确定该怎么办。此外,我不想放置一些静态文件夹路径,因为我想将其全部包含在项目目录中。

简而言之,我如何在我的项目目录中获取特定的文件路径,并让该路径同时用于调试和发布?

【问题讨论】:

  • 是最终版本需要的数据文件夹吗?还是仅用于调试?为什么要放在项目的根目录下,而不是和exe放在同一个目录下?
  • 发布时需要数据文件夹。在发布时确保项目结构可能在 exe 旁边有 data 文件夹,但我无法弄清楚如何在调试时模仿它。

标签: c# wpf visual-studio


【解决方案1】:

有一个用于此目的的设置。

选择数据文件夹中的文件,右键单击,从上下文菜单中选择Properties,然后将“复制到输出目录”属性设置为“始终复制”。

这样,每次构建项目时,数据文件夹都会自动复制到bin\Debugbin\Release

【讨论】:

  • 谢谢,这成功了!这引起了非常混乱的头痛,尤其是在将其与 Java 或 C++ 之类的东西进行比较时。但是,学习经验的一部分。将来我必须了解更多关于如何发布和打包它的信息,但我觉得这有助于解决一个非常令人困惑的问题,以便暂时解决大部分问题。
  • 很高兴它有帮助。这是几个世纪前内置于 IDE 中的东西,以消除手动重复将文件复制到输出文件夹的需要。好在一旦你学会了它只是一个简单的 IDE 功能,你就永远不会忘记。
猜你喜欢
  • 1970-01-01
  • 2010-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-28
  • 2014-04-18
  • 1970-01-01
  • 2018-10-24
相关资源
最近更新 更多