-
-
Notifications
You must be signed in to change notification settings - Fork 68
Description
Description (optional)
Using PolySharp in a netstandard2.0 project that uses InternalsVisibleToAttribute to expose internals to another net80 project, will cause that other project to fail to compile. This is because the types generated by PolySharp have internal visibility and collide with the types net80 provides.
Reproduction Steps
I have a library project that targets netstandard2.0 and I need to consume it from both net48 and net80 targets:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace>Logging.Adapters</RootNamespace>
<LangVersion>12</LangVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="PolySharp" Version="1.14.1" />
</ItemGroup>
</Project>There are classes internal to the library that the test project needs to know about:
using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo("Library.Test")]There is a test project that multi-target net48 and net80. For simplicity we'll ignore the multi-targeting and only look at the net80 consumer:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<RootNamespace>Logging.Test</RootNamespace>
<LangVersion>12</LangVersion>
<PackageId>Library.Test</PackageId>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Library\Library.csproj" />
</ItemGroup>
</Project>
Expected Behavior
Compiles.
Actual Behavior
System.Runtime.CompilerServices.IsExternalInit.g.cs(4,115): Error CS0433 : The type 'IsExternalInit' exists in both 'Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' and 'System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
System.Runtime.CompilerServices.RequiresLocationAttribute.g.cs(4,115): Error CS0433 : The type 'RequiresLocationAttribute' exists in both 'Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' and 'System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
System info
This section should contain useful info such as:
- PolySharp NuGet version: 1.14.1
- Operating system version: macOS 14.5
- Visual Studio version, or .NET SDK/runtime version: 8.0.302
Additional context (optional)
N/A