Skip to content

Commit 391edad

Browse files
authored
Netstandard1.3 Support (#18)
NetStandard 1.3 Support
1 parent 745c190 commit 391edad

File tree

57 files changed

+1106
-11
lines changed

Some content is hidden

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

57 files changed

+1106
-11
lines changed

.github/workflows/publish.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ jobs:
3636
- name: Pack NetCoreApp31
3737
run: dotnet pack --no-build -p:IncludeSymbols=false -p:RepositoryCommit=${GITHUB_SHA} -p:PackageVersion="${{ github.event.inputs.version }}" -c Release Basic.Reference.Assemblies.NetCoreApp31/Basic.Reference.Assemblies.NetCoreApp31.csproj -o .
3838

39+
- name: Pack NetStandard13
40+
run: dotnet pack --no-build -p:IncludeSymbols=false -p:RepositoryCommit=${GITHUB_SHA} -p:PackageVersion="${{ github.event.inputs.version }}" -c Release Basic.Reference.Assemblies.NetStandard13/Basic.Reference.Assemblies.NetStandard13.csproj -o .
41+
3942
- name: Pack NetStandard20
4043
run: dotnet pack --no-build -p:IncludeSymbols=false -p:RepositoryCommit=${GITHUB_SHA} -p:PackageVersion="${{ github.event.inputs.version }}" -c Release Basic.Reference.Assemblies.NetStandard20/Basic.Reference.Assemblies.NetStandard20.csproj -o .
4144

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>netstandard2.0</TargetFramework>
5+
<IsPackable>true</IsPackable>
6+
</PropertyGroup>
7+
8+
<Import Project="Generated.targets" />
9+
10+
</Project>

Basic.Reference.Assemblies.NetStandard13/Generated.cs

Lines changed: 298 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
<Project>
2+
<ItemGroup>
3+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\Microsoft.Win32.Primitives.dll">
4+
<LogicalName>netstandard13.Microsoft.Win32.Primitives</LogicalName>
5+
<Link>Resources\netstandard13\Microsoft.Win32.Primitives.dll</Link>
6+
</EmbeddedResource>
7+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.AppContext.dll">
8+
<LogicalName>netstandard13.System.AppContext</LogicalName>
9+
<Link>Resources\netstandard13\System.AppContext.dll</Link>
10+
</EmbeddedResource>
11+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Collections.Concurrent.dll">
12+
<LogicalName>netstandard13.System.Collections.Concurrent</LogicalName>
13+
<Link>Resources\netstandard13\System.Collections.Concurrent.dll</Link>
14+
</EmbeddedResource>
15+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Collections.dll">
16+
<LogicalName>netstandard13.System.Collections</LogicalName>
17+
<Link>Resources\netstandard13\System.Collections.dll</Link>
18+
</EmbeddedResource>
19+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Console.dll">
20+
<LogicalName>netstandard13.System.Console</LogicalName>
21+
<Link>Resources\netstandard13\System.Console.dll</Link>
22+
</EmbeddedResource>
23+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Diagnostics.Debug.dll">
24+
<LogicalName>netstandard13.System.Diagnostics.Debug</LogicalName>
25+
<Link>Resources\netstandard13\System.Diagnostics.Debug.dll</Link>
26+
</EmbeddedResource>
27+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Diagnostics.Tools.dll">
28+
<LogicalName>netstandard13.System.Diagnostics.Tools</LogicalName>
29+
<Link>Resources\netstandard13\System.Diagnostics.Tools.dll</Link>
30+
</EmbeddedResource>
31+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Diagnostics.Tracing.dll">
32+
<LogicalName>netstandard13.System.Diagnostics.Tracing</LogicalName>
33+
<Link>Resources\netstandard13\System.Diagnostics.Tracing.dll</Link>
34+
</EmbeddedResource>
35+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Globalization.Calendars.dll">
36+
<LogicalName>netstandard13.System.Globalization.Calendars</LogicalName>
37+
<Link>Resources\netstandard13\System.Globalization.Calendars.dll</Link>
38+
</EmbeddedResource>
39+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Globalization.dll">
40+
<LogicalName>netstandard13.System.Globalization</LogicalName>
41+
<Link>Resources\netstandard13\System.Globalization.dll</Link>
42+
</EmbeddedResource>
43+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.IO.Compression.dll">
44+
<LogicalName>netstandard13.System.IO.Compression</LogicalName>
45+
<Link>Resources\netstandard13\System.IO.Compression.dll</Link>
46+
</EmbeddedResource>
47+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.IO.Compression.ZipFile.dll">
48+
<LogicalName>netstandard13.System.IO.Compression.ZipFile</LogicalName>
49+
<Link>Resources\netstandard13\System.IO.Compression.ZipFile.dll</Link>
50+
</EmbeddedResource>
51+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.IO.dll">
52+
<LogicalName>netstandard13.System.IO</LogicalName>
53+
<Link>Resources\netstandard13\System.IO.dll</Link>
54+
</EmbeddedResource>
55+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.IO.FileSystem.dll">
56+
<LogicalName>netstandard13.System.IO.FileSystem</LogicalName>
57+
<Link>Resources\netstandard13\System.IO.FileSystem.dll</Link>
58+
</EmbeddedResource>
59+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.IO.FileSystem.Primitives.dll">
60+
<LogicalName>netstandard13.System.IO.FileSystem.Primitives</LogicalName>
61+
<Link>Resources\netstandard13\System.IO.FileSystem.Primitives.dll</Link>
62+
</EmbeddedResource>
63+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Linq.dll">
64+
<LogicalName>netstandard13.System.Linq</LogicalName>
65+
<Link>Resources\netstandard13\System.Linq.dll</Link>
66+
</EmbeddedResource>
67+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Linq.Expressions.dll">
68+
<LogicalName>netstandard13.System.Linq.Expressions</LogicalName>
69+
<Link>Resources\netstandard13\System.Linq.Expressions.dll</Link>
70+
</EmbeddedResource>
71+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Net.Http.dll">
72+
<LogicalName>netstandard13.System.Net.Http</LogicalName>
73+
<Link>Resources\netstandard13\System.Net.Http.dll</Link>
74+
</EmbeddedResource>
75+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Net.Primitives.dll">
76+
<LogicalName>netstandard13.System.Net.Primitives</LogicalName>
77+
<Link>Resources\netstandard13\System.Net.Primitives.dll</Link>
78+
</EmbeddedResource>
79+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Net.Sockets.dll">
80+
<LogicalName>netstandard13.System.Net.Sockets</LogicalName>
81+
<Link>Resources\netstandard13\System.Net.Sockets.dll</Link>
82+
</EmbeddedResource>
83+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.ObjectModel.dll">
84+
<LogicalName>netstandard13.System.ObjectModel</LogicalName>
85+
<Link>Resources\netstandard13\System.ObjectModel.dll</Link>
86+
</EmbeddedResource>
87+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Reflection.dll">
88+
<LogicalName>netstandard13.System.Reflection</LogicalName>
89+
<Link>Resources\netstandard13\System.Reflection.dll</Link>
90+
</EmbeddedResource>
91+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Reflection.Extensions.dll">
92+
<LogicalName>netstandard13.System.Reflection.Extensions</LogicalName>
93+
<Link>Resources\netstandard13\System.Reflection.Extensions.dll</Link>
94+
</EmbeddedResource>
95+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Reflection.Primitives.dll">
96+
<LogicalName>netstandard13.System.Reflection.Primitives</LogicalName>
97+
<Link>Resources\netstandard13\System.Reflection.Primitives.dll</Link>
98+
</EmbeddedResource>
99+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Resources.ResourceManager.dll">
100+
<LogicalName>netstandard13.System.Resources.ResourceManager</LogicalName>
101+
<Link>Resources\netstandard13\System.Resources.ResourceManager.dll</Link>
102+
</EmbeddedResource>
103+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Runtime.dll">
104+
<LogicalName>netstandard13.System.Runtime</LogicalName>
105+
<Link>Resources\netstandard13\System.Runtime.dll</Link>
106+
</EmbeddedResource>
107+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Runtime.Extensions.dll">
108+
<LogicalName>netstandard13.System.Runtime.Extensions</LogicalName>
109+
<Link>Resources\netstandard13\System.Runtime.Extensions.dll</Link>
110+
</EmbeddedResource>
111+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Runtime.Handles.dll">
112+
<LogicalName>netstandard13.System.Runtime.Handles</LogicalName>
113+
<Link>Resources\netstandard13\System.Runtime.Handles.dll</Link>
114+
</EmbeddedResource>
115+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Runtime.InteropServices.dll">
116+
<LogicalName>netstandard13.System.Runtime.InteropServices</LogicalName>
117+
<Link>Resources\netstandard13\System.Runtime.InteropServices.dll</Link>
118+
</EmbeddedResource>
119+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Runtime.InteropServices.RuntimeInformation.dll">
120+
<LogicalName>netstandard13.System.Runtime.InteropServices.RuntimeInformation</LogicalName>
121+
<Link>Resources\netstandard13\System.Runtime.InteropServices.RuntimeInformation.dll</Link>
122+
</EmbeddedResource>
123+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Runtime.Numerics.dll">
124+
<LogicalName>netstandard13.System.Runtime.Numerics</LogicalName>
125+
<Link>Resources\netstandard13\System.Runtime.Numerics.dll</Link>
126+
</EmbeddedResource>
127+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Security.Cryptography.Algorithms.dll">
128+
<LogicalName>netstandard13.System.Security.Cryptography.Algorithms</LogicalName>
129+
<Link>Resources\netstandard13\System.Security.Cryptography.Algorithms.dll</Link>
130+
</EmbeddedResource>
131+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Security.Cryptography.Encoding.dll">
132+
<LogicalName>netstandard13.System.Security.Cryptography.Encoding</LogicalName>
133+
<Link>Resources\netstandard13\System.Security.Cryptography.Encoding.dll</Link>
134+
</EmbeddedResource>
135+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Security.Cryptography.Primitives.dll">
136+
<LogicalName>netstandard13.System.Security.Cryptography.Primitives</LogicalName>
137+
<Link>Resources\netstandard13\System.Security.Cryptography.Primitives.dll</Link>
138+
</EmbeddedResource>
139+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Security.Cryptography.X509Certificates.dll">
140+
<LogicalName>netstandard13.System.Security.Cryptography.X509Certificates</LogicalName>
141+
<Link>Resources\netstandard13\System.Security.Cryptography.X509Certificates.dll</Link>
142+
</EmbeddedResource>
143+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Text.Encoding.dll">
144+
<LogicalName>netstandard13.System.Text.Encoding</LogicalName>
145+
<Link>Resources\netstandard13\System.Text.Encoding.dll</Link>
146+
</EmbeddedResource>
147+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Text.Encoding.Extensions.dll">
148+
<LogicalName>netstandard13.System.Text.Encoding.Extensions</LogicalName>
149+
<Link>Resources\netstandard13\System.Text.Encoding.Extensions.dll</Link>
150+
</EmbeddedResource>
151+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Text.RegularExpressions.dll">
152+
<LogicalName>netstandard13.System.Text.RegularExpressions</LogicalName>
153+
<Link>Resources\netstandard13\System.Text.RegularExpressions.dll</Link>
154+
</EmbeddedResource>
155+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Threading.dll">
156+
<LogicalName>netstandard13.System.Threading</LogicalName>
157+
<Link>Resources\netstandard13\System.Threading.dll</Link>
158+
</EmbeddedResource>
159+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Threading.Tasks.dll">
160+
<LogicalName>netstandard13.System.Threading.Tasks</LogicalName>
161+
<Link>Resources\netstandard13\System.Threading.Tasks.dll</Link>
162+
</EmbeddedResource>
163+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Threading.Timer.dll">
164+
<LogicalName>netstandard13.System.Threading.Timer</LogicalName>
165+
<Link>Resources\netstandard13\System.Threading.Timer.dll</Link>
166+
</EmbeddedResource>
167+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Xml.ReaderWriter.dll">
168+
<LogicalName>netstandard13.System.Xml.ReaderWriter</LogicalName>
169+
<Link>Resources\netstandard13\System.Xml.ReaderWriter.dll</Link>
170+
</EmbeddedResource>
171+
<EmbeddedResource Include="$(MSBuildThisFileDirectory)..\\Resources\netstandard1.3\System.Xml.XDocument.dll">
172+
<LogicalName>netstandard13.System.Xml.XDocument</LogicalName>
173+
<Link>Resources\netstandard13\System.Xml.XDocument.dll</Link>
174+
</EmbeddedResource>
175+
</ItemGroup>
176+
</Project>

Basic.Reference.Assemblies.UnitTests/Basic.Reference.Assemblies.UnitTests.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@
2323
<ProjectReference Include="..\Basic.Reference.Assemblies.NetCoreApp31\Basic.Reference.Assemblies.NetCoreApp31.csproj">
2424
<Aliases>RefNetCoreApp31</Aliases>
2525
</ProjectReference>
26+
<ProjectReference Include="..\Basic.Reference.Assemblies.NetStandard13\Basic.Reference.Assemblies.NetStandard13.csproj">
27+
<Aliases>RefNetStandard13</Aliases>
28+
</ProjectReference>
2629
<ProjectReference Include="..\Basic.Reference.Assemblies.NetStandard20\Basic.Reference.Assemblies.NetStandard20.csproj">
2730
<Aliases>RefNetStandard20</Aliases>
2831
</ProjectReference>

Basic.Reference.Assemblies.UnitTests/SanityUnitTests.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@ static void Main()
3232
new[] { CSharpSyntaxTree.ParseText(source) },
3333
references: ReferenceAssemblies.Get(kind));
3434

