Сохраняйте документацию в формате XML во время работы публикации с -c Release - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь создать проект, включающий swashbuckle, и для устранения неполадок хочу включить swagger в сборку релиза.

Я сузил его до этого:

КогдаЯ запускаю

dotnet publish -o ./out

xml-файл ProjectName.xml создается в папке out, а при запуске

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 работают локально, но не могут генерировать swagger на сервере

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Добавьте это в ваш файл csproj вместо установки OutputPath или DocumentationFile:

<PropertyGroup>
  <GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>
0 голосов
/ 28 сентября 2018

Добавьте в свой .csproj:

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

Или удалите условие:

<PropertyGroup>
    <OutputPath>bin\$(Configuration)\</OutputPath>
    <DocumentationFile>obj\$(Configuration)\ProjectName.xml</DocumentationFile>
</PropertyGroup>
...