共享项目上的多个预处理器指令

Mulitple preprocessor directives on shared project

我在一个单独的项目中有一个共享数据库模型,它与另一个解决方案共享,但是我想使用不同的标识映射,所以我想知道是否可以使用预处理器指令。

内部 sharedProject 示例:

#if setup1
    public  virtual int Id { get; protected set; }

#elif setup2
    public  virtual Guid Id { get; protected set; }
#endif
    public virtual string Name { get; set; }

我知道您可以向项目添加预处理器指令,但不完全确定它是如何工作的,仅用于调试。 在:

Project -> Properties -> build -> Conditional preprocessor symbols

我应该这样做吗:

StartupProject1 -> properties -> Conditional preprocossor symbols = setup1
StartupProject2 -> properties -> Conditional preprocossor symbols = setup2
sharedProject -> properties -> Conditional preprocossor symbols = setup1,setup2

了解如何操作 我最终使用了配置管理器,并根据这些配置创建了多个配置,我只是添加了唯一需要的预处理器符号

SharedProject Setup1 配置

SharedProject -> properties -> Conditional preprocossor symbols = setup1

SharedProject Setup2 配置

SharedProject -> properties -> Conditional preprocossor symbols = setup2

在解决方案的配置管理器中,我只是为共享项目选择了所需的设置