Skip to content

Stack overflow with target framework net48 and Polly.Core #404

@peterhirn

Description

@peterhirn

Reproduce

dotnet new classlib

dotnet tool install --create-manifest-if-needed dotnet-ilrepack

Edit .csproj setting target framework to net48 and add LangVersion

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net48</TargetFramework>
    <RootNamespace>repack_2</RootNamespace>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <LangVersion>12.0</LangVersion>
  </PropertyGroup>
</Project>

dotnet add package Polly.Core

dotnet publish -c Release

dotnet ilrepack /internalize /parallel /verbose /lib:bin/Release/net48/publish/ /out:out.dll bin/Release/net48/publish/repack-2.dll bin/Release/net48/publish/Polly.Core.dll 2>&1|less

Fails with

...
- Fixing references for type Polly.Timeout.TimeoutGeneratorArguments
- Fixing references for type Polly.Timeout.TimeoutRejectedException
- Fixing references for type Polly.Timeout.TimeoutResilienceStrategy
- Fixing references for type Polly.Timeout.TimeoutStrategyOptions
Stack overflow.
   at Mono.Cecil.MemberReference.get_DeclaringType()
   at Mono.Cecil.TypeReference.get_DeclaringType()
   at Mono.Cecil.TypeReference.get_IsNested()
   at Mono.Cecil.MetadataResolver.GetTypeDefinition(Mono.Cecil.ModuleDefinition, Mono.Cecil.TypeReference)
   at Mono.Cecil.MetadataResolver.GetType(Mono.Cecil.ModuleDefinition, Mono.Cecil.TypeReference)
   at Mono.Cecil.MetadataResolver.Resolve(Mono.Cecil.TypeReference)
   at Mono.Cecil.ModuleDefinition.Resolve(Mono.Cecil.TypeReference)
   at Mono.Cecil.ExportedType.Resolve()
   at Mono.Cecil.MetadataResolver.GetType(Mono.Cecil.ModuleDefinition, Mono.Cecil.TypeReference)
   at Mono.Cecil.MetadataResolver.Resolve(Mono.Cecil.TypeReference)
   at Mono.Cecil.ModuleDefinition.Resolve(Mono.Cecil.TypeReference)
   at Mono.Cecil.ExportedType.Resolve()
...

Notes

  • dotnet version 9.0.203
  • works with target framework netstandard2.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions