我需要知道是否存在某种预处理程序指令,或者只是一种技巧,它允许我将应用程序编译的解决方案文件夹嵌入到应用程序本身中。
我们有一个系统需要检查本地计算机上的文件,如果它们不存在,则从远程服务器或云服务获取它们。出于可移植性的原因,必须对其进行抽象。我们有单元测试,以确保远程获取和存储逻辑正常工作,但在我们推送到服务器之前,我需要确保人们端到端本地测试,所以我想有一个虚拟远程文件提供程序只需检查本地计算机上的其他文件夹。我不想假设一个特定的路径(如C:\ dummy_files)也不能假设文件将相对于已编译程序集的实际执行路径(因此类似Directory.GetCurrentDirectory()的东西不会工作)。
如果我知道正在编译执行的应用程序的位置,那么这些文件应该与解决方案目录以及源代码相关。显然,我会将预处理程序指令仅允许此代码在调试中运行。
答案 0 :(得分:1)
考虑将$(ProjectPath)
写入文本文件的预构建脚本(项目 - >属性 - >构建事件 - >预构建事件命令行)。然后,您可以将此文本文件包含为嵌入式资源,并使用Reflection API从中读取。
答案 1 :(得分:0)
如果您只需要一个可以使用的执行路径:
Environment.CurrentDirectory
答案 2 :(得分:0)
请尝试使用此
string wanted_path = Path.GetDirectoryName(Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory()));
答案 3 :(得分:0)
尝试使用以下
Server.MapPath
或
Request.MapPath