为 XML 文档输出路径指定部署路径

Ola*_*son 2 c# visual-studio .net-core

我正在Swashbuckle.AspNetCore为我的 .NET Core web api 项目使用该包。我想添加 XML 注释支持,所以我必须true在应用程序设置中设置 Build => Output => XML 文档文件。

在此处输入图片说明

不幸的是,自动生成的路径是绝对的

C:\Users\myUser\...\repository\solution\project\project.xml

所以这只适用于我的机器。有没有办法使用占位符?例如

{{pathToProject}}\project.xml

所以它在本地调试和部署时工作?

dth*_*her 10

有一种简单的方法可以在相对路径中生成 XML 文档文件。只需将DocumentationFile属性设置为true

<PropertyGroup>
  <GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

这已记录在另一个 StackOverflow 答案中: /sf/answers/3298300911/

然后,您可以设置您SwaggerGenOptions的 XML 文档,如下所示:

// Set the comments path for the Swagger JSON and UI.
var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
options.IncludeXmlComments(xmlPath);
Run Code Online (Sandbox Code Playgroud)

如此处的示例所示: https ://code-maze.com/swagger-ui-asp-net-core-web-api/#ExtendingDocumentation


Kyl*_*SFT 5

单击Browse...按钮,在项目路径下选择一个文件夹,如bin\debug.

然后检查XML documentation file. 它将生成一个相对路径。

在此处输入图片说明


kat*_*nco 1

您可以更改project.csproj,然后在debug[所需位置]文件夹中获取具有自定义名称的xml文件。我注释掉了默认行

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <!--<DocumentationFile>C:\Users\furkan.katman\source\repos\WebApplication1\WebApplication1\WebApplication1.xml</DocumentationFile>-->
      <DocumentationFile>bin\Debug\ProjectName.XML</DocumentationFile>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)