Skip to content

Commit 7ae68b4

Browse files
Mpdreamzrusscam
authored andcommitted
alternative approach to internalsvisible to (#4188)
(cherry picked from commit f508f13) (cherry picked from commit 47036d1)
1 parent 93bdd2a commit 7ae68b4

File tree

6 files changed

+45
-12
lines changed

6 files changed

+45
-12
lines changed

src/Elasticsearch.Net/Elasticsearch.Net.csproj

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,21 @@
2121
<PackageReference Condition="'$(TargetFramework)' == 'netstandard2.0'" Include="System.Reflection.Emit" Version="4.3.0" />
2222
<PackageReference Condition="'$(TargetFramework)' == 'netstandard2.0'" Include="System.Reflection.Emit.Lightweight" Version="4.3.0" />
2323
</ItemGroup>
24+
<ItemGroup>
25+
<InternalsVisibleTo Include="Nest" />
26+
<InternalsVisibleTo Include="Elasticsearch.Net.CustomDynamicObjectResolver"/>
27+
<InternalsVisibleTo Include="Elasticsearch.Net.DynamicCompositeResolver"/>
28+
<InternalsVisibleTo Include="Elasticsearch.Net.DynamicObjectResolverAllowPrivateFalseExcludeNullFalseNameMutateOriginal"/>
29+
<InternalsVisibleTo Include="Elasticsearch.Net.DynamicObjectResolverAllowPrivateFalseExcludeNullFalseNameMutateCamelCase"/>
30+
<InternalsVisibleTo Include="Elasticsearch.Net.DynamicObjectResolverAllowPrivateFalseExcludeNullFalseNameMutateSnakeCase"/>
31+
<InternalsVisibleTo Include="Elasticsearch.Net.DynamicObjectResolverAllowPrivateFalseExcludeNullTrueNameMutateOriginal"/>
32+
<InternalsVisibleTo Include="Elasticsearch.Net.DynamicObjectResolverAllowPrivateFalseExcludeNullTrueNameMutateCamelCase"/>
33+
<InternalsVisibleTo Include="Elasticsearch.Net.DynamicObjectResolverAllowPrivateFalseExcludeNullTrueNameMutateSnakeCase"/>
34+
35+
<InternalsVisibleTo Include="Tests"/>
36+
<InternalsVisibleTo Include="Tests.Domain"/>
37+
38+
</ItemGroup>
2439
<ItemGroup>
2540
<Compile Update="ElasticLowLevelClient.*.cs">
2641
<AutoGen>True</AutoGen>
@@ -73,4 +88,5 @@
7388
<DependentUpon>Utf8Json\UnsafeMemory.tt</DependentUpon>
7489
</Compile>
7590
</ItemGroup>
91+
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), build.bat))\src\InternalsVisible.targets" />
7692
</Project>

src/Elasticsearch.Net/Properties/ClsCompliancy.cs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,3 @@
22
using System.Runtime.CompilerServices;
33

