Why visual studio publish app.runtimeconfig.json with empty parameters?

1.5k Views Asked by At

Why visual studio publish empty app.runtimeconfig.json?

Steps to reproduce

  1. Publish .net core app 2.2 project.
  2. Profile Settings:
Configuration: Release|x64
TargetFramework: netcoreapp2.2
Deployment Mode:Self-contained
TargetRuntime:win-x64
  1. Expected behavior

app.runtimeconfig.json:

{ "runtimeOptions": { "tfm": "netcoreapp2.2", "framework": { "name": "Microsoft.NETCore.App", "version": "2.2.0" } } }

Actual behavior

 {
  "runtimeOptions": {}
 }

Environment data.

dotnet --info output:

 Џ ЄҐв SDK ¤«п .NET Core (®ва ¦ ойЁ© «оЎ®© global.json):
    Version: 2.2.101
    Commit: 236713b
    ‘।  ўлЇ®«­Ґ­Ёп:
    OS Name: Windows
    OS Version: 6.1.7601
    OS Platform: Windows
    RID: win7-x64
    Base Path: C:\Program Files\dotnet\sdk\2.2.101\
    Host (useful for support):
    Version: 2.2.4
    Commit: f95848e524
    .NET Core SDKs installed:
    1.1.8 [C:\Program Files\dotnet\sdk]
    2.1.104 [C:\Program Files\dotnet\sdk]
    2.1.200 [C:\Program Files\dotnet\sdk]
    2.1.201 [C:\Program Files\dotnet\sdk]
    2.1.202 [C:\Program Files\dotnet\sdk]
    2.1.302 [C:\Program Files\dotnet\sdk]
    2.1.402 [C:\Program Files\dotnet\sdk]
    2.1.403 [C:\Program Files\dotnet\sdk]
    2.1.500 [C:\Program Files\dotnet\sdk]
    2.1.502 [C:\Program Files\dotnet\sdk]
    2.1.503 [C:\Program Files\dotnet\sdk]
    2.1.504 [C:\Program Files\dotnet\sdk]
    2.1.505 [C:\Program Files\dotnet\sdk]
    2.1.602 [C:\Program Files\dotnet\sdk]
    2.2.101 [C:\Program Files\dotnet\sdk]
    2.2.102 [C:\Program Files\dotnet\sdk]
    2.2.203 [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.5 [C:\Program 
    Files\dotnet\shared\Microsoft.AspNetCore.All]
    Microsoft.AspNetCore.All 2.1.6 [C:\Program 
    Files\dotnet\shared\Microsoft.AspNetCore.All]
    Microsoft.AspNetCore.All 2.1.7 [C:\Program 
    Files\dotnet\shared\Microsoft.AspNetCore.All]
    Microsoft.AspNetCore.All 2.1.8 [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.0 [C:\Program 
    Files\dotnet\shared\Microsoft.AspNetCore.All]
    Microsoft.AspNetCore.All 2.2.1 [C:\Program 
    Files\dotnet\shared\Microsoft.AspNetCore.All]
    Microsoft.AspNetCore.All 2.2.4 [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.5 [C:\Program 
    Files\dotnet\shared\Microsoft.AspNetCore.App]
    Microsoft.AspNetCore.App 2.1.6 [C:\Program 
    Files\dotnet\shared\Microsoft.AspNetCore.App]
    Microsoft.AspNetCore.App 2.1.7 [C:\Program 
    Files\dotnet\shared\Microsoft.AspNetCore.App]
    Microsoft.AspNetCore.App 2.1.8 [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.0 [C:\Program 
    Files\dotnet\shared\Microsoft.AspNetCore.App]
    Microsoft.AspNetCore.App 2.2.1 [C:\Program 
    Files\dotnet\shared\Microsoft.AspNetCore.App]
    Microsoft.AspNetCore.App 2.2.4 [C:\Program 
    Files\dotnet\shared\Microsoft.AspNetCore.App]
    Microsoft.NETCore.App 1.0.10 [C:\Program 
    Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 1.1.7 [C:\Program 
    Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 2.0.6 [C:\Program 
    Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 2.0.7 [C:\Program 
    Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 2.0.9 [C:\Program 
    Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 2.1.2 [C:\Program 
    Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 2.1.4 [C:\Program 
    Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 2.1.5 [C:\Program 
    Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 2.1.6 [C:\Program 
    Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 2.1.7 [C:\Program 
    Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 2.1.8 [C:\Program 
    Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 2.1.9 [C:\Program 
    Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 2.2.0 [C:\Program 
    Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 2.2.1 [C:\Program 
    Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 2.2.4 [C:\Program 
    Files\dotnet\shared\Microsoft.NETCore.App]

.csproj:

 <Project Sdk="Microsoft.NET.Sdk">
    <Import Project="../../../../.build/build.props"></Import>
    <PropertyGroup Label="Globals">
    <SccProjectName>SAK</SccProjectName>
    <SccProvider>SAK</SccProvider>
     <SccAuxPath>SAK</SccAuxPath>
     <SccLocalPath>SAK</SccLocalPath>
     </PropertyGroup>
      <PropertyGroup>
     <OutputType>Exe</OutputType>
     <TargetFramework>netcoreapp2.2</TargetFramework>
    <ApplicationIcon />
    <StartupObject>MyService.Program</StartupObject>
    <LangVersion>7.1</LangVersion>
    <Description>MyService</Description>
    <AssemblyName>MyService</AssemblyName>
    <ApplicationIcon />
    <FileVersion>1.0.0.$(BuildNumber)</FileVersion>
    <AssemblyVersion>$(FileVersion)</AssemblyVersion>
    </PropertyGroup>
    <ItemGroup>
    <PackageReference Include="Microsoft.Extensions.Hosting" 
    Version="2.2.0" />
    <PackageReference 
    Include="System.ServiceProcess.ServiceController" 
     Version="4.5.0" />
    </ItemGroup>
    <ItemGroup>
   <ProjectReference Include="..\My\Monitel.My.csproj" />
   </ItemGroup>      
   </Project>

So, if i change deploy to FrameworkDependent -it generated valid app.runtimeconfig.json.

But, if i deploy and run Self-Contained - it generated empty parameters and i can not run exe file! It says, that needs hostpolicy dll. Why?

And when i add runtimeOptions(Expected behavior section) to app.runtimeconfig.json file - my application works!

So, why i can not generate valid app.runtimeconfig.json from self-contained publish settings?

0

There are 0 best solutions below