NSwag Post Build swagger.Json生成失败



我正在生成构建swagger的一部分。

<Target Name="NSwag" AfterTargets="Build">
<Exec Command="$(NSwagExe_Net50) run nswagconfig.nswag /variables:Configuration=$(Configuration)" />
</Target>

我遇到的问题是,API在运行时正在从Azure应用程序配置中加载配置对象,就像我的Program.cs:

if (!context.HostingEnvironment.IsDevelopment())
{
config.AddAzureAppConfiguration(o =>
{
o.Connect(new Uri(builtConfig["AppConfig:Endpoint"]), new ManagedIdentityCredential())
.Select(KeyFilter.Any, LabelFilter.Null)
.Select(KeyFilter.Any, builtConfig["Environment"]);
});
}

context.HostingEnvironment.IsDevelopment()在构建时为false,由于某种原因,nswagger生成命令正在执行if语句,并使用Azure App配置SDK,这是错误的,超出了范围。

在这种情况下,我有哪些选项可以实现swagger生成,并且不影响基于不同环境的配置对象加载?

注意:如果我将条件更改为if (context.HostingEnvironment.IsDevelopment()),则swagger。Json生成工作正常

nswag.json文件中,将aspNetCoreEnvironment属性设置为"Development"

NSwag将在运行生成器之前将ASPNETCORE_ENVIRONMENT环境变量设置为此值,这是context.HostingEnvironment查看以确定其运行位置的环境变量之一。

最新更新