【问题标题】:Using Conditional Compilation symbol in Class Library在类库中使用条件编译符号
【发布时间】:2017-07-15 03:38:40
【问题描述】:

我使用了一个由 Web 应用程序和 Windows 服务调用的类库。所有这些都包含在一个解决方案中。

我想根据应用程序(Web应用程序/Windows服务)的调用执行类库中的一些代码。我遇到了编译符号并尝试实现它,但没有奏效。

请查看以下代码:

#if WEB
        //call from web 
        //perform operation related to web
#endif
#if WindowsService
        //call from WindowsService
        //perform operation related to WindowsService
#endif

我已经通过Build分别在我的Web项目和Windows Service项目中设置了编译符号"WEB""WindowsService"项目属性选项卡。

注意:如果我在我的类库项目中设置编译符号,那么它可以工作。但这并不能满足我的要求。

任何帮助或新建议都会有所帮助!

【问题讨论】:

  • 它不应该因为不同的原因而工作,其中之一是您想使用编译时工具更改运行时行为。
  • @HamletHakobyan 你能再给我一些建议吗?
  • 有什么问题,库不能用于两种配置?如果只有一小部分,那是由他们中的一个人使用的。您应该将程序集拆分为总共 3 个程序集。 (主library.dll/libraryWeb.dll/libraryService.dll)

标签: c# asp.net asp.net-mvc windows-services class-library


【解决方案1】:

首先您需要创建一个新的解决方案配置

构建\配置管理器

将配置命名为“web”、“windows service”

将活动配置更改为“web”/“windows service”,并为每个项目定义正确的符号(项目属性\构建\条件编译符号“),保存您的项目和解决方案。

从现在开始,当您更改配置时,符号将是正确的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-03
    • 2019-03-24
    • 2010-12-31
    • 2010-12-08
    相关资源
    最近更新 更多