Tez*_*eld 8 xml visual-studio swagger
这无疑是使您发疯的那些因素之一。正如标题所示,我只是想做的就是显示使用swagger从xml文件中提取的注释。
我似乎已经按照大手笔的文档采取了所有步骤,但无济于事。希望你好心的人可以指出我正确的方向。
确保文件存在:
已配置 SwaggerConfig.cs
我也尝试过更改路径:@“ bin / .... xml”
似乎没有任何作用。
**错误“找不到文件”:**
谁能指出我正确的方向?
问候,
小智 38
在 .net 核心 3.0 中
<GenerateDocumentationFile>true</GenerateDocumentationFile>
Run Code Online (Sandbox Code Playgroud)
在 .csproj 文件的 PropertyGroup 标签中
小智 15
如异常所示,应用程序在项目的基本目录中查找 XML,而不是在“bin”文件夹中。
为什么应用程序在基本目录中搜索?看看这些行:
var baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
var commentsFileName = Assembly.GetExecutingAssembly().GetName().Name + ".XML";//"G2F.Collective.Api.XML"
var commentsFile = Path.Combine(baseDirectory, commentsFileName);
Run Code Online (Sandbox Code Playgroud)
注释文件的名称配置为基目录和带有项目名称的xml的组合
c.IncludeXmlComments(commentsFile);
Run Code Online (Sandbox Code Playgroud)
最后,这条指令告诉 Swagger 使用哪个文件来获取注释,这是它在该目录中查找该文件的真正原因。
因此,最后一条指令中指示的内容必须根据项目配置的 Build 选项卡中的配置。

Jps*_*psy 13
这些是.Net Core 2.2中所需的步骤:
将其放在Startup.cs中:
public void ConfigureServices(IServiceCollection services)
{
...
// Register the Swagger generator, defining 1 or more Swagger documents
services.AddSwaggerGen(c =>
{
...
var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
c.IncludeXmlComments(xmlPath);
});
}
Run Code Online (Sandbox Code Playgroud)
编辑您的.csproj文件并添加/更改这些节点:
<PropertyGroup>
...
<!--
Make sure documentation XML is also included when publishing (not only when testing)
see https://github.com/Azure/service-fabric-issues/issues/190
-->
<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
...
<DocumentationFile>bin\$(Configuration)\YOUR_PROJECT_NAME.xml</DocumentationFile>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
好的,所以我设法通过指向根目录使其工作。
我仍然不知道为什么它无法检测到 bin 目录中的 xml 文件。这再次通过在根目录中添加一个 xml 文件来实现。
代码更改:
var baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
//var commentsFileName = Assembly.GetExecutingAssembly().GetName().Name + ".XML";
var commentsFileName = "Comments" + ".XML";
var commentsFile = Path.Combine(baseDirectory, commentsFileName);
c.IncludeXmlComments(commentsFile);
Run Code Online (Sandbox Code Playgroud)
我从 Microsoft 文档站点找到了以下解决方案。在“解决方案资源管理器”中右键单击该项目,然后选择“编辑 <项目名称>.csproj”。手动将突出显示的行添加到 .csproj 文件中:
<PropertyGroup>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<NoWarn>$(NoWarn);1591</NoWarn>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9407 次 |
| 最近记录: |