3
3
#addin "nuget:?package=Cake.Incubator"
4
4
#tool "nuget:?package=GitVersion.CommandLine"
5
5
#tool "nuget:?package=xunit.runner.console"
6
- #load buildhelpers . cake
7
6
8
7
using System . Text . RegularExpressions ;
9
8
using System . Linq ;
@@ -16,7 +15,7 @@ var gitVersion = GitVersion();
16
15
var solutionDirectory = MakeAbsolute ( Directory ( "./" ) ) ;
17
16
var artifactsDirectory = solutionDirectory . Combine ( "artifacts" ) ;
18
17
var artifactsBinDirectory = artifactsDirectory . Combine ( "bin" ) ;
19
- var artifactsBinNet45Directory = artifactsBinDirectory . Combine ( "net45 " ) ;
18
+ var artifactsBinNet452Directory = artifactsBinDirectory . Combine ( "net452 " ) ;
20
19
var artifactsBinNetStandard15Directory = artifactsBinDirectory . Combine ( "netstandard1.5" ) ;
21
20
var artifactsDocsDirectory = artifactsDirectory . Combine ( "docs" ) ;
22
21
var artifactsDocsApiDocsDirectory = artifactsDocsDirectory . Combine ( "ApiDocs-" + gitVersion . LegacySemVer ) ;
@@ -47,16 +46,7 @@ Task("TestAndPackage")
47
46
. IsDependentOn ( "Test" )
48
47
. IsDependentOn ( "Package" ) ;
49
48
50
- Task ( "Clean" )
51
- . Does ( ( ) =>
52
- {
53
- CleanDirectory ( artifactsDirectory ) ;
54
- CleanDirectories ( "./**/obj" ) ;
55
- CleanDirectories ( $ "./**/bin/{ configuration } ") ;
56
- } ) ;
57
-
58
49
Task ( "Restore" )
59
- . IsDependentOn ( "Clean" )
60
50
. Does ( ( ) =>
61
51
{
62
52
DotNetCoreRestore ( solutionFullPath ) ;
@@ -79,6 +69,43 @@ Task("Build")
79
69
DotNetCoreBuild ( solutionFullPath , settings ) ;
80
70
} ) ;
81
71
72
+ Task ( "BuildArtifacts" )
73
+ . IsDependentOn ( "Build" )
74
+ . Does ( ( ) =>
75
+ {
76
+ foreach ( var targetFramework in new [ ] { "net452" , "netstandard1.5" } )
77
+ {
78
+ var toDirectory = artifactsBinDirectory . Combine ( targetFramework ) ;
79
+ CleanDirectory ( toDirectory ) ;
80
+
81
+ var projects = new [ ] { "MongoDB.Bson" , "MongoDB.Driver.Core" , "MongoDB.Driver" , "MongoDB.Driver.Legacy" , "MongoDB.Driver.GridFS" } ;
82
+ foreach ( var project in projects )
83
+ {
84
+ var fromDirectory = srcDirectory . Combine ( project ) . Combine ( "bin" ) . Combine ( configuration ) . Combine ( targetFramework ) ;
85
+
86
+ var fileNames = new List < string > ( ) ;
87
+ foreach ( var extension in new [ ] { "dll" , "pdb" , "xml" } )
88
+ {
89
+ var fileName = $ "{ project } .{ extension } ";
90
+ fileNames . Add ( fileName ) ;
91
+ }
92
+
93
+ // DnsClient.dll is needed by Sandcastle
94
+ if ( targetFramework == "net452" && project == "MongoDB.Driver.Core" )
95
+ {
96
+ fileNames . Add ( "DnsClient.dll" ) ;
97
+ }
98
+
99
+ foreach ( var fileName in fileNames )
100
+ {
101
+ var fromFile = fromDirectory . CombineWithFilePath ( fileName ) ;
102
+ var toFile = toDirectory . CombineWithFilePath ( fileName ) ;
103
+ CopyFile ( fromFile , toFile ) ;
104
+ }
105
+ }
106
+ }
107
+ } ) ;
108
+
82
109
Task ( "Test" )
83
110
. IsDependentOn ( "Build" )
84
111
. DoesForEach (
@@ -119,7 +146,7 @@ Task("Docs")
119
146
. IsDependentOn ( "RefDocs" ) ;
120
147
121
148
Task ( "ApiDocs" )
122
- . IsDependentOn ( "Build " )
149
+ . IsDependentOn ( "BuildArtifacts " )
123
150
. Does ( ( ) =>
124
151
{
125
152
EnsureDirectoryExists ( artifactsDocsApiDocsDirectory ) ;
@@ -205,7 +232,7 @@ Task("Package")
205
232
. IsDependentOn ( "PackageNugetPackages" ) ;
206
233
207
234
Task ( "PackageReleaseZipFile" )
208
- . IsDependentOn ( "Build " )
235
+ . IsDependentOn ( "BuildArtifacts " )
209
236
. IsDependentOn ( "ApiDocs" )
210
237
. Does ( ( ) =>
211
238
{
@@ -216,10 +243,10 @@ Task("PackageReleaseZipFile")
216
243
EnsureDirectoryExists ( stagingDirectory ) ;
217
244
CleanDirectory ( stagingDirectory ) ;
218
245
219
- var stagingNet45Directory = stagingDirectory . Combine ( "net45 " ) ;
220
- CopyDirectory ( artifactsBinNet45Directory , stagingNet45Directory ) ;
221
- DeleteFile ( stagingNet45Directory . CombineWithFilePath ( "DnsClient.dll" ) ) ;
222
- DeleteFile ( stagingNet45Directory . CombineWithFilePath ( "DnsClient.xml" ) ) ;
246
+ var stagingNet452Directory = stagingDirectory . Combine ( "net452 " ) ;
247
+ CopyDirectory ( artifactsBinNet452Directory , stagingNet452Directory ) ;
248
+ DeleteFile ( stagingNet452Directory . CombineWithFilePath ( "DnsClient.dll" ) ) ;
249
+ DeleteFile ( stagingNet452Directory . CombineWithFilePath ( "DnsClient.xml" ) ) ;
223
250
224
251
var stagingNetStandard15Directory = stagingDirectory . Combine ( "netstandard1.5" ) ;
225
252
CopyDirectory ( artifactsBinNetStandard15Directory , stagingNetStandard15Directory ) ;
0 commit comments