使用-c Release运行发布时保留文档xml文件

时间:2018-09-28 08:49:40

标签: asp.net-core msbuild .net-core swashbuckle

我正在尝试构建一个包含swashbuckle的项目,并且为了进行故障排除,我想将大手笔纳入发行版本中。

我现在将其范围缩小了:

我跑步时

dotnet publish -o ./out

在out文件夹中以及我运行时会生成xml文件ProjectName.xml

dotnet publish -o ./out -c Release

未生成xml文件。

csproj文件如下:

<Project Sdk="Microsoft.NET.Sdk.Web">

    <PropertyGroup>
        <TargetFramework>netcoreapp2.1</TargetFramework>
        <OutputType>Exe</OutputType>
    </PropertyGroup>

    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
        <OutputPath>bin\Debug\</OutputPath>
        <DocumentationFile>obj\Debug\ProjectName.xml</DocumentationFile>
    </PropertyGroup>

    <ItemGroup>
        <Folder Include="somefolder\" />
    </ItemGroup>

    <ItemGroup>
        <PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.4" />
        ...
        <PackageReference Include="Swashbuckle.AspNetCore" Version="3.0.0" />
        ...
        <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.1.3" />
        <PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="3.0.0" />
    </ItemGroup>

</Project>

我敢肯定,我可以在给定的时间内进一步缩小范围,但是我对dotnet相当陌生,而且我也猜想有人已经看到了问题。

我正在寻找一种解决方案,或者在解释为什么这样做太错误而无法实现的原因。

PS:在Linux上运行,因此没有Visual Studio。否则,这可能是我所知道的一种可能的解决方案:Swashbuckle + XmlComments work locally, but fail swagger generation on server

2 个答案:

答案 0 :(得分:3)

将其添加到您的csproj文件中,而不是设置OutputPathDocumentationFile

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

答案 1 :(得分:1)

添加您的.csproj:

select teams.team_name_eng AS "TNAME1", teams.team_name_eng AS "TNAME2"
from matches, teams as teams_1, teams as teams_2 where matches.team1_uid = teams_1.tid
AND matches.team2_uid = teams_2.tid ;

或删除条件:

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
    <OutputPath>bin\Release\</OutputPath>
    <DocumentationFile>obj\Release\ProjectName.xml</DocumentationFile>
</PropertyGroup>