Skip to content

Commit 745c190

Browse files
authored
Net461 support (#17)
1 parent 8102c83 commit 745c190

File tree

12 files changed

+3832
-1
lines changed

12 files changed

+3832
-1
lines changed

.github/workflows/publish.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,12 @@ jobs:
3939
- name: Pack NetStandard20
4040
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 .
4141

42+
- name: Pack Net461
43+
run: dotnet pack --no-build -p:IncludeSymbols=false -p:RepositoryCommit=${GITHUB_SHA} -p:PackageVersion="${{ github.event.inputs.version }}" -c Release Basic.Reference.Assemblies.Net461/Basic.Reference.Assemblies.Net461.csproj -o .
44+
4245
- name: Pack Net472
4346
run: dotnet pack --no-build -p:IncludeSymbols=false -p:RepositoryCommit=${GITHUB_SHA} -p:PackageVersion="${{ github.event.inputs.version }}" -c Release Basic.Reference.Assemblies.Net472/Basic.Reference.Assemblies.Net472.csproj -o .
4447

45-
4648
- name: Publish NuPkg Files
4749
run: dotnet nuget push "*.nupkg" -k ${{ secrets.NUGET_API_KEY }} -s https://api.nuget.org/v3/index.json
4850

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>netstandard2.0</TargetFramework>
5+
<IsPackable>true</IsPackable>
6+
</PropertyGroup>
7+
8+
<ItemGroup>
9+
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies.net461" Version="1.0.2" IncludeAssets="none" PrivateAssets="all" GeneratePathProperty="true" />
10+
</ItemGroup>
11+
12+
<Import Project="Generated.targets" />
13+
14+
</Project>

Basic.Reference.Assemblies.Net461/Generated.cs

Lines changed: 1138 additions & 0 deletions
Large diffs are not rendered by default.

Basic.Reference.Assemblies.Net461/Generated.targets

Lines changed: 736 additions & 0 deletions
Large diffs are not rendered by default.

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@
2929
<ProjectReference Include="..\Basic.Reference.Assemblies.Net472\Basic.Reference.Assemblies.Net472.csproj">
3030
<Aliases>RefNet472</Aliases>
3131
</ProjectReference>
32+
<ProjectReference Include="..\Basic.Reference.Assemblies.Net461\Basic.Reference.Assemblies.Net461.csproj">
33+
<Aliases>RefNet461</Aliases>
34+
</ProjectReference>
3235
<ProjectReference Include="..\Basic.Reference.Assemblies\Basic.Reference.Assemblies.csproj" />
3336
</ItemGroup>
3437

Basic.Reference.Assemblies.UnitTests/SpecificSanityUnitTests.cs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
extern alias RefNet50;
33
extern alias RefNet60;
44
extern alias RefNetStandard20;
5+
extern alias RefNet461;
56
extern alias RefNet472;
67

78
using Microsoft.CodeAnalysis.CSharp;
@@ -16,6 +17,7 @@ namespace Basic.Reference.Assemblies.UnitTests
1617
using Net60 = RefNet60::Basic.Reference.Assemblies.Net60;
1718
using NetCoreApp31 = RefNetCoreApp31::Basic.Reference.Assemblies.NetCoreApp31;
1819
using NetStandard20 = RefNetStandard20::Basic.Reference.Assemblies.NetStandard20;
20+
using Net461 = RefNet461::Basic.Reference.Assemblies.Net461;
1921
using Net472 = RefNet472::Basic.Reference.Assemblies.Net472;
2022

2123
public class SpecificSanityUnitTests
@@ -139,6 +141,42 @@ public void NetStandard20Tests()
139141
Assert.Equal("Basic.Reference.Assemblies.NetStandard20", typeof(NetStandard20).Assembly.GetName().Name);
140142
}
141143

