在Web API中使用Swagger的AspNet Core 2.0中存在歧义

在Web API中使用Swagger的AspNet Core 2.0中存在歧义,swagger,asp.net-core-webapi,Swagger,Asp.net Core Webapi,我试图在AspNet Core 2 Web API中使用Swagger。我有一个基于以下内容的示例: 但是,当我尝试在另一个服务中使用相同的方法时,我得到编译错误: 2> Startup.cs(41,17,41,27):错误CS0121: 以下方法或属性之间的调用不明确: 'Microsoft.AspNetCore.Builder.SwaggerBuilderExtensions.UseSwagger(Microsoft.AspNetCore.Builder.IAApplicationBuil

我试图在AspNet Core 2 Web API中使用Swagger。我有一个基于以下内容的示例:

但是,当我尝试在另一个服务中使用相同的方法时,我得到编译错误:

2> Startup.cs(41,17,41,27):错误CS0121:

以下方法或属性之间的调用不明确: 'Microsoft.AspNetCore.Builder.SwaggerBuilderExtensions.UseSwagger(Microsoft.AspNetCore.Builder.IAApplicationBuilder, 系统(行动)'

'Microsoft.AspNetCore.Builder.SwaggerBuilderExtensions.UseSwagger(Microsoft.AspNetCore.Builder.IAApplicationBuilder, 字符串,System.Action)'

2> 已完成构建项目“SocialNetwork.Api.csproj”--失败

目标调用位于Configure方法的Startup.cs中

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        // Enable middleware to serve generated Swagger as a JSON endpoint.
        app.UseSwagger(); // Ambiguous

        // Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.), specifying the Swagger JSON endpoint.
        app.UseSwaggerUI(c =>
        {
            c.SwaggerEndpoint("/swagger/v1/swagger.json", "SocialNetwork API V1");
        });

        app.UseMvc();
    }
有人对此有见解吗?任何帮助都将不胜感激。
谢谢。

您是否有对多个Swagger库的引用?在我的例子中,我意外地添加了对其他与招摇过市相关的Nuget包的引用,这导致了与您描述的相同的错误

我卸载了Swagger,只安装了Swashback.AspNetCore,因为它已经在内部实现了Swagger对象。这就是它调用ambigious的原因。

似乎您陷入了扩展方法ambigious引用的问题中。尝试删除using并显式调用它们。例如,您可以使用
mvcapapplicationbuilderextensions.UseMvc(app)而不是
app.UseMvc()我有这个问题,试图删除NSwag,但似乎无法摆脱NSwag。如果我删除了NSwag并安装了swashbuckle,我的结果是:CS0121,那么以下方法或属性之间的调用是不明确的:Microsoft.AspNetCore.Builder.NSwagApplicationBuilderExtensions.UseSwagger(Microsoft.AspNetCore.Builder.iaApplicationBuilder,System.Action)和Microsoft.AspNetCore.Builder.SwaggerBuilderExtensions.UseSwagger(Microsoft.AspNetCore.Builder.iaApplicationBuilder,System.Action)