我可以使用MSBuild变量,以便在我的代码中解析它们吗?我在想一段需要$(ProjectDir)
的代码,因为它永远不会被移动(它是一个单元测试项目)。
一个例子:
public class MyTestDataPath
{
public void GetTestData()
{
return SOME_COMPILE_TIME_PROJECT_DIR_MACRO + "\\test-data"; // Should resolve via $(ProjectDir) during compile time.
}
}
答案 0 :(得分:0)
是的,有。但不是直接在你的代码中。您可以在项目属性中定义预构建操作:
echo $(ProjectDir) > "$(ProjectDir)\Resources\ProjDir.txt"
然后,您可以将文件projdir.txt作为资源添加到项目属性中,并使用以下代码引用代码中的内容:
var dir = Resources.ProjDir
但我只是将postbuild操作中的测试数据复制到输出目录中,并使用反射在运行时获取它(二进制文件和测试数据现在可以移植到其他开发人员)。