144+
[Fact]
145+
public void Net461Tests()
146+
{
147+
foreach (var portableRef in Net461.All)
148+
{
149+
Assert.NotNull(portableRef);
150+
}
151+
Assert.True(Net461.All.Count() > 50);
152+
Assert.Equal("Basic.Reference.Assemblies.Net461", typeof(Net461).Assembly.GetName().Name);
153+
}
154+
155+
[Fact]
156+
public void Net461Compilation()
157+
{
158+
var source = @"
159+
using System;
160+
161+
class Program
162+
{
163+
static void Main()
164+
{
165+
Console.WriteLine(""Hello World"");
166+
}
167+
}";
168+
var compilation = CSharpCompilation.Create(
169+
"Example",
170+
new[] { CSharpSyntaxTree.ParseText(source) },
171+
references: Net461.All);
172+
173+
Assert.Empty(compilation.GetDiagnostics());
174+
using var stream = new MemoryStream();
175+
var emitResult = compilation.Emit(stream);
176+
Assert.True(emitResult.Success);
177+
Assert.Empty(emitResult.Diagnostics);
178+
}
179+
142180
[Fact]
143181
public void Net472Tests()
144182
{

Basic.Reference.Assemblies.sln

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
2222
EndProject
2323
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Basic.Reference.Assemblies.Net60", "Basic.Reference.Assemblies.Net60\Basic.Reference.Assemblies.Net60.csproj", "{E2269796-09B5-40C8-85ED-476B5E71B29D}"
2424
EndProject
25+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Basic.Reference.Assemblies.Net461", "Basic.Reference.Assemblies.Net461\Basic.Reference.Assemblies.Net461.csproj", "{214260A9-1E3C-400C-A0D1-2BD099F60AD7}"
26+
EndProject
2527
Global
2628
GlobalSection(SolutionConfigurationPlatforms) = preSolution
2729
Debug|Any CPU = Debug|Any CPU
@@ -116,6 +118,18 @@ Global
116118
{E2269796-09B5-40C8-85ED-476B5E71B29D}.Release|x64.Build.0 = Release|Any CPU
117119
{E2269796-09B5-40C8-85ED-476B5E71B29D}.Release|x86.ActiveCfg = Release|Any CPU
118120
{E2269796-09B5-40C8-85ED-476B5E71B29D}.Release|x86.Build.0 = Release|Any CPU
121+
{214260A9-1E3C-400C-A0D1-2BD099F60AD7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
122+
{214260A9-1E3C-400C-A0D1-2BD099F60AD7}.Debug|Any CPU.Build.0 = Debug|Any CPU
123+
{214260A9-1E3C-400C-A0D1-2BD099F60AD7}.Debug|x64.ActiveCfg = Debug|Any CPU
124+
{214260A9-1E3C-400C-A0D1-2BD099F60AD7}.Debug|x64.Build.0 = Debug|Any CPU
125+
{214260A9-1E3C-400C-A0D1-2BD099F60AD7}.Debug|x86.ActiveCfg = Debug|Any CPU
126+
{214260A9-1E3C-400C-A0D1-2BD099F60AD7}.Debug|x86.Build.0 = Debug|Any CPU
127+
{214260A9-1E3C-400C-A0D1-2BD099F60AD7}.Release|Any CPU.ActiveCfg = Release|Any CPU
128+
{214260A9-1E3C-400C-A0D1-2BD099F60AD7}.Release|Any CPU.Build.0 = Release|Any CPU
129+
{214260A9-1E3C-400C-A0D1-2BD099F60AD7}.Release|x64.ActiveCfg = Release|Any CPU
130+
{214260A9-1E3C-400C-A0D1-2BD099F60AD7}.Release|x64.Build.0 = Release|Any CPU
131+
{214260A9-1E3C-400C-A0D1-2BD099F60AD7}.Release|x86.ActiveCfg = Release|Any CPU
132+
{214260A9-1E3C-400C-A0D1-2BD099F60AD7}.Release|x86.Build.0 = Release|Any CPU
119133
EndGlobalSection
120134
GlobalSection(SolutionProperties) = preSolution
121135
HideSolutionNode = FALSE

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@
99
<Import Project="Generated.Net60.targets" />
1010
<Import Project="Generated.NetCoreApp31.targets" />
1111
<Import Project="Generated.NetStandard20.targets" />
12+
<Import Project="Generated.Net461.targets" />
1213
<Import Project="Generated.Net472.targets" />
1314
</Project>

Basic.Reference.Assemblies/BasicReferenceAssemblies.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ public static class ReferenceAssemblies
1212
public static IEnumerable<PortableExecutableReference> Net50 => Basic.Reference.Assemblies.Net50.All;
1313
public static IEnumerable<PortableExecutableReference> Net60 => Basic.Reference.Assemblies.Net60.All;
1414
public static IEnumerable<PortableExecutableReference> NetStandard20 => Basic.Reference.Assemblies.NetStandard20.All;
15+
public static IEnumerable<PortableExecutableReference> Net461 => Basic.Reference.Assemblies.Net461.All;
1516
public static IEnumerable<PortableExecutableReference> Net472 => Basic.Reference.Assemblies.Net472.All;
1617

1718
public static IEnumerable<PortableExecutableReference> Get(ReferenceAssemblyKind kind) => kind switch
@@ -20,6 +21,7 @@ public static class ReferenceAssemblies
2021
ReferenceAssemblyKind.Net50 => Net50,
2122
ReferenceAssemblyKind.Net60 => Net60,
2223
ReferenceAssemblyKind.NetStandard20 => NetStandard20,
24+
ReferenceAssemblyKind.Net461 => Net461,
2325
ReferenceAssemblyKind.Net472 => Net472,
2426
_ => throw new Exception($"Invalid kind: {kind}")
2527
};
@@ -31,6 +33,7 @@ public enum ReferenceAssemblyKind
3133
Net50,
3234
Net60,
3335
NetStandard20,
36+
Net461,
3437
Net472,
3538
}
3639

0 commit comments

Comments
 (0)