Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 共享项目上的多个预处理器指令_C#_Visual Studio_Preprocessor Directive - Fatal编程技术网

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

C# 共享项目上的多个预处理器指令,c#,visual-studio,preprocessor-directive,C#,Visual Studio,Preprocessor Directive,我在一个单独的项目中有一个共享数据库模型,该模型与另一个解决方案共享,但是我想使用不同的标识映射,所以我想知道是否可以使用预处理器指令 内部共享项目示例: #if setup1 public virtual int Id { get; protected set; } #elif setup2 public virtual Guid Id { get; protected set; } #endif public virtual string Name { get;

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

内部共享项目示例:

#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; }
我知道您可以将预处理器指令添加到项目中,但不完全确定它是如何工作的,只用于调试。 在:

我是否应该这样做:

StartupProject1 -> properties -> Conditional preprocossor symbols = setup1
StartupProject2 -> properties -> Conditional preprocossor symbols = setup2
sharedProject -> properties -> Conditional preprocossor symbols = setup1,setup2
了解如何做 我最终使用了配置管理器,并创建了多个配置,基于这些配置,我只添加了唯一需要的预处理程序符号

SharedProject设置1配置

SharedProject -> properties -> Conditional preprocossor symbols = setup1
SharedProject -> properties -> Conditional preprocossor symbols = setup2
SharedProject设置2配置

SharedProject -> properties -> Conditional preprocossor symbols = setup1
SharedProject -> properties -> Conditional preprocossor symbols = setup2
在解决方案的configuration manager中,我只是为共享项目选择了所需的设置