【发布时间】:2021-03-04 08:18:48
【问题描述】:
我正在使用我的 csproj 的一部分生成构建 swagger.json 的一部分。
<Target Name="NSwag" AfterTargets="Build">
<Exec Command="$(NSwagExe_Net50) run nswagconfig.nswag /variables:Configuration=$(Configuration)" />
</Target>
我遇到的问题是 API 在运行时正在从 Azure App Configuration 加载 Configuration 对象,就像我的 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 Configuration SDK,这是错误的,超出范围。
在这种场景下我有什么选择,既可以实现swagger生成,又不影响基于不同环境的Configuration对象加载?
注意:如果我将条件更改为 if (context.HostingEnvironment.IsDevelopment()) swagger.json 生成工作正常
【问题讨论】:
标签: .net asp.net-core .net-core swagger-codegen nswag