条件编译符号不起作用

Conditional Compilation Symbols not working

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

项目 GUI

.csproj 配置

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

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

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

提前致谢!

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

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

中拉出