Skip to content

Commit 8ba69a3

Browse files
.NET Core 3.1 + NET 5 Support (#42)
* Start .Core 3 * upgrade for rpeview 7 * install .net core 3 preview on appveyor * WIP * revert unneeded changes * cleanup * testprogram * disable for .NET Core 3 * .NET 5 * cleanup * test colors * test all platforms * update testscript * fix MaxLinesTest * unit tests are written with a very specific font in mind * there can be whitespace after viewkind markup * skip testing unsupported scenarios * do not hardcode the font, instead hardcode test results * use hyperlink markup instead of hidden text for links * move to .NET Core 3.1 * Disable SupportLinks for .NET Core 3.x * 3.1 appveyor * Fix csproj * sln folder * Version 4.5-rc.1 * fix csproj #2 Co-authored-by: Tobias Käs <[email protected]>
1 parent 1f16810 commit 8ba69a3

26 files changed

+5920
-49
lines changed

NLog.Windows.Forms.Tests/NLog.Windows.Forms.Tests.csproj

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFramework>net452</TargetFramework>
3+
<TargetFrameworks>net452;netcoreapp3.1;net5.0-windows</TargetFrameworks>
44
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
55
<AssemblyTitle>NLog.Windows.Forms.Tests</AssemblyTitle>
66
<Company>Microsoft</Company>
77
<Product>NLog.Windows.Forms.Tests</Product>
8-
<Copyright>Copyright © Jaroslaw Kowalski, Kim Christensen, Julian Verdurmen 2015-2016</Copyright>
9-
<OutputPath>bin\$(Configuration)\</OutputPath>
8+
<Copyright>Copyright © Jaroslaw Kowalski, Kim Christensen, Julian Verdurmen</Copyright>
109
</PropertyGroup>
1110
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
1211
<DebugType>full</DebugType>
@@ -20,6 +19,10 @@
2019
<PropertyGroup>
2120
<AssemblyOriginatorKeyFile>NLog.snk</AssemblyOriginatorKeyFile>
2221
</PropertyGroup>
22+
<PropertyGroup Condition=" '$(TargetFramework)' == 'net452' or '$(TargetFramework)' == 'net5.0-windows' ">
23+
<!-- Links aren't support for .NET Core 3.x, but does work for .NET 5 and .NET Framework-->
24+
<DefineConstants>$(DefineConstants);LINKS_SUPPORTED</DefineConstants>
25+
</PropertyGroup>
2326
<ItemGroup>
2427
<PackageReference Include="xunit" Version="2.4.1" />
2528
<PackageReference Include="xunit.extensibility.execution" Version="2.4.1" />

NLog.Windows.Forms.Tests/RichTextBoxTargetTests.cs

Lines changed: 80 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,21 +55,32 @@ public void SimpleRichTextBoxTargetTest()
5555
var result = rtfText;
5656
Assert.Contains(@"{\colortbl ;\red255\green255\blue255;\red255\green0\blue0;\red255\green165\blue0;\red0\green0\blue0;\red128\green128\blue128;\red169\green169\blue169;}", result);
5757

58+
#if NETCOREAPP
59+
Assert.Contains(@"\viewkind4\uc1", result);
60+
Assert.Contains(@"\pard\cf1\highlight2\b\f0\fs18 Fatal NLog.UnitTests.Targets.RichTextBoxTargetTests Test\par", result);
61+
#else
5862
if (IsAppVeyor())
5963
{
60-
Assert.Contains(@"\viewkind4\uc1\pard\cf1\highlight2\b\f0\fs17 Fatal NLog.UnitTests.Targets.RichTextBoxTargetTests Test\par", result);
64+
Assert.Contains(@"\viewkind4\uc1", result);
65+
Assert.Contains(@"\pard\cf1\highlight2\b\f0\fs17 Fatal NLog.UnitTests.Targets.RichTextBoxTargetTests Test\par", result);
6166
}
6267
else
6368
{
64-
Assert.Contains(@"\viewkind4\uc1\pard\cf1\highlight2\b\f0\fs15 Fatal NLog.UnitTests.Targets.RichTextBoxTargetTests Test\par", result);
69+
Assert.Contains(@"\viewkind4\uc1", result);
70+
Assert.Contains(@"\pard\cf1\highlight2\b\f0\fs15 Fatal NLog.UnitTests.Targets.RichTextBoxTargetTests Test\par", result);
6571
}
72+
#endif
6673

6774
Assert.Contains(@"\cf2\highlight1\i Error NLog.UnitTests.Targets.RichTextBoxTargetTests Foo\par", result);
6875
Assert.Contains(@"\cf3\ul\b0\i0 Warn NLog.UnitTests.Targets.RichTextBoxTargetTests Bar\par", result);
6976
Assert.Contains(@"\cf4\ulnone Info NLog.UnitTests.Targets.RichTextBoxTargetTests Test\par", result);
7077
Assert.Contains(@"\cf5 Debug NLog.UnitTests.Targets.RichTextBoxTargetTests Foo\par", result);
7178
Assert.Contains(@"\cf6\i Trace NLog.UnitTests.Targets.RichTextBoxTargetTests Bar\par", result);
79+
#if NETCOREAPP
80+
Assert.Contains(@"\cf0\highlight0\i0\par", result);
81+
#else
7282
Assert.Contains(@"\cf0\highlight0\i0\f1\par", result);
83+
#endif
7384
Assert.Contains(@"}", result);
7485

7586
LogManager.Configuration = null;
@@ -115,7 +126,11 @@ public void NoColoringTest()
115126
Assert.Contains(@"Info NLog.UnitTests.Targets.RichTextBoxTargetTests Test\par", result);
116127
Assert.Contains(@"Debug NLog.UnitTests.Targets.RichTextBoxTargetTests Foo\par", result);
117128
Assert.Contains(@"Trace NLog.UnitTests.Targets.RichTextBoxTargetTests Bar\par", result);
129+
#if NETCOREAPP
130+
Assert.Contains(@"\cf0\highlight0\par", result);
131+
#else
118132
Assert.Contains(@"\cf0\highlight0\f1\par", result);
133+
#endif
119134
Assert.Contains(@"}", result);
120135
}
121136
finally
@@ -166,7 +181,11 @@ public void CustomRowColoringTest()
166181
Assert.Contains(@"\cf1 Info NLog.UnitTests.Targets.RichTextBoxTargetTests Test\par", result);
167182
Assert.Contains(@"Debug NLog.UnitTests.Targets.RichTextBoxTargetTests Foo\par", result);
168183
Assert.Contains(@"\cf3 Trace NLog.UnitTests.Targets.RichTextBoxTargetTests Bar\par", result);
184+
#if NETCOREAPP
185+
Assert.Contains(@"\cf0\highlight0\par", result);
186+
#else
169187
Assert.Contains(@"\cf0\highlight0\f1\par", result);
188+
#endif
170189
Assert.Contains(@"}", result);
171190
}
172191
finally
@@ -177,14 +196,21 @@ public void CustomRowColoringTest()
177196