44
[assembly: CLSCompliant(true)]
5-
6-
[assembly: InternalsVisibleTo("Nest, PublicKey=002400000480000094000000060200000024000052534131000400000100010025d3a22bf3781ba85067374ad832dfcba3c4fa8dd89227e36121ba17b2c33ad6b6ce03e45e562050a031e2ff7fe12cff9060a50acbc6a0eef9ef32dc258d90f874b2e76b581938071ccc4b4d98204d1d6ca7a1988d7a211f9fc98efd808cf85f61675b11007d0eb0461dc86a968d6af8ebba7e6b540303b54f1c1f5325c252be")]
7-
[assembly: InternalsVisibleTo("Elasticsearch.Net.CustomDynamicObjectResolver, PublicKey=002400000480000094000000060200000024000052534131000400000100010025d3a22bf3781ba85067374ad832dfcba3c4fa8dd89227e36121ba17b2c33ad6b6ce03e45e562050a031e2ff7fe12cff9060a50acbc6a0eef9ef32dc258d90f874b2e76b581938071ccc4b4d98204d1d6ca7a1988d7a211f9fc98efd808cf85f61675b11007d0eb0461dc86a968d6af8ebba7e6b540303b54f1c1f5325c252be")]
8-
[assembly: InternalsVisibleTo("Elasticsearch.Net.DynamicCompositeResolver, PublicKey=002400000480000094000000060200000024000052534131000400000100010025d3a22bf3781ba85067374ad832dfcba3c4fa8dd89227e36121ba17b2c33ad6b6ce03e45e562050a031e2ff7fe12cff9060a50acbc6a0eef9ef32dc258d90f874b2e76b581938071ccc4b4d98204d1d6ca7a1988d7a211f9fc98efd808cf85f61675b11007d0eb0461dc86a968d6af8ebba7e6b540303b54f1c1f5325c252be")]
9-
[assembly: InternalsVisibleTo("Elasticsearch.Net.DynamicObjectResolverAllowPrivateFalseExcludeNullTrueNameMutateCamelCase, PublicKey=002400000480000094000000060200000024000052534131000400000100010025d3a22bf3781ba85067374ad832dfcba3c4fa8dd89227e36121ba17b2c33ad6b6ce03e45e562050a031e2ff7fe12cff9060a50acbc6a0eef9ef32dc258d90f874b2e76b581938071ccc4b4d98204d1d6ca7a1988d7a211f9fc98efd808cf85f61675b11007d0eb0461dc86a968d6af8ebba7e6b540303b54f1c1f5325c252be")]
10-
11-
[assembly: InternalsVisibleTo("Tests, PublicKey=002400000480000094000000060200000024000052534131000400000100010025d3a22bf3781ba85067374ad832dfcba3c4fa8dd89227e36121ba17b2c33ad6b6ce03e45e562050a031e2ff7fe12cff9060a50acbc6a0eef9ef32dc258d90f874b2e76b581938071ccc4b4d98204d1d6ca7a1988d7a211f9fc98efd808cf85f61675b11007d0eb0461dc86a968d6af8ebba7e6b540303b54f1c1f5325c252be")]
12-
[assembly: InternalsVisibleTo("Tests.Domain, PublicKey=002400000480000094000000060200000024000052534131000400000100010025d3a22bf3781ba85067374ad832dfcba3c4fa8dd89227e36121ba17b2c33ad6b6ce03e45e562050a031e2ff7fe12cff9060a50acbc6a0eef9ef32dc258d90f874b2e76b581938071ccc4b4d98204d1d6ca7a1988d7a211f9fc98efd808cf85f61675b11007d0eb0461dc86a968d6af8ebba7e6b540303b54f1c1f5325c252be")]

src/InternalsVisible.targets

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<Project>
2+
<Target Name="AssemblyInfos" BeforeTargets="CoreGenerateAssemblyInfo" Inputs="@InternalsVisibleTo" Outputs="%(InternalsVisibleTo.Identity)">
3+
<PropertyGroup>
4+
<ExposedAssembly>%(InternalsVisibleTo.Identity)</ExposedAssembly>
5+
<VersionNamespaced>$(ExposedAssembly.Replace("Nest","Nest$(MajorVersion)").Replace("Elasticsearch.Net","Elasticsearch.Net$(MajorVersion)"))</VersionNamespaced>
6+
</PropertyGroup>
7+
<ItemGroup>
8+
<AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
9+
<_Parameter1>%(InternalsVisibleTo.Identity), PublicKey=$(ExposedPublicKey)</_Parameter1>
10+
</AssemblyAttribute>
11+
<AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
12+
<_Parameter1>$(VersionNamespaced), PublicKey=$(ExposedPublicKey)</_Parameter1>
13+
</AssemblyAttribute>
14+
</ItemGroup>
15+
</Target>
16+
</Project>

src/Library.build.props

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<!-- File version reflects actual version number without prelease since that not allowed in its struct -->
1414
<FileVersion>$(CurrentAssemblyFileVersion)</FileVersion>
1515
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
16+
<MajorVersion>$(Version.Split('.')[0])</MajorVersion>
1617

1718
<DefineConstants Condition="'$(TargetFramework)'=='net461'">$(DefineConstants);FULLFRAMEWORK</DefineConstants>
1819
<DefineConstants Condition="'$(TargetFramework)'=='netstandard2.0'">$(DefineConstants);DOTNETCORE</DefineConstants>
@@ -29,7 +30,7 @@
2930
<PackageLicenseUrl>https://github.com/elastic/elasticsearch-net/blob/master/license.txt</PackageLicenseUrl>
3031
<ReleaseNotes>See https://github.com/elastic/elasticsearch-net/releases</ReleaseNotes>
3132
<PackageIconUrl>https://raw.githubusercontent.com/elastic/elasticsearch-net/master/build/nuget-icon.png</PackageIconUrl>
32-
33+
<ExposedPublicKey>002400000480000094000000060200000024000052534131000400000100010025d3a22bf3781ba85067374ad832dfcba3c4fa8dd89227e36121ba17b2c33ad6b6ce03e45e562050a031e2ff7fe12cff9060a50acbc6a0eef9ef32dc258d90f874b2e76b581938071ccc4b4d98204d1d6ca7a1988d7a211f9fc98efd808cf85f61675b11007d0eb0461dc86a968d6af8ebba7e6b540303b54f1c1f5325c252be</ExposedPublicKey>
3334
</PropertyGroup>
3435
<ItemGroup>
3536
<PackageReference Condition="'$(OS)' != 'Windows_NT' and '$(TargetFramework)'=='net461'" Include="Microsoft.NETFramework.ReferenceAssemblies" PrivateAssets="All" Version="1.0.0-preview.2" />

