some problem with dotnet publish
Steps to reproduce
I have a project,SplitPackage.Web.Host reference SplitPackage.Web.Core, SplitPackage.Web.Core reference SplitPackage.Application.SplitPackage.Web.Host 's publish need SplitPackage.Application.xml and SplitPackage.Web.Core.xml in the SwaggerXml folder.
when I excuting command dotnet publish in dotnet sdk 2.1.505, it do well.when I upgrade to 2.2.300.The result is not as expected
SplitPackage.Web.Host.csproj 's content below
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>
<PreserveCompilationContext>true</PreserveCompilationContext>
<AssemblyName>SplitPackage.Web.Host</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>SplitPackage.Web.Host</PackageId>
<UserSecretsId>AbpCompanyName-SplitPackage-56C2EF2F-ABD6-4EFC-AAF2-2E81C34E8FB1</UserSecretsId>
<DebugType>portable</DebugType>
</PropertyGroup>
<PropertyGroup>
<DefineConstants>FEATURE_SIGNALR_ASPNETCORE</DefineConstants>
<DockerComposeProjectPath>..\..\docker-compose.dcproj</DockerComposeProjectPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DocumentationFile></DocumentationFile>
<NoWarn>1701;1702;</NoWarn>
</PropertyGroup>
<ItemGroup>
<Content Remove="wwwroot\index.html" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="SwaggerIndex.html" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Update="Dockerfile">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</None>
<None Update="log4net.config">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</None>
<None Update="wwwroot\**\*">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</None>
<None Include="SplitPackageRules\**\*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="SwaggerXml\**">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</None>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SplitPackage.Web.Core\SplitPackage.Web.Core.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.2.0" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.2.0">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Castle.LoggingFacility.MsLogging" Version="3.1.0" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.2.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="2.2.0" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
<PackageReference Include="Abp.Castle.Log4Net" Version="4.0.2" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
</ItemGroup>
<ItemGroup>
<Content Update="Configure\log4net.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
</Project>
SplitPackage.Web.Core.csproj's content below
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<VersionPrefix>1.0.0.0</VersionPrefix>
<TargetFramework>netcoreapp2.1</TargetFramework>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>
<AssemblyName>SplitPackage.Web.Core</AssemblyName>
<PackageId>SplitPackage.Web.Core</PackageId>
<GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
<GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<GenerateAssemblyCopyrightAttribute>false</GenerateAssemblyCopyrightAttribute>
<GenerateAssemblyVersionAttribute>false</GenerateAssemblyVersionAttribute>
<GenerateAssemblyFileVersionAttribute>false</GenerateAssemblyFileVersionAttribute>
<RootNamespace>SplitPackage</RootNamespace>
<DebugType>portable</DebugType>
</PropertyGroup>
<PropertyGroup>
<DefineConstants>FEATURE_SIGNALR_ASPNETCORE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<NoWarn>1701;1702;1591</NoWarn>
<DocumentationFile>../SplitPackage.Web.Host/SwaggerXml/SplitPackage.Web.Core.xml</DocumentationFile>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\SplitPackage.Application\SplitPackage.Application.csproj" />
<ProjectReference Include="..\SplitPackage.EntityFrameworkCore\SplitPackage.EntityFrameworkCore.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="System.ValueTuple" Version="4.5.0" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Owin" Version="2.2.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="4.0.1" />
<PackageReference Include="Abp.AspNetCore" Version="4.0.2" />
<PackageReference Include="Abp.ZeroCore" Version="4.0.2" />
<PackageReference Include="Microsoft.AspNetCore" Version="2.2.0" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Abp.AspNetCore.SignalR" Version="4.0.2" />
</ItemGroup>
<ItemGroup>
<Folder Include="Authentication\UmsAuth\System\" />
</ItemGroup>
</Project>
SplitPackage.Application.csproj's context below:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<VersionPrefix>1.0.0.0</VersionPrefix>
<TargetFramework>netcoreapp2.1</TargetFramework>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>
<AssemblyName>SplitPackage.Application</AssemblyName>
<PackageId>SplitPackage.Application</PackageId>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<RootNamespace>SplitPackage</RootNamespace>
<DebugType>portable</DebugType>
</PropertyGroup>
<PropertyGroup>
<DefineConstants>FEATURE_SIGNALR_ASPNETCORE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DocumentationFile>../SplitPackage.Web.Host/SwaggerXml/SplitPackage.Application.xml</DocumentationFile>
<NoWarn>1701;1702;1591;1570;1571;1572;1573</NoWarn>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\SplitPackage.Core\SplitPackage.Core.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="Business\NumFreights\" />
<Folder Include="Business\WeightFreights\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="DeepCloner" Version="0.10.2" />
</ItemGroup>
</Project>
Expected behavior
SplitPackage.Application.xml and SplitPackage.Web.Core.xml copy in the SwaggerXml folder.

Actual behavior
SplitPackage.Application.xml and SplitPackage.Web.Core.xml not copy in the SwaggerXml folder.

Environment data
dotnet --info output:
.NET Core SDK (reflecting any global.json):
Version: 2.2.300
Commit: 73efd5bd87
Runtime Environment:
OS Name: Windows
OS Version: 10.0.18362
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\2.2.300\
Host (useful for support):
Version: 2.2.5
Commit: 0a3c9209c0
.NET Core SDKs installed:
2.1.505 [C:\Program Files\dotnet\sdk]
2.2.300 [C:\Program Files\dotnet\sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.4 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.4 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
@vijayrkn I don't believe we do anything special for swagger in the base SDK. Is this something being done by the web sdk? Can you take a look?
@rcl4444
Are these 2 files present under this folder? does it work if you change it to always? Also does it work if it is changed to content?
<None Include="SwaggerXml\**">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</None>
@vijayrkn the two file is dynamic build with SplitPackage.Web.Core and SplitPackage.Application.I can't use the two file in SplitPackage.Web.Host for content.when I use publish in CI/CD.It can't copy in
the release directory.now i use dotnet build && dotnet publish replace dotnet publish.that do work.
Due to lack of recent activity, this issue has been labeled as 'stale'. It will be closed if no further activity occurs within 30 more days. Any new comment will remove the label.
This issue will now be closed since it has been labeled 'stale' without activity for 30 days.