Nuget Pack 条件编译符号

Not*_*ple 5 conditional-compilation nuget nuget-package

我希望能够使用条件编译符号(NUGET或类似符号)打包我的 nuget 文件,以便我可以使用专门用于我的 nuget 构建的预处理器指令。

例如

#if NUGET 
    [Obsolete("use v2.IMyContract", true)]
#endif
Run Code Online (Sandbox Code Playgroud)

有什么方法可以将其传递给nuget pack MyProject.csproj命令吗?

为什么

我有一个包含插件合约的程序集,这些合约有多个版本(程序集中的 .vX. 命名空间),需要由实际实现构建和引用以实现向后兼容性。

我希望能够分发具有破坏[Obsolete(true)]属性的这些合同,以强制消费者在升级他们的 nuget 包时使用最新版本的合同。但是在内部我仍然需要使用这些对象来保持我的向后兼容性。