35+
// NetStandard1.3 comes with several no warn options we need here
36+
if (kind == ReferenceAssemblyKind.NetStandard13)
37+
{
38+
compilation = NoWarn(compilation, "CS1702");
39+
compilation = NoWarn(compilation, "CS1701");
40+
}
41+
3542
Assert.Empty(compilation.GetDiagnostics());
3643
using var stream = new MemoryStream();
3744
var emitResult = compilation.Emit(stream);
@@ -64,12 +71,27 @@ static void Main()
6471
references: Array.Empty<MetadataReference>());
6572
compilation = compilation.WithReferenceAssemblies(kind);
6673

74+
// NetStandard1.3 comes with several no warn options we need here
75+
if (kind == ReferenceAssemblyKind.NetStandard13)
76+
{
77+
compilation = NoWarn(compilation, "CS1702");
78+
compilation = NoWarn(compilation, "CS1701");
79+
}
80+
6781
Assert.Empty(compilation.GetDiagnostics());
6882
using var stream = new MemoryStream();
6983
var emitResult = compilation.Emit(stream);
7084
Assert.True(emitResult.Success);
7185
Assert.Empty(emitResult.Diagnostics);
7286
}
7387
}
88+
89+
private static CSharpCompilation NoWarn(CSharpCompilation compilation, string id)
90+
{
91+
var diagnosticMap = compilation.Options.SpecificDiagnosticOptions;
92+
diagnosticMap = diagnosticMap.SetItem(id, ReportDiagnostic.Suppress);
93+
var options = compilation.Options.WithSpecificDiagnosticOptions(diagnosticMap);
94+
return compilation.WithOptions(options);
95+
}
7496
}
7597
}

