Skip to content

Commit 9f558df

Browse files
committed
CSHARP-2044: Migrate project.json files to .csproj
.NET core build uses project.json which has been deprecated. This commit migrates project.json files to .csproj files. - Replace project.json files with Visual Studio 2017's auto-migrated .csproj files. - Pin assembly info to a static version instead of using auto-increment to satisfy the new default of deterministic mode. - Update CAKE .NET Core build process to target individual .csproj files since file globbing no longer seems to work. - Update CAKE .NET Core build processes so that NuGet package restoration for the test projects occurs when targeting TestNetStandard15 instead of during BuildNetStandard15. - Update build process to copy test certificate file (step missed by auto-migration). - Unify expected location of the test certificate between .NET Framework tests and .NET Standard tests. - Re-enable .NET Standard builds for the default build target in CAKE. - Update internals class visibility for test helpers. - Re-enable .NET Standard tests when targeting "TestWindows" target.
1 parent 3d3089c commit 9f558df

File tree

52 files changed

+680
-938
lines changed

Some content is hidden

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

52 files changed

+680
-938
lines changed

CSharpDriver.Dotnet.sln

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

build.cake

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#load buildhelpers.cake
77

88
using System.Text.RegularExpressions;
9+
using System.Linq;
910

1011
var target = Argument("target", "Default");
1112
var configuration = Argument("configuration", "Release");
@@ -46,8 +47,8 @@ Task("TestAndPackage")
4647
.IsDependentOn("Package");
4748

4849
Task("Build")
49-
.IsDependentOn("BuildNet45");
50-
//.IsDependentOn("BuildNetStandard15");
50+
.IsDependentOn("BuildNet45")
51+
.IsDependentOn("BuildNetStandard15");
5152

