Skip to content

Commit b4c44cc

Browse files
authored
Bugfix copied project settings (#2056)
* Bugfix copied project settings Fixes #2055 * Make copied settings more readable in generated csproj * Adjust tests
1 parent 48ecbc2 commit b4c44cc

File tree

3 files changed

+9
-6
lines changed

3 files changed

+9
-6
lines changed

src/BenchmarkDotNet/Templates/CsProj.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,10 @@
1919
<Deterministic>true</Deterministic>
2020
<!-- needed for custom build configurations (only "Release" builds are optimized by default) -->
2121
<Optimize Condition=" '$(Configuration)' != 'Debug' ">true</Optimize>
22+
<!-- Begin copied settings from benchmarks project -->
2223
$COPIEDSETTINGS$
23-
<!-- we set LangVersion after $COPIEDSETTINGS$ which might contain LangVersion copied from the benchmarks project -->
24+
<!-- End copied settings -->
25+
<!-- we set LangVersion after any copied settings which might contain LangVersion copied from the benchmarks project -->
2426
<LangVersion Condition="'$(LangVersion)' == '' Or ($([System.Char]::IsDigit('$(LangVersion)', 0)) And '$(LangVersion)' &lt; '7.3')">latest</LangVersion>
2527
<AppendTargetFrameworkToOutputPath>true</AppendTargetFrameworkToOutputPath>
2628
<!-- fix for NETSDK1150: https://docs.microsoft.com/en-us/dotnet/core/compatibility/sdk/5.0/referencing-executable-generates-error -->

src/BenchmarkDotNet/Toolchains/CsProj/CsProjGenerator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ protected virtual string GetRuntimeSettings(GcMode gcMode, IResolver resolver)
112112

113113
foreach (string setting in SettingsWeWantToCopy)
114114
if (trimmedLine.Contains(setting))
115-
customProperties.Append(trimmedLine);
115+
customProperties.AppendLine(trimmedLine);
116116

117117
if (trimmedLine.StartsWith("<Import Project"))
118118
{

tests/BenchmarkDotNet.Tests/CsProjGeneratorTests.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.IO;
1+
using System;
2+
using System.IO;
23
using System.Linq;
34
using System.Reflection;
45
using BenchmarkDotNet.Characteristics;
@@ -82,7 +83,7 @@ public void UseWpfSettingGetsCopied()
8283
{
8384
var (customProperties, sdkName) = sut.GetSettingsThatNeedsToBeCopied(reader, TestAssemblyFileInfo);
8485

85-
Assert.Equal("<UseWpf>true</UseWpf>", customProperties);
86+
Assert.Equal("<UseWpf>true</UseWpf>" + Environment.NewLine, customProperties);
8687
Assert.Equal("Microsoft.NET.Sdk", sdkName);
8788
}
8889
}
@@ -111,7 +112,7 @@ public void SettingsFromPropsFileImportedUsingAbsolutePathGetCopies()
111112
{
112113
var (customProperties, sdkName) = sut.GetSettingsThatNeedsToBeCopied(reader, TestAssemblyFileInfo);
113114

114-
Assert.Equal("<LangVersion>9.9</LangVersion>", customProperties);
115+
Assert.Equal("<LangVersion>9.9</LangVersion>" + Environment.NewLine, customProperties);
115116
Assert.Equal("Microsoft.NET.Sdk", sdkName);
116117
}
117118

@@ -142,7 +143,7 @@ public void SettingsFromPropsFileImportedUsingRelativePathGetCopies()
142143
{
143144
var (customProperties, sdkName) = sut.GetSettingsThatNeedsToBeCopied(reader, TestAssemblyFileInfo);
144145

145-
Assert.Equal("<LangVersion>9.9</LangVersion>", customProperties);
146+
Assert.Equal("<LangVersion>9.9</LangVersion>" + Environment.NewLine, customProperties);
146147
Assert.Equal("Microsoft.NET.Sdk", sdkName);
147148
}
148149

0 commit comments

Comments
 (0)