Visual Studio 指定XML文档输出路径的部署路径

xyhw6mcr  于 2023-08-07  发布在  其他
关注(0)|答案(4)|浏览(265)

我正在为我的.NET Core Web API项目使用Swashbuckle.AspNetCore包。我想添加XML注解支持,所以我必须在应用程序设置中将Build => Output => XML documentation file设置为true


的数据
不幸的是,自动生成的路径是绝对路径
C:\Users\myUser\...\repository\solution\project\project.xml
这只适用于我的机器。有办法使用占位符吗?例如:
{{pathToProject}}\project.xml
所以它在本地调试和部署时工作?

zxlwwiss

zxlwwiss1#

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

<PropertyGroup>
  <GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>

字符串
这在另一个StackOverflow回答中有记录:https://stackoverflow.com/a/47118584/19112
然后,您可以设置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);


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

wztqucjr

wztqucjr2#

单击Browse...按钮并选择项目路径下的文件夹,例如bin\debug
然后检查XML documentation file。它将生成一个相对路径。


的数据

nfg76nw0

nfg76nw03#

你可以修改project.csproj,然后你可以在debug[desired location]文件夹中得到一个自定义名称的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>

字符串

wljmcqd8

wljmcqd84#

就我的研究而言,我注意到<DocumentationFile>元素中$(ProjectDir)$(MSBuildProjectDirectory)$(MSBuildThisFileDirectory)之间的差异。
在我的解决方案(.NET Core 3.1)的上下文中,前两个都解析为C:\,因此构建失败,并出现“无法写入输出文件-访问被拒绝”异常。只有第三个关键字实际解析为my .csproj所在的文件夹路径。
所以如果你的构建失败了,我建议你尝试使用MSBuildThisFileDirectory

相关问题