使用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] 删除。
我来说两句