sdk icon indicating copy to clipboard operation
sdk copied to clipboard

some problem with dotnet publish

Open rcl4444 opened this issue 6 years ago • 4 comments

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. image

Actual behavior

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

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]

rcl4444 avatar Jun 19 '19 14:06 rcl4444

@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?

livarcocc avatar Jun 19 '19 21:06 livarcocc

@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 avatar Jun 19 '19 22:06 vijayrkn

@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.

rcl4444 avatar Jun 22 '19 12:06 rcl4444

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.

github-actions[bot] avatar Jun 22 '25 16:06 github-actions[bot]

This issue will now be closed since it has been labeled 'stale' without activity for 30 days.

github-actions[bot] avatar Jul 22 '25 16:07 github-actions[bot]