VC# 中项目类型(目标)的预编译器概念
Precompiler notion for project type (target) in VC#
就好像项目处于 DEBUG / RELEASE 模式一样
我们使用
#ifdef DEBUG
...
TARGET 有相同的东西吗? (exe / lib / winexe) ?
没有内置任何东西,但在您的构建中您可以定义任何您喜欢的东西;这可以针对每个项目手动完成,或者您可以更动态地完成;这是一个示例,如果目标框架是(几个中的任何一个),则有条件地附加 PLAT_NO_EMITDLL
符号,以便代码可以 #if PLAT_NO_EMITDLL
而不是在 C# 文件中包含所有 "which framework has what platform features" 逻辑:
<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)
。
就好像项目处于 DEBUG / RELEASE 模式一样 我们使用
#ifdef DEBUG
...
TARGET 有相同的东西吗? (exe / lib / winexe) ?
没有内置任何东西,但在您的构建中您可以定义任何您喜欢的东西;这可以针对每个项目手动完成,或者您可以更动态地完成;这是一个示例,如果目标框架是(几个中的任何一个),则有条件地附加 PLAT_NO_EMITDLL
符号,以便代码可以 #if PLAT_NO_EMITDLL
而不是在 C# 文件中包含所有 "which framework has what platform features" 逻辑:
<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)
。