Skip to content

Commit bdedf98

Browse files
authored
Added embedded attributes for .NET 9.0.3+ to hide internal generated files from InternalsVisibleTo directive (#28)
Added embedded attributes for .NET 9.0.3+ to hide internal generated files from InternalsVisibleTo directive.
1 parent be5ce98 commit bdedf98

File tree

47 files changed

+689
-31
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+689
-31
lines changed

AutoLoggerMessage.slnx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,13 @@
77
<Project Path="src/AutoLoggerMessageGenerator/AutoLoggerMessageGenerator.Pack.csproj" />
88
<Project Path="src/AutoLoggerMessageGenerator/AutoLoggerMessageGenerator.Roslyn4_11.csproj" />
99
<Project Path="src/AutoLoggerMessageGenerator/AutoLoggerMessageGenerator.Roslyn4_8.csproj" />
10+
<Project Path="src/AutoLoggerMessageGenerator/AutoLoggerMessageGenerator.Roslyn4_14.csproj" />
1011
</Folder>
1112
<Folder Name="/Tests/">
1213
<Project Path="tests/AutoLoggerMessageGenerator.IntegrationTests/AutoLoggerMessageGenerator.IntegrationTests.csproj" />
1314
<Project Path="tests/AutoLoggerMessageGenerator.UnitTests/AutoLoggerMessageGenerator.UnitTests.Roslyn4_11.csproj" />
1415
<Project Path="tests/AutoLoggerMessageGenerator.UnitTests/AutoLoggerMessageGenerator.UnitTests.Roslyn4_8.csproj" />
16+
<Project Path="tests/AutoLoggerMessageGenerator.UnitTests/AutoLoggerMessageGenerator.UnitTests.Roslyn4_14.csproj" />
1517
</Folder>
1618
<Project Path="src/AutoLoggerMessageGenerator.Sandbox/AutoLoggerMessageGenerator.Sandbox.csproj" />
1719
</Solution>

src/AutoLoggerMessageGenerator.BuildOutput/AutoLoggerMessageGenerator.BuildOutput.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44
<TargetFramework>netstandard2.0</TargetFramework>
55
</PropertyGroup>
66

7+
<PropertyGroup>
8+
<DefineConstants>$(DefineConstants);JETBRAINS_ANNOTATIONS</DefineConstants>
9+
</PropertyGroup>
10+
711
<ItemGroup>
812
<PackageReference Include="JetBrains.Annotations" Version="2024.3.0" />
913
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.0" PrivateAssets="all"/>

src/AutoLoggerMessageGenerator/AutoLoggerMessageGenerator.Build.targets

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@
5454
<AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
5555
<_Parameter1>$(AssemblyName).UnitTests.Roslyn4_11</_Parameter1>
5656
</AssemblyAttribute>
57+
<AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
58+
<_Parameter1>$(AssemblyName).UnitTests.Roslyn4_14</_Parameter1>
59+
</AssemblyAttribute>
5760
<AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
5861
<_Parameter1>$(AssemblyName).IntegrationTests</_Parameter1>
5962
</AssemblyAttribute>

src/AutoLoggerMessageGenerator/AutoLoggerMessageGenerator.Pack.csproj

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,14 @@
77

88
<Import Project="AutoLoggerMessageGenerator.Build.targets" />
99

10+
<PropertyGroup>
11+
<DefineConstants>$(DefineConstants);JETBRAINS_ANNOTATIONS</DefineConstants>
12+
</PropertyGroup>
13+
1014
<ItemGroup>
11-
<ProjectReference Include="AutoLoggerMessageGenerator.Roslyn4_11.csproj" PrivateAssets="All" ReferenceOutputAssembly="false" />
1215
<ProjectReference Include="AutoLoggerMessageGenerator.Roslyn4_8.csproj" PrivateAssets="All" ReferenceOutputAssembly="false" />
16+
<ProjectReference Include="AutoLoggerMessageGenerator.Roslyn4_11.csproj" PrivateAssets="All" ReferenceOutputAssembly="false" />
17+
<ProjectReference Include="AutoLoggerMessageGenerator.Roslyn4_14.csproj" PrivateAssets="All" ReferenceOutputAssembly="false" />
1318
</ItemGroup>
1419

1520
<ItemGroup>
@@ -18,6 +23,8 @@
1823
Pack="true" PackagePath="analyzers/dotnet/roslyn4.8/cs" Visible="false" />
1924
<None Include="$(OutputPath)\..\..\AutoLoggerMessageGenerator.Roslyn4_11\$(ArtifactsPivots)\$(AssemblyName).dll"
2025
Pack="true" PackagePath="analyzers/dotnet/roslyn4.11/cs" Visible="false" />
26+
<None Include="$(OutputPath)\..\..\AutoLoggerMessageGenerator.Roslyn4_14\$(ArtifactsPivots)\$(AssemblyName).dll"
27+
Pack="true" PackagePath="analyzers/dotnet/roslyn4.14/cs" Visible="false" />
2128
<None Include="$(OutputPath)\AutoLoggerMessageGenerator.BuildOutput.dll" Pack="true" PackagePath="lib\netstandard2.0" Visible="false" />
2229
</ItemGroup>
2330

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>netstandard2.0</TargetFramework>
5+
<RoslynApiVersion>4.14.0</RoslynApiVersion>
6+
<DefineConstants>$(DefineConstants);HASH_BASED_INTERCEPTORS;EMBEDDED</DefineConstants>
7+
<IsPackable>false</IsPackable>
8+
</PropertyGroup>
9+
10+
<ItemGroup>
11+
<Compile Update="Generators\AutoLoggerMessageGenerator.LoggerMessage.cs">
12+
<DependentUpon>AutoLoggerMessageGenerator.cs</DependentUpon>
13+
</Compile>
14+
<Compile Update="Generators\AutoLoggerMessageGenerator.LoggerScopes.cs">
15+
<DependentUpon>AutoLoggerMessageGenerator.cs</DependentUpon>
16+
</Compile>
17+
</ItemGroup>
18+
19+
<Import Project="AutoLoggerMessageGenerator.Build.targets" />
20+
</Project>

src/AutoLoggerMessageGenerator/Constants.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ internal static class Constants
4949
$"[global::System.CodeDom.Compiler.GeneratedCodeAttribute(" +
5050
$"\"{typeof(Generators.AutoLoggerMessageGenerator).Assembly.GetName().Name}\", " +
5151
$"\"{typeof(Generators.AutoLoggerMessageGenerator).Assembly.GetName().Version}\")]";
52+
53+
public const string EmbeddedAttribute = "[global::Microsoft.CodeAnalysis.EmbeddedAttribute]";
5254
public const string EditorNotBrowsableAttribute = "[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]";
5355

5456
public const string GeneratedFileHeader = """

src/AutoLoggerMessageGenerator/Emitters/InterceptorAttributeEmitter.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ public static string Emit()
1515
sb.WriteLine('{');
1616
sb.Indent++;
1717

18+
#if EMBEDDED
19+
sb.WriteLine(Constants.EmbeddedAttribute);
20+
#endif
21+
1822
sb.WriteLine(Constants.GeneratedCodeAttribute);
1923
sb.WriteLine(Constants.EditorNotBrowsableAttribute);
2024
sb.WriteLine("[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]");

src/AutoLoggerMessageGenerator/Emitters/LoggerInterceptorsEmitter.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ public static string Emit(IEnumerable<LogMessageCall> logCalls)
1616
sb.WriteLine('{');
1717
sb.Indent++;
1818

19+
#if EMBEDDED
20+
sb.WriteLine(Constants.EmbeddedAttribute);
21+
#endif
22+
1923
sb.WriteLine(Constants.GeneratedCodeAttribute);
2024
sb.WriteLine(Constants.EditorNotBrowsableAttribute);
2125
sb.WriteLine(Constants.ExcludeFromCoverageAttribute);

src/AutoLoggerMessageGenerator/Emitters/LoggerScopeInterceptorsEmitter.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ public static string Emit(IEnumerable<LoggerScopeCall> loggerScopes)
1616
sb.WriteLine('{');
1717
sb.Indent++;
1818

19+
#if EMBEDDED
20+
sb.WriteLine(Constants.EmbeddedAttribute);
21+
#endif
22+
1923
sb.WriteLine(Constants.GeneratedCodeAttribute);
2024
sb.WriteLine(Constants.EditorNotBrowsableAttribute);
2125
sb.WriteLine(Constants.ExcludeFromCoverageAttribute);

src/AutoLoggerMessageGenerator/Emitters/LoggerScopesEmitter.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,13 @@ public static string Emit(ImmutableArray<LoggerScopeCall> loggerScopes)
1818
sb.WriteLine('{');
1919
sb.Indent++;
2020

21+
#if EMBEDDED
22+
sb.WriteLine(EmbeddedAttribute);
23+
#endif
24+
2125
sb.WriteLine(Constants.GeneratedCodeAttribute);
2226
sb.WriteLine(EditorNotBrowsableAttribute);
23-
sb.WriteLine($"public static class {LoggerScopesGeneratorName}");
27+
sb.WriteLine($"internal static class {LoggerScopesGeneratorName}");
2428
sb.WriteLine('{');
2529
sb.Indent++;
2630

0 commit comments

Comments
 (0)