178197
private static void AssertViewkind(string result)
179198
{
199+
#if NETCOREAPP
200+
Assert.Contains(@"\viewkind4\uc1", result);
201+
Assert.Contains(@"\pard\cf1\highlight2\f0\fs18 Fatal NLog.UnitTests.Targets.RichTextBoxTargetTests Test\par", result);
202+
#else
180203
if (IsAppVeyor())
181204
{
182-
Assert.Contains(@"\viewkind4\uc1\pard\cf1\highlight2\f0\fs17 Fatal NLog.UnitTests.Targets.RichTextBoxTargetTests Test\par", result);
205+
Assert.Contains(@"\viewkind4\uc1", result);
206+
Assert.Contains(@"\pard\cf1\highlight2\f0\fs17 Fatal NLog.UnitTests.Targets.RichTextBoxTargetTests Test\par", result);
183207
}
184208
else
185209
{
186-
Assert.Contains(@"\viewkind4\uc1\pard\cf1\highlight2\f0\fs15 Fatal NLog.UnitTests.Targets.RichTextBoxTargetTests Test\par", result);
210+
Assert.Contains(@"\viewkind4\uc1", result);
211+
Assert.Contains(@"\pard\cf1\highlight2\f0\fs15 Fatal NLog.UnitTests.Targets.RichTextBoxTargetTests Test\par", result);
187212
}
213+
#endif
188214
}
189215