Basic.Reference.Assemblies.UnitTests/SpecificSanityUnitTests.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
extern alias RefNetCoreApp31;
22
extern alias RefNet50;
33
extern alias RefNet60;
4+
extern alias RefNetStandard13;
45
extern alias RefNetStandard20;
56
extern alias RefNet461;
67
extern alias RefNet472;
78

9+
using Microsoft.CodeAnalysis;
810
using Microsoft.CodeAnalysis.CSharp;
11+
using Microsoft.CodeAnalysis.CSharp.Syntax;
912
using System;
1013
using System.IO;
1114
using System.Linq;
@@ -16,6 +19,7 @@ namespace Basic.Reference.Assemblies.UnitTests
1619
using Net50 = RefNet50::Basic.Reference.Assemblies.Net50;
1720
using Net60 = RefNet60::Basic.Reference.Assemblies.Net60;
1821
using NetCoreApp31 = RefNetCoreApp31::Basic.Reference.Assemblies.NetCoreApp31;
22+
using NetStandard13 = RefNetStandard13::Basic.Reference.Assemblies.NetStandard13;
1923
using NetStandard20 = RefNetStandard20::Basic.Reference.Assemblies.NetStandard20;
2024
using Net461 = RefNet461::Basic.Reference.Assemblies.Net461;
2125
using Net472 = RefNet472::Basic.Reference.Assemblies.Net472;
@@ -141,6 +145,17 @@ public void NetStandard20Tests()
141145
Assert.Equal("Basic.Reference.Assemblies.NetStandard20", typeof(NetStandard20).Assembly.GetName().Name);
142146
}
143147

148+
[Fact]
149+
public void NetStandard13Tests()
150+
{
151+
foreach (var portableRef in NetStandard13.All)
152+
{
153+
Assert.NotNull(portableRef);
154+
}
155+
Assert.True(NetStandard13.All.Count() > 40);
156+
Assert.Equal("Basic.Reference.Assemblies.NetStandard13", typeof(NetStandard13).Assembly.GetName().Name);
157+
}
158+
144159
[Fact]
145160
public void Net461Tests()
146161
{

0 commit comments

Comments
 (0)