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