src/Nest/Nest.csproj

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,16 @@
99
<ProjectReference Include="..\Elasticsearch.Net\Elasticsearch.Net.csproj" />
1010
<PackageReference Include="ConfigureAwaitChecker.Analyzer" Version="4.0.0" />
1111
</ItemGroup>
12+
<ItemGroup>
13+
<InternalsVisibleTo Include="Elasticsearch.Net.CustomDynamicObjectResolver"/>
14+
<InternalsVisibleTo Include="Elasticsearch.Net.DynamicCompositeResolver"/>
15+
<InternalsVisibleTo Include="Elasticsearch.Net.DynamicObjectResolverAllowPrivateFalseExcludeNullFalseNameMutateOriginal"/>
16+
<InternalsVisibleTo Include="Elasticsearch.Net.DynamicObjectResolverAllowPrivateFalseExcludeNullFalseNameMutateCamelCase"/>
17+
<InternalsVisibleTo Include="Elasticsearch.Net.DynamicObjectResolverAllowPrivateFalseExcludeNullFalseNameMutateSnakeCase"/>
18+
<InternalsVisibleTo Include="Elasticsearch.Net.DynamicObjectResolverAllowPrivateFalseExcludeNullTrueNameMutateOriginal"/>
19+
<InternalsVisibleTo Include="Elasticsearch.Net.DynamicObjectResolverAllowPrivateFalseExcludeNullTrueNameMutateCamelCase"/>
20+
<InternalsVisibleTo Include="Elasticsearch.Net.DynamicObjectResolverAllowPrivateFalseExcludeNullTrueNameMutateSnakeCase"/>
21+
</ItemGroup>
1222
<ItemGroup>
1323
<Compile Update="Requests.*.cs">
1424
<AutoGen>True</AutoGen>
@@ -25,4 +35,5 @@
2535
<DependentUpon>ElasticClient.cs</DependentUpon>
2636
</Compile>
2737
</ItemGroup>
38+
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), build.bat))\src\InternalsVisible.targets" />
2839
</Project>

src/Nest/Properties/ClsCompliancy.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,3 @@
33

44
[assembly: CLSCompliant(true)]
55

6-
[assembly: InternalsVisibleTo("Elasticsearch.Net.CustomDynamicObjectResolver, PublicKey=002400000480000094000000060200000024000052534131000400000100010025d3a22bf3781ba85067374ad832dfcba3c4fa8dd89227e36121ba17b2c33ad6b6ce03e45e562050a031e2ff7fe12cff9060a50acbc6a0eef9ef32dc258d90f874b2e76b581938071ccc4b4d98204d1d6ca7a1988d7a211f9fc98efd808cf85f61675b11007d0eb0461dc86a968d6af8ebba7e6b540303b54f1c1f5325c252be")]
7-
[assembly: InternalsVisibleTo("Elasticsearch.Net.DynamicCompositeResolver, PublicKey=002400000480000094000000060200000024000052534131000400000100010025d3a22bf3781ba85067374ad832dfcba3c4fa8dd89227e36121ba17b2c33ad6b6ce03e45e562050a031e2ff7fe12cff9060a50acbc6a0eef9ef32dc258d90f874b2e76b581938071ccc4b4d98204d1d6ca7a1988d7a211f9fc98efd808cf85f61675b11007d0eb0461dc86a968d6af8ebba7e6b540303b54f1c1f5325c252be")]
8-
[assembly: InternalsVisibleTo("Elasticsearch.Net.DynamicObjectResolverAllowPrivateFalseExcludeNullTrueNameMutateCamelCase, PublicKey=002400000480000094000000060200000024000052534131000400000100010025d3a22bf3781ba85067374ad832dfcba3c4fa8dd89227e36121ba17b2c33ad6b6ce03e45e562050a031e2ff7fe12cff9060a50acbc6a0eef9ef32dc258d90f874b2e76b581938071ccc4b4d98204d1d6ca7a1988d7a211f9fc98efd808cf85f61675b11007d0eb0461dc86a968d6af8ebba7e6b540303b54f1c1f5325c252be")]

0 commit comments

Comments
 (0)