190216
[Fact]
@@ -226,21 +252,32 @@ public void CustomWordRowColoringTest()
226252
var result = rtfText;
227253
Assert.Contains(@"{\colortbl ;\red0\green0\blue0;\red255\green255\blue255;\red255\green0\blue0;\red0\green128\blue0;}", result);
228254

255+
#if NETCOREAPP
256+
Assert.Contains(@"\viewkind4\uc1", result);
257+
Assert.Contains(@"\pard\cf1\highlight2\f0\fs18 Fatal NLog.UnitTests.Targets.RichTextBoxTargetTests Test \cf3\f1 zzz\cf1\f0\par", result);
258+
#else
229259
if (IsAppVeyor())
230260
{
231-
Assert.Contains(@"\viewkind4\uc1\pard\cf1\highlight2\f0\fs17 Fatal NLog.UnitTests.Targets.RichTextBoxTargetTests Test \cf3\f1 zzz\cf1\f0\par", result);
261+
Assert.Contains(@"\viewkind4\uc1", result);
262+
Assert.Contains(@"\pard\cf1\highlight2\f0\fs17 Fatal NLog.UnitTests.Targets.RichTextBoxTargetTests Test \cf3\f1 zzz\cf1\f0\par", result);
232263
}
233264
else
234265
{
235-
Assert.Contains(@"\viewkind4\uc1\pard\cf1\highlight2\f0\fs15 Fatal NLog.UnitTests.Targets.RichTextBoxTargetTests Test \cf3\f1 zzz\cf1\f0\par", result);
266+
Assert.Contains(@"\viewkind4\uc1", result);
267+
Assert.Contains(@"\pard\cf1\highlight2\f0\fs15 Fatal NLog.UnitTests.Targets.RichTextBoxTargetTests Test \cf3\f1 zzz\cf1\f0\par", result);
236268
}
269+
#endif
237270

238271
Assert.Contains(@"Error NLog.UnitTests.Targets.RichTextBoxTargetTests Foo xxx\par", result);
239272
Assert.Contains(@"Warn NLog.UnitTests.Targets.RichTextBoxTargetTests Bar yyy\par", result);
240273
Assert.Contains(@"Info NLog.UnitTests.Targets.RichTextBoxTargetTests Test \cf4\f1 aaa\cf1\f0\par", result);
241274
Assert.Contains(@"Debug NLog.UnitTests.Targets.RichTextBoxTargetTests Foo \cf3\f1 zzz\cf1\f0\par", result);
242275
Assert.Contains(@"Trace NLog.UnitTests.Targets.RichTextBoxTargetTests Bar ccc\par", result);
276+
#if NETCOREAPP
277+
Assert.Contains(@"\cf0\highlight0\par", result);
278+
#else
243279
Assert.Contains(@"\cf0\highlight0\f1\par", result);
280+
#endif
244281
Assert.Contains(@"}", result);
245282
}
246283
finally
@@ -299,7 +336,6 @@ public void MaxLinesTest()
299336
{
300337
ControlName = "Control1",
301338
Layout = "${message}",
302-
ShowMinimized = true,
303339
ToolWindow = false,
304340
AutoScroll = true,
305341
};
@@ -1006,6 +1042,8 @@ public void ManualRegisterTestWithRetentionConfigReload()
10061042
}
10071043
}
10081044

1045+
#if LINKS_SUPPORTED
1046+
10091047
[Fact]
10101048
public void LinkLayoutTestDisabledLinks()
10111049
{
@@ -1029,6 +1067,7 @@ public void LinkLayoutTestDisabledLinks()
10291067
Assert.Matches(@"(\([a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}\))", result); //the placeholder GUID was not replaced by was not replaced because of SupportLinks set to false
10301068
}
10311069

1070+
10321071
[Fact]
10331072
public void LinkTest()
10341073
{
@@ -1054,9 +1093,14 @@ public void LinkTest()
10541093
string resultText = target.TargetRichTextBox.Text;
10551094
Assert.DoesNotMatch(@"(\([a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}\))", resultRtf); //the placeholder GUID was replaced
10561095
Assert.Contains("descr#link", resultText); //text contains visible and invisible parts
1096+
#if NETCOREAPP
1097+
Assert.Contains(@"{\field{\*\fldinst{HYPERLINK ""descr#link", resultRtf); //RTF contains everything
1098+
#else
10571099
Assert.Contains(@"descr\v #link", resultRtf); //RTF contains everything
1100+
#endif
10581101
}
10591102

