获取ASP Core的XML注释输出文件位置

时间:2016-04-18 10:10:29

标签: asp.net-core asp.net-core-mvc swagger swashbuckle asp.net-core-1.0

我已将Swashbuckle软件包添加到我的ASP核心项目中。

我想配置Swagger以使用VS xml评论自动生成。

问题在于我无法找到获取该位置的方法:

  1. PlatformServices.Default.Application.ApplicationBasePath - 指向项目根路径
  2. Directory.GetCurrentDirectory() - 相同
  3. Path.GetFullPath(".") - 相同
  4. IHostingEnvironment.WebRootPath - 相同
  5. 通过<project>.xproj选项在BaseIntermediateOutputPath中配置的输出文件夹。

    但我无法在运行时获得此位置。

    var pathToDoc = "????";
    options.OperationFilter(new Swashbuckle.SwaggerGen.XmlComments.ApplyXmlActionComments(pathToDoc));
    

    我看到的解决方案不好:

    1. 将配置选项添加到AppSettings.json
    2. 项目路径的相对路径(因为我配置了bin输出路径)。
    3. 但是我想在Docker,CI,localhost中使用它,所以我不认为这是使用硬编码解决方案的最佳解决方案..

1 个答案:

答案 0 :(得分:2)

您可以尝试以下函数来获取XML文件路径

 private string GetXmlCommentsPath()
        {
            var app = PlatformServices.Default.Application;
            return System.IO.Path.Combine(app.ApplicationBasePath, System.IO.Path.ChangeExtension(app.ApplicationName, "xml"));
        }

xml文件与应用程序具有相同的名称。我目前在我的项目中使用此代码,它工作正常。