5253
Task("BuildNet45")
5354
.Does(() =>
@@ -81,13 +82,19 @@ Task("BuildNet45")
8182
Task("BuildNetStandard15")
8283
.Does(() =>
8384
{
84-
DotNetCoreRestore();
85+
var dotNetProjectDirectories = srcProjectNames.Select(
86+
projectName=>srcDirectory.Combine(projectName+".Dotnet"));
87+
88+
foreach (var directory in dotNetProjectDirectories)
89+
{
90+
DotNetCoreRestore(directory.ToString());
91+
}
8592
GlobalAssemblyInfo.OverwriteGlobalAssemblyInfoFile(Context, solutionDirectory, configuration, gitVersion);
86-
DotNetCoreBuild("./**/project.json", new DotNetCoreBuildSettings
93+
var settings= new DotNetCoreBuildSettings { Configuration = configuration };
94+
foreach (var directory in dotNetProjectDirectories)
8795
{
88-
Configuration = configuration
89-
});
90-
96+
DotNetCoreBuild(directory.ToString(), settings);
97+
}
9198
EnsureDirectoryExists(artifactsBinNetStandard15Directory);
9299
foreach (var projectName in srcProjectNames)
93100
{
@@ -111,8 +118,8 @@ Task("Test")
111118
.IsDependentOn("TestWindows");
112119

113120
Task("TestWindows")
114-
.IsDependentOn("TestNet45");
115-
//.IsDependentOn("TestNetStandard15");
121+
.IsDependentOn("TestNet45")
122+
.IsDependentOn("TestNetStandard15");
116123

117124
Task("TestLinux")
118125
.IsDependentOn("TestNetStandard15");
@@ -145,7 +152,8 @@ Task("TestNetStandard15")
145152
foreach (var testProjectName in testProjectNames)
146153
{
147154
var testProjectDirectory = testsDirectory.Combine(testProjectName);
148-
var testProjectFile = testProjectDirectory.CombineWithFilePath("project.json");
155+
DotNetCoreRestore(testProjectDirectory.ToString());
156+
var testProjectFile = testProjectDirectory.CombineWithFilePath($"{testProjectName}.csproj");
149157
var testSettings = new DotNetCoreTestSettings();
150158
var xunitSettings = new XUnit2Settings
151159
{

global.json

Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<VersionPrefix>2.5.0</VersionPrefix>
5+
<TargetFramework>netstandard1.5</TargetFramework>
6+
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
7+
<GenerateDocumentationFile>true</GenerateDocumentationFile>
8+
<AssemblyName>MongoDB.Bson</AssemblyName>
9+
<PackageId>MongoDB.Bson.Dotnet</PackageId>
10+
<NetStandardImplicitPackageVersion>1.6.0</NetStandardImplicitPackageVersion>
11+
<GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
12+
<GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
13+
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
14+
</PropertyGroup>
15+
16+
<ItemGroup>
17+
<Compile Include="..\MongoDB.Bson\**\*.cs;..\MongoDB.Shared\Hasher.cs" Exclude="bin\**;obj\**;**\*.xproj;packages\**" />
18+
</ItemGroup>
19+
20+
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.5' ">
21+
<PackageReference Include="System.Collections.NonGeneric" Version="4.0.1" />
22+
<PackageReference Include="System.Diagnostics.Process" Version="4.1.0" />
23+
<PackageReference Include="System.Dynamic.Runtime" Version="4.0.11" />
24+
<PackageReference Include="System.Reflection.Emit.Lightweight" Version="4.0.1" />
25+
</ItemGroup>
26+
27+
</Project>

src/MongoDB.Bson.Dotnet/MongoDB.Bson.Dotnet.xproj

Lines changed: 0 additions & 21 deletions
This file was deleted.

src/MongoDB.Bson.Dotnet/project.json

Lines changed: 0 additions & 35 deletions
This file was deleted.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<VersionPrefix>2.5.0</VersionPrefix>
5+
<TargetFramework>netstandard1.5</TargetFramework>
6+
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
7+
<GenerateDocumentationFile>true</GenerateDocumentationFile>
8+
<AssemblyName>MongoDB.Driver.Core</AssemblyName>
9+
<PackageId>MongoDB.Driver.Core.Dotnet</PackageId>
10+
<NetStandardImplicitPackageVersion>1.6.0</NetStandardImplicitPackageVersion>
11+
<GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
12+
<GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
13+
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
14+
</PropertyGroup>
15+
16+
<ItemGroup>
17+
<Compile Include="..\MongoDB.Driver.Core\**\*.cs;..\MongoDB.Shared\ApplicationNameHelper.cs;..\MongoDB.Shared\Hasher.cs" Exclude="bin\**;obj\**;**\*.xproj;packages\**" />
18+
</ItemGroup>
19+
20+
<ItemGroup>
21+
<ProjectReference Include="..\MongoDB.Bson.Dotnet\MongoDB.Bson.Dotnet.csproj" />
22+
</ItemGroup>
23+
24+
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.5' ">
25+
<PackageReference Include="System.Collections.Specialized" Version="4.0.1" />
26+
<PackageReference Include="System.Diagnostics.TraceSource" Version="4.0.0" />
27+
<PackageReference Include="System.Net.NameResolution" Version="4.0.0" />
28+
<PackageReference Include="System.Net.Security" Version="4.0.0" />
29+
<PackageReference Include="System.Security.SecureString" Version="4.0.0" />
30+
</ItemGroup>
31+
32+
</Project>

src/MongoDB.Driver.Core.Dotnet/MongoDB.Driver.Core.Dotnet.xproj

Lines changed: 0 additions & 19 deletions
This file was deleted.

src/MongoDB.Driver.Core.Dotnet/project.json

Lines changed: 0 additions & 39 deletions
This file was deleted.

src/MongoDB.Driver.Core/Properties/AssemblyInfo.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232

3333
[assembly: InternalsVisibleTo("MongoDB.Driver.Core.FunctionalTests")]
3434
[assembly: InternalsVisibleTo("MongoDB.Driver.Core.TestHelpers")]
35+
[assembly: InternalsVisibleTo("MongoDB.Driver.Core.TestHelpers.Dotnet")]
3536
[assembly: InternalsVisibleTo("MongoDB.Driver.Core.Tests")]
3637
[assembly: InternalsVisibleTo("MongoDB.Driver.Core.Tests.Dotnet")]
3738
[assembly: InternalsVisibleTo("MongoDB.Driver.Tests")]

0 commit comments

Comments
 (0)