1103+
10601104
[Fact]
10611105
public void LinkTestConditional()
10621106
{
@@ -1084,7 +1128,11 @@ public void LinkTestConditional()
10841128
string resultRtf = ExtractRtf(target.TargetRichTextBox);
10851129
Assert.Contains("TestNoLink", resultText);
10861130
Assert.DoesNotContain("#link", resultText); //no link for first event
1131+
#if NETCOREAPP
1132+
Assert.DoesNotContain(@"{\field{\*\fldinst{HYPERLINK", resultRtf); //no link for first event
1133+
#else
10871134
Assert.DoesNotContain(@"\v #link", resultRtf); //no link for first event
1135+
#endif
10881136
}
10891137

10901138

@@ -1100,8 +1148,13 @@ public void LinkTestConditional()
11001148
{
11011149
string resultText = target.TargetRichTextBox.Text;
11021150
string resultRtf = ExtractRtf(target.TargetRichTextBox);
1151+
#if NETCOREAPP
1152+
Assert.Contains("TestWithLink HYPERLINK \"marker_text#link", resultText); //link for a second event
1153+
Assert.Contains(@"TestWithLink {{\field{\*\fldinst{HYPERLINK ""marker_text#link", resultRtf); //link for a second event
1154+
#else
11031155
Assert.Contains("TestWithLink marker_text#link", resultText); //link for a second event
11041156
Assert.Contains(@"marker_text\v #link", resultRtf); //link for a second event
1157+
#endif
11051158
}
11061159
}
11071160

@@ -1135,7 +1188,11 @@ public void LinkTestExcessLinksRemoved()
11351188
string resultText = target.TargetRichTextBox.Text;
11361189
string resultRtf = ExtractRtf(target.TargetRichTextBox);
11371190
Assert.Contains("#link", resultText); //some links exist
1191+
#if NETCOREAPP
1192+
Assert.Contains(@"{\field{\*\fldinst{HYPERLINK", resultRtf); //some links exist
1193+
#else
11381194
Assert.Contains(@"\v #link", resultRtf); //some links exist
1195+
#endif
11391196

11401197
Assert.True(target.LinkedEventsCount == target.MaxLines); //storing 5, not 100 events
11411198
}
@@ -1165,9 +1222,13 @@ public void LinkClickTest()
11651222
bool linkClickedFromHandler = false;
11661223
string linkTextFromHandler = null;
11671224
LogEventInfo logEventFromHandler = null;
1225+
var cancellationTokenSource = new CancellationTokenSource();
1226+
var cancellationToken = cancellationTokenSource.Token;
1227+
11681228

11691229
RichTextBoxTarget.DelLinkClicked clickHandler = (RichTextBoxTarget sender, string linkText, LogEventInfo logEvent) =>
11701230
{
1231+
cancellationTokenSource.Cancel();
11711232
//actual checks moved to main code to make exceptions caught by the test runner.
11721233
linkClickedFromHandler = true;
11731234
linkTextFromHandler = linkText;
@@ -1177,6 +1238,16 @@ public void LinkClickTest()
11771238

11781239
RichTextBoxTarget.GetTargetByControl(target.TargetRichTextBox).LinkClicked += clickHandler;
11791240

1241+
Task.Run(() =>
1242+
{
1243+
// max wait time. After that. Stop
1244+
int timeout = 1_000;
1245+
Thread.Sleep(timeout);
1246+
target.TargetForm.Close();
1247+
throw new TimeoutException("Waited to long for click");
1248+
1249+
}, cancellationToken);
1250+
11801251
//simulate clicking on a link
11811252
Task.Run(() =>
11821253
{
@@ -1190,13 +1261,14 @@ public void LinkClickTest()
11901261
}
11911262
});
11921263

1193-
//in case link does not click, this would hang up infinitely;
1264+
11941265
Application.Run(target.TargetForm);
11951266

