【问题标题】:Conditional Compilation Symbols not working条件编译符号不起作用
【发布时间】:2020-01-08 10:57:01
【问题描述】:

几乎每个版本的 Visual Studio 中都报告了很多具有相似或完全相同问题的错误。问题是我发现的每一个错误报告都已经解决了。附加信息:我完全相同的代码在一个月前就已经工作了。我正在使用 .NET Core 3.1.100 和 Visual Studio 16.4.2。

项目界面

.csproj 配置

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Demo|AnyCPU'">
  <DefineConstants>DEMO</DefineConstants>
</PropertyGroup>

代码(如您所见,DEMO 符号不会被应用)。

有人知道如何为我的生产环境修复此问题吗?

提前致谢!

【问题讨论】:

    标签: visual-studio .net-core visual-studio-2019 conditional-compilation asp.net-core-3.1


    【解决方案1】:

    这不应该在 ASP.NET Core 中完成。 ASP.NET Core 本身不使用构建配置的概念,虽然您可以在类似这样的地方或编译器指令中使用它们,但它违背了 ASP.NET Core 应用程序设计的原则。 ASP.NET Core 应用构建一次,随处部署,而 ASP.NET 则需要为每个环境单独构建。

    相反,这应该通过配置和环境来处理。如果您愿意,您甚至可以拥有一个“演示”环境,然后您只需注入 IWebHostingEnvironment 并检查 _env.IsEnvironment("Demo")。除此之外,您应该简单地通过配置(JSON、环境变量等)指定一个“Demo”布尔值,然后将其从 IConfiguration 中提取出来。

    【讨论】:

    猜你喜欢
    • 2011-10-29
    • 1970-01-01
    • 2013-12-29
    • 2023-03-10
    • 1970-01-01
    • 2015-01-28
    • 2010-10-03
    • 2019-03-24
    • 2010-12-31
    相关资源
    最近更新 更多