2017-11-03 4 views
0

Ich versuche, Swagger in einer AspNet Core 2 Web API zu verwenden. Ich habe eine Probe, die auf Basis funktioniert:Ambiguites in AspNet Core 2.0 mit Swagger in Web-API

https://docs.microsoft.com/en-us/aspnet/core/tutorials/web-api-help-pages-using-swagger?tabs=visual-studio

aber wenn ich versuche, den gleichen Ansatz in einen anderen Dienst zu verwenden, erhalte ich kompilieren Fehler:

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

The call is ambiguous between the following methods or properties: 'Microsoft.AspNetCore.Builder.SwaggerBuilderExtensions.UseSwagger(Microsoft.AspNetCore.Builder.IApplicationBuilder, System.Action)'

und

'Microsoft.AspNetCore.Builder.SwaggerBuilderExtensions.UseSwagger(Microsoft.AspNetCore.Builder.IApplicationBuilder, string, System.Action)'

2>Done building project "SocialNetwork.Api.csproj" -- FAILED.

Die t arget-Aufruf ist in Startup.cs in der Configure-Methode.

// 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(); 
    } 

Hat jemand einen Einblick? Jede Hilfe würde sehr geschätzt werden. Danke.

+0

Scheint, dass Sie in der Erweiterungsmethode ambigoius Verweise Problem gefangen sind. Versuche, Usings zu entfernen und sie explizit aufzurufen. Zum Beispiel können Sie 'MvcApplicationBuilderExtensions.UseMvc (app);' anstelle von 'app.UseMvc();' verwenden –

Antwort

0

Könnte es sein, dass Sie Verweise auf mehrere Swagger-Bibliotheken haben? In meinem Fall hatte ich versehentlich einen Verweis auf andere, auf Swagger bezogene Nuget-Pakete hinzugefügt, und das verursachte den gleichen Fehler wie beschrieben.

0

Ich habe Swagger deinstalliert und habe gerade den SwashBuckle.AspNetCore installiert, da das Swagger-Objekt bereits darin implementiert ist. deshalb nennt es ambivalent.