条件编译符号不起作用
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
.
中拉出
几乎每个 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
.