-1

请考虑以下场景:我有一个 C++ 文件,我们从 C# 调用该 C++ 代码。在 C++ 文件中,有一个标志

#define HasFeature

我希望在生产代码中未定义此标志,并且仅在我的测试代码中我想激活它们。测试完成后,我希望它再次未定义。

我知道这是一个编译时特性,在运行时编辑它是不可能的。由于另一个原因,我无法将#define 转换为类成员。

我可以想到添加两个文件的一件事,其中一个定义了标志,其中一个未定义标志,在 test.proj 中使用已定义标志的文件,而 production.proj 使用未定义标志的文件。这在 Visual Studio 中可行吗?如果是这样,我该怎么做?(也许在 csproj 等中使用某些功能?)

提前致谢。

4

1 回答 1

0

您可以在构建中使用命令行参数定义您的标志:

/p:DefineConstants="HasFeature"

这样,您只需要在测试构建中设置它并在生产构建定义中删除此参数。

于 2017-02-07T09:58:23.733 回答