如何解决NSwag Post Build swagger.json 生成失败
我正在使用我的 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 应用配置 SDK。
在这种场景下,我有什么选择,既可以实现swagger生成,又不影响基于不同环境的Configuration对象加载?
注意:如果我将条件更改为 if (context.HostingEnvironment.IsDevelopment())
,则 swagger.json 生成工作正常
解决方法
在您的 nswag.json
文件中,将 aspNetCoreEnvironment
属性设置为“开发”。
NSwag 会在运行生成器之前将 ASPNETCORE_ENVIRONMENT
环境变量设置为此值,这是 context.HostingEnvironment
查看以确定其运行位置的环境变量之一。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。