11961267
Assert.True(linkClickedFromHandler); //check that we have actually clicked on a link, not just missed anything
11971268
Assert.True("link" == linkTextFromHandler);
11981269
Assert.True("Test" == logEventFromHandler.Message);
11991270
}
1271+
#endif
12001272

12011273

12021274
#region mouse click smulation

NLog.Windows.Forms.sln

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio 15
4-
VisualStudioVersion = 15.0.28307.645
3+
# Visual Studio Version 16
4+
VisualStudioVersion = 16.0.29001.49
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NLog.Windows.Forms", "NLog.Windows.Forms\NLog.Windows.Forms.csproj", "{EB5C7E87-C5F4-43FC-AC71-BE0A22F5B932}"
77
EndProject
88
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NLog.Windows.Forms.Tests", "NLog.Windows.Forms.Tests\NLog.Windows.Forms.Tests.csproj", "{77ED37BE-37DD-4C16-B027-AD6B0EDE0B4F}"
99
EndProject
1010
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestApplication", "TestApplication\TestApplication.csproj", "{03D9D89A-B972-4446-AB4A-A430851243D0}"
1111
EndProject
12+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestApplicationCore3", "TestApplicationCore3\TestApplicationCore3.csproj", "{9FAC81DA-0137-47E9-957A-D8A9A5215338}"
13+
EndProject
14+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestApplicationNet5", "TestApplicationNet5\TestApplicationNet5.csproj", "{134980CC-0226-42B1-B02F-A9C81AAB0A3D}"
15+
EndProject
16+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test Applications", "Test Applications", "{6AB4C95A-36D8-4F52-8F25-EF9CA98AF536}"
17+
EndProject
1218
Global
1319
GlobalSection(SolutionConfigurationPlatforms) = preSolution
1420
Debug|Any CPU = Debug|Any CPU
@@ -27,10 +33,23 @@ Global
2733
{03D9D89A-B972-4446-AB4A-A430851243D0}.Debug|Any CPU.Build.0 = Debug|Any CPU
2834
{03D9D89A-B972-4446-AB4A-A430851243D0}.Release|Any CPU.ActiveCfg = Release|Any CPU
2935
{03D9D89A-B972-4446-AB4A-A430851243D0}.Release|Any CPU.Build.0 = Release|Any CPU
36+
{9FAC81DA-0137-47E9-957A-D8A9A5215338}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
37+
{9FAC81DA-0137-47E9-957A-D8A9A5215338}.Debug|Any CPU.Build.0 = Debug|Any CPU
38+
{9FAC81DA-0137-47E9-957A-D8A9A5215338}.Release|Any CPU.ActiveCfg = Release|Any CPU
39+
{9FAC81DA-0137-47E9-957A-D8A9A5215338}.Release|Any CPU.Build.0 = Release|Any CPU
40+
{134980CC-0226-42B1-B02F-A9C81AAB0A3D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
41+
{134980CC-0226-42B1-B02F-A9C81AAB0A3D}.Debug|Any CPU.Build.0 = Debug|Any CPU
42+
{134980CC-0226-42B1-B02F-A9C81AAB0A3D}.Release|Any CPU.ActiveCfg = Release|Any CPU
43+
{134980CC-0226-42B1-B02F-A9C81AAB0A3D}.Release|Any CPU.Build.0 = Release|Any CPU
3044
EndGlobalSection
3145
GlobalSection(SolutionProperties) = preSolution
3246
HideSolutionNode = FALSE
3347
EndGlobalSection
48+
GlobalSection(NestedProjects) = preSolution
49+
{03D9D89A-B972-4446-AB4A-A430851243D0} = {6AB4C95A-36D8-4F52-8F25-EF9CA98AF536}
50+
{9FAC81DA-0137-47E9-957A-D8A9A5215338} = {6AB4C95A-36D8-4F52-8F25-EF9CA98AF536}
51+
{134980CC-0226-42B1-B02F-A9C81AAB0A3D} = {6AB4C95A-36D8-4F52-8F25-EF9CA98AF536}
52+
EndGlobalSection
3453
GlobalSection(ExtensibilityGlobals) = postSolution
3554
SolutionGuid = {2DC4C500-52F1-4D06-863D-209D713D03ED}
3655
EndGlobalSection

NLog.Windows.Forms/FormHelper.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ internal static Form CreateForm(string name, int width, int height, bool show, b
108108
{
109109
Name = name,
110110
Text = "NLog",
111-
Icon = GetNLogIcon()
111+
Icon = GetNLogIcon(),
112112
};
113113

114114
#if !Smartphone
@@ -163,6 +163,9 @@ private static Icon GetNLogIcon()
163163
/// </remarks>
164164
internal static void ChangeSelectionToLink(RichTextBox textBox, string text, string hyperlink)
165165
{
166+
#if NETCOREAPP
167+
textBox.SelectedRtf = @"{\rtf1\ansi{\field{\*\fldinst{HYPERLINK """ + text + @"#" + hyperlink + @""" }}{\fldrslt{" + text + @"}}}}";
168+
#else
166169
int selectionStart = textBox.SelectionStart;
167170

168171
//using \v tag to hide hyperlink part of the text, and \v0 to end hiding. See http://stackoverflow.com/a/14339531/376066
@@ -171,6 +174,7 @@ internal static void ChangeSelectionToLink(RichTextBox textBox, string text, str
171174

172175
textBox.Select(selectionStart, text.Length + 1 + hyperlink.Length); //now select both visible and invisible part
173176
SetSelectionStyle(textBox, CFM_LINK, CFE_LINK); //and turn into a link
177+
#endif
174178
}
175179

176180
/// <summary>

NLog.Windows.Forms/NLog.Windows.Forms.csproj

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
22
<PropertyGroup>
3-
<TargetFramework>net35</TargetFramework>
3+
<TargetFrameworks>net35;netcoreapp3.1;net5.0-windows</TargetFrameworks>
44
<AssemblyTitle>NLog.Windows.Forms</AssemblyTitle>
55
<Company>NLog</Company>
66
<Product>NLog.Windows.Forms</Product>
@@ -16,26 +16,25 @@
1616
<GenerateDocumentationFile>true</GenerateDocumentationFile>
1717
<IncludeSymbols>true</IncludeSymbols>
1818
<DebugType Condition=" '$(Configuration)' == 'Debug' ">Full</DebugType>
19+
<UseWindowsForms>true</UseWindowsForms>
1920
<SignAssembly>true</SignAssembly>
2021
<AssemblyOriginatorKeyFile>NLog.snk</AssemblyOriginatorKeyFile>
2122
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
2223
<PackageLicenseExpression>BSD-3-Clause</PackageLicenseExpression>
2324
<RepositoryUrl>https://github.com/NLog/NLog.Windows.Forms.git</RepositoryUrl>
2425
<RepositoryType>git</RepositoryType>
2526
<AssemblyVersion>4.0.0.0</AssemblyVersion>
26-
<PackageReleaseNotes>
27-
28-
- RichTextBoxTarget: added overloads for ReInitializeAllTextboxes and GetTargetByControl (#72) (@304NotModified)
29-
- RichTextBoxTarget: better error handling for empty or unexpected NLog configs (#72) (@304NotModified)
30-
31-
- Update NLog to 4.7.9 (#74) (@304NotModified)
32-
- Fixed publishing Symbol package (#46) (@304NotModified)
33-
- Added Sourcelink (#70) (@304NotModified)
34-
- Enable deterministic build (#73) (@304NotModified)
3527

28+
<PackageReleaseNotes>
29+
Added support for .NET Core 3.1 and .NET 5 (#42) (@weltkante, @304NotModified)
30+
</PackageReleaseNotes>
31+
</PropertyGroup>
3632

37-
</PackageReleaseNotes>
33+
<PropertyGroup Condition=" '$(TargetFramework)' == 'net35' or '$(TargetFramework)' == 'net5.0-windows' ">
34+
<!-- Links aren't support for .NET Core 3.x, but does work for .NET 5 and .NET Framework-->
35+
<DefineConstants>$(DefineConstants);LINKS_SUPPORTED</DefineConstants>
3836
</PropertyGroup>
37+
3938
<ItemGroup>
4039
<PackageReference Include="NLog" Version="4.7.9" />
4140
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All" />

0 commit comments

Comments
 (0)