VC#中项目类型(目标)的预编译器概念
Posted
技术标签:
【中文标题】VC#中项目类型(目标)的预编译器概念【英文标题】:Precompiler notion for project type (target) in VC# 【发布时间】:2020-03-02 06:50:16 【问题描述】:就像在 DEBUG / RELEASE 模式下的项目一样 我们使用
#ifdef DEBUG
...
TARGET 有什么相同的吗? (exe/lib/winexe) ?
【问题讨论】:
如果您查看 Debug 配置的开箱即用项目配置,您将看到 DEBUG 在预定义符号列表中。这就是它放在那里的原因。你可以使用任何你想要的符号,EXE、DOG 等等。没有魔法 【参考方案1】:没有内置任何东西,但在你的构建中你可以定义任何你喜欢的东西;这可以在每个项目中手动完成,或者您可以更动态地完成;这是一个示例,如果目标框架是(少数几个),则有条件地附加 PLAT_NO_EMITDLL
符号,以便代码可以 #if PLAT_NO_EMITDLL
而不是在 C# 文件中包含所有“哪个框架具有哪些平台功能”逻辑:
<PropertyGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
<DefineConstants>$(DefineConstants);PLAT_NO_EMITDLL</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'netstandard2.1'">
<DefineConstants>$(DefineConstants);PLAT_NO_EMITDLL</DefineConstants>
</PropertyGroup>
在您的情况下,您可能想查看$(OutputType)
。
【讨论】:
以上是关于VC#中项目类型(目标)的预编译器概念的主要内容,如果未能解决你的问题,请参考以下文章