编译时的Project(bin)文件夹路径?

Inf*_*ris 2 configuration nunit web-config visual-studio-2008 visual-studio

有没有办法在编译时找出项目路径?

我想创建一个单元测试,测试默认web.config中的配置(项目文件夹中的配置).主要是为了减少人为错误.

我不能在运行时依赖程序集位置(用于测试),因此我需要知道项目文件夹在哪里访问web.config.

我需要一个"通用"解决方案,因为我想为多个项目使用相同(基础)测试代码,并且对于大多数开发机器而言,物理位置无论如何都是不同的.

谢谢.

Sim*_*rim 8

根据rkb的回答,

听起来你有一个C#项目,请使用此post构建步骤.

echo namespace ProjectPath { static public class ProjectPath { public static readonly string Path = @"$(ProjectDir)";} } > $(ProjectDir)path.cs
Run Code Online (Sandbox Code Playgroud)

然后将path.cs作为现有项包含在测试项目中.然后你可以通过以下方式访问它

string path = ProjectPath.ProjectPath.Path;
Run Code Online (Sandbox Code Playgroud)


rkb*_*rkb 3

如果您需要 Visual Studio 项目路径,在编译时,您可以使用预构建事件(请参阅“项目属性”对话框)来运行命令行,该命令行将创建项目中使用的源文件。

源文件将包含一些代码,例如变量定义。您的测试代码使用此变量。变量的值将来自VS;当它运行预构建事件命令时,它会用项目属性替换某些宏。您想要的宏可能是 ProjectDir。

所以最后,您的预构建事件命令如下:

echo 'const char * PROJECT_PATH = "$(ProjectDir)";' > source.cpp
Run Code Online (Sandbox Code Playgroud)

不确定您使用的是什么语言,因此请进行相应调整。