Skip to content

Commit ee7c3f4

Browse files
authored
Merge pull request #334 from qmfrederik/fixes/rationalize-msbuild
Exclude runtime assets for MSBuild
2 parents c70a12a + 0bed367 commit ee7c3f4

File tree

4 files changed

+26
-5
lines changed

4 files changed

+26
-5
lines changed

src/NerdBank.GitVersioning.Tests/AssemblyInfoTest.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ namespace NerdBank.GitVersioning.Tests
1010
{
1111
public class AssemblyInfoTest
1212
{
13+
public AssemblyInfoTest()
14+
{
15+
MSBuildExtensions.LoadMSBuild();
16+
}
17+
1318
[Fact]
1419
public void FSharpGenerator()
1520
{

src/NerdBank.GitVersioning.Tests/BuildIntegrationTests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ public class BuildIntegrationTests : RepoTestBase
4949
public BuildIntegrationTests(ITestOutputHelper logger)
5050
: base(logger)
5151
{
52+
MSBuildExtensions.LoadMSBuild();
53+
5254
int seed = (int)DateTime.Now.Ticks;
5355
this.random = new Random(seed);
5456
this.Logger.WriteLine("Random seed: {0}", seed);

src/NerdBank.GitVersioning.Tests/MSBuildExtensions.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,28 @@
77
using Microsoft.Build.Evaluation;
88
using Microsoft.Build.Execution;
99
using Microsoft.Build.Framework;
10+
using Microsoft.Build.Locator;
1011
using Microsoft.Build.Logging;
1112
using Validation;
1213
using Xunit.Abstractions;
1314

1415
internal static class MSBuildExtensions
1516
{
17+
private static readonly object loadLock = new object();
18+
private static bool loaded;
19+
20+
internal static void LoadMSBuild()
21+
{
22+
lock (loadLock)
23+
{
24+
if (!loaded)
25+
{
26+
MSBuildLocator.RegisterDefaults();
27+
loaded = true;
28+
}
29+
}
30+
}
31+
1632
internal static async Task<BuildResult> BuildAsync(this BuildManager buildManager, ITestOutputHelper logger, ProjectCollection projectCollection, ProjectRootElement project, string target, IDictionary<string, string> globalProperties = null, LoggerVerbosity logVerbosity = LoggerVerbosity.Detailed, ILogger[] additionalLoggers = null)
1733
{
1834
Requires.NotNull(buildManager, nameof(buildManager));

src/NerdBank.GitVersioning.Tests/NerdBank.GitVersioning.Tests.csproj

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@
3131
<PackageReference Include="7z.NET" Version="1.0.3" />
3232
<PackageReference Include="Newtonsoft.Json.Schema" Version="3.0.10" />
3333
<PackageReference Include="System.Collections.Immutable" Version="1.5.0" />
34-
<PackageReference Include="Microsoft.Build" Version="15.9.20" Condition=" '$(TargetFramework)' == 'net461' " />
34+
<PackageReference Include="Microsoft.Build" Version="15.1.548" ExcludeAssets="runtime" />
35+
<PackageReference Include="Microsoft.Build.Utilities.Core" Version="15.1.548" ExcludeAssets="runtime" />
36+
<PackageReference Include="Microsoft.Build.Locator" Version="1.2.2" />
3537
<PackageReference Include="System.Threading.Tasks.Dataflow" Version="4.9.0" />
3638
<PackageReference Include="Xunit.Combinatorial" Version="1.2.7" />
3739
<PackageReference Include="xunit" Version="2.4.1" />
@@ -43,11 +45,7 @@
4345
</PackageReference>
4446
<PackageReference Include="Xunit.SkippableFact" Version="1.3.12" />
4547
</ItemGroup>
46-
<ItemGroup Condition="'$(TargetFramework)' == 'net461' ">
47-
<PackageReference Include="Microsoft.Build.Tasks.Core" Version="15.9.20" />
48-
</ItemGroup>
4948
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp2.0'">
50-
<PackageReference Include="Microsoft.Build.Tasks.Core" Version="15.1.548" />
5149
<PackageReference Include="System.Runtime.Loader" Version="4.3.0" />
5250
</ItemGroup>
5351
</Project>

0 commit comments

Comments
 (0)