Skip to content

Commit af92da7

Browse files
authored
Feature/net abstractions 5x (#3273)
* port FAKE build and csproj changes from 6.x and master * moved to Elastic.Xunit * explicit IClassFixture<EndpointUsage> fixes unit tests * fixed readonly integration tests * fixed failing integration tests
1 parent a78ddab commit af92da7

File tree

572 files changed

+1865
-3182
lines changed

Some content is hidden

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

572 files changed

+1865
-3182
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ packages/*
4141
paket.exe
4242
paket-files/*.cached
4343

44-
4544
build/*
4645
!build/tools
4746
!build/keys

.paket/Paket.Restore.targets

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@
6060
<Output TaskParameter="ConsoleOutput" PropertyName="PaketRestoreLockFileHash" />
6161
</Exec>
6262

63+
<!-- Debug whats going on -->
64+
<Message Importance="low" Text="calling paket restore with targetframework=$(TargetFramework) targetframeworks=$(TargetFrameworks)" />
65+
6366
<PropertyGroup Condition="Exists('$(PaketRestoreCacheFile)') ">
6467
<!-- if no hash has been done yet fall back to just reading in the files and comparing them -->
6568
<PaketRestoreCachedHash Condition=" '$(PaketRestoreCachedHash)' == '' ">$([System.IO.File]::ReadAllText('$(PaketRestoreCacheFile)'))</PaketRestoreCachedHash>
@@ -76,6 +79,13 @@
7679
<Exec Command='$(PaketCommand) restore --target-framework "$(TargetFramework)"' Condition=" '$(PaketRestoreRequired)' == 'true' AND '$(TargetFramework)' != '' " ContinueOnError="false" />
7780

7881
<!-- Step 2 Detect project specific changes -->
82+
<ItemGroup>
83+
<MyTargetFrameworks Condition="'$(TargetFramework)' != '' " Include="$(TargetFramework)"></MyTargetFrameworks>
84+
<!-- Don't include all frameworks when msbuild explicitly asks for a single one -->
85+
<MyTargetFrameworks Condition="'$(TargetFrameworks)' != '' AND '$(TargetFramework)' == '' " Include="$(TargetFrameworks)"></MyTargetFrameworks>
86+
<PaketResolvedFilePaths Include="@(MyTargetFrameworks -> '$(MSBuildProjectDirectory)\obj\$(MSBuildProjectFile).%(Identity).paket.resolved')"></PaketResolvedFilePaths>
87+
</ItemGroup>
88+
<Message Importance="low" Text="MyTargetFrameworks=@(MyTargetFrameworks) PaketResolvedFilePaths=@(PaketResolvedFilePaths)" />
7989
<PropertyGroup>
8090
<PaketReferencesCachedFilePath>$(MSBuildProjectDirectory)\obj\$(MSBuildProjectFile).paket.references.cached</PaketReferencesCachedFilePath>
8191
<!-- MyProject.fsproj.paket.references has the highest precedence -->
@@ -84,7 +94,9 @@
8494
<PaketOriginalReferencesFilePath Condition=" !Exists('$(PaketOriginalReferencesFilePath)')">$(MSBuildProjectDirectory)\$(MSBuildProjectName).paket.references</PaketOriginalReferencesFilePath>
8595
<!-- paket.references -->
8696
<PaketOriginalReferencesFilePath Condition=" !Exists('$(PaketOriginalReferencesFilePath)')">$(MSBuildProjectDirectory)\paket.references</PaketOriginalReferencesFilePath>
87-
<PaketResolvedFilePath>$(MSBuildProjectDirectory)\obj\$(MSBuildProjectFile).$(TargetFramework).paket.resolved</PaketResolvedFilePath>
97+
98+
<DoAllResolvedFilesExist>false</DoAllResolvedFilesExist>
99+
<DoAllResolvedFilesExist Condition="Exists(%(PaketResolvedFilePaths.Identity))">true</DoAllResolvedFilesExist>
88100
<PaketRestoreRequired>true</PaketRestoreRequired>
89101
<PaketRestoreRequiredReason>references-file-or-cache-not-found</PaketRestoreRequiredReason>
90102
</PropertyGroup>
@@ -103,33 +115,39 @@
103115
</PropertyGroup>
104116

105117
<!-- Step 2 b detect relevant changes in project file (new targetframework) -->
106-
<PropertyGroup Condition=" !Exists('$(PaketResolvedFilePath)') AND '$(TargetFramework)' != '' ">
118+
<PropertyGroup Condition=" '$(DoAllResolvedFilesExist)' != 'true' ">
107119
<PaketRestoreRequired>true</PaketRestoreRequired>
108-
<PaketRestoreRequiredReason>target-framework '$(TargetFramework)'</PaketRestoreRequiredReason>
120+
<PaketRestoreRequiredReason>target-framework '$(TargetFramework)' or '$(TargetFrameworks)' files @(PaketResolvedFilePaths)</PaketRestoreRequiredReason>
109121
</PropertyGroup>
110122

111123
<!-- Step 3 Restore project specific stuff if required -->
112124
<Message Condition=" '$(PaketRestoreRequired)' == 'true' " Importance="low" Text="Detected a change ('$(PaketRestoreRequiredReason)') in the project file '$(MSBuildProjectFullPath)', calling paket restore" />
113-
<Exec Command='$(PaketCommand) restore --project "$(MSBuildProjectFullPath)"' Condition=" '$(PaketRestoreRequired)' == 'true' " ContinueOnError="false" />
125+
<Exec Command='$(PaketCommand) restore --project "$(MSBuildProjectFullPath)" --target-framework "$(TargetFrameworks)"' Condition=" '$(PaketRestoreRequired)' == 'true' AND '$(TargetFramework)' == '' " ContinueOnError="false" />
126+
<Exec Command='$(PaketCommand) restore --project "$(MSBuildProjectFullPath)" --target-framework "$(TargetFramework)"' Condition=" '$(PaketRestoreRequired)' == 'true' AND '$(TargetFramework)' != '' " ContinueOnError="false" />
114127

115128
<!-- This shouldn't actually happen, but just to be sure. -->
116-
<Error Condition=" !Exists('$(PaketResolvedFilePath)') AND '$(TargetFramework)' != '' AND '$(ResolveNuGetPackages)' != 'False' " Text="Paket file '$(PaketResolvedFilePath)' is missing while restoring $(MSBuildProjectFile). Please delete 'paket-files/paket.restore.cached' and call 'paket restore'." />
129+
<PropertyGroup>
130+
<DoAllResolvedFilesExist>false</DoAllResolvedFilesExist>
131+
<DoAllResolvedFilesExist Condition="Exists(%(PaketResolvedFilePaths.Identity))">true</DoAllResolvedFilesExist>
132+
</PropertyGroup>
133+
<Error Condition=" '$(DoAllResolvedFilesExist)' != 'true' AND '$(ResolveNuGetPackages)' != 'False' " Text="One Paket file '@(PaketResolvedFilePaths)' is missing while restoring $(MSBuildProjectFile). Please delete 'paket-files/paket.restore.cached' and call 'paket restore'." />
117134

118135
<!-- Step 4 forward all msbuild properties (PackageReference, DotNetCliToolReference) to msbuild -->
119-
<ReadLinesFromFile Condition="Exists('$(PaketResolvedFilePath)')" File="$(PaketResolvedFilePath)" >
136+
<ReadLinesFromFile Condition="'@(PaketResolvedFilePaths)' != ''" File="%(PaketResolvedFilePaths.Identity)" ><!--Condition="Exists('%(PaketResolvedFilePaths.Identity)')"-->
120137
<Output TaskParameter="Lines" ItemName="PaketReferencesFileLines"/>
121138
</ReadLinesFromFile>
122139

123-
<ItemGroup Condition=" Exists('$(PaketResolvedFilePath)') AND '@(PaketReferencesFileLines)' != '' " >
140+
<ItemGroup Condition=" '@(PaketReferencesFileLines)' != '' " >
124141
<PaketReferencesFileLinesInfo Include="@(PaketReferencesFileLines)" >
125142
<PackageName>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[0])</PackageName>
126143
<PackageVersion>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[1])</PackageVersion>
127144
<AllPrivateAssets>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[4])</AllPrivateAssets>
128145
</PaketReferencesFileLinesInfo>
129146
<PackageReference Include="%(PaketReferencesFileLinesInfo.PackageName)">
130147
<Version>%(PaketReferencesFileLinesInfo.PackageVersion)</Version>
131-
<PrivateAssets Condition="%(PaketReferencesFileLinesInfo.AllPrivateAssets) == 'true'">All</PrivateAssets>
148+
<PrivateAssets Condition=" ('%(PaketReferencesFileLinesInfo.AllPrivateAssets)' == 'true') Or ('$(PackAsTool)' == 'true') ">All</PrivateAssets>
132149
<ExcludeAssets Condition="%(PaketReferencesFileLinesInfo.AllPrivateAssets) == 'exclude'">runtime</ExcludeAssets>
150+
<Publish Condition=" '$(PackAsTool)' == 'true' ">true</Publish>
133151
</PackageReference>
134152
</ItemGroup>
135153

NuGet.config

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<configuration>
3-
<packageSources>
4-
<add key="Temp DiffPlex Feed" value="https://www.myget.org/F/diffplex-temp/api/v3/index.json" />
5-
<add key="Xunit myget" value="https://www.myget.org/F/xunit/api/v3/index.json" />
6-
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
7-
</packageSources>
3+
<packageSources>
4+
<add key="Temp DiffPlex Feed" value="https://www.myget.org/F/diffplex-temp/api/v3/index.json" />
5+
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
6+
<add key="Elastic abstractions" value="https://www.myget.org/F/elasticsearch-net-abstractions-temp/api/v3/index.json" />
7+
</packageSources>
88
</configuration>

appveyor.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
version: 1.0.{build}
22
image: Visual Studio 2017
33
build_script:
4-
- cmd: build.bat
4+
- cmd: build.bat canary
55
test: off
66
environment:
77
DOTNET_CLI_TELEMETRY_OPTOUT: true

build.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@ FAKE="packages/build/FAKE/tools/FAKE.exe"
33
BUILDSCRIPT="build/scripts/Targets.fsx"
44

55
mono .paket/paket.bootstrapper.exe
6-
if [[ -f .paket.lock ]]; then mono .paket/paket.exe restore; fi
7-
if [[ ! -f .paket.lock ]]; then mono .paket/paket.exe install; fi
6+
if [[ -f paket.lock ]]; then mono .paket/paket.exe restore; fi
7+
if [[ ! -f paket.lock ]]; then mono .paket/paket.exe install; fi
88
mono $FAKE $BUILDSCRIPT "cmdline=$*" --fsiargs -d:MONO

build/Clients.Common.targets

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,10 @@
22
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<PropertyGroup>
44
<!-- Default Version numbers -->
5-
<CurrentVersion>0.0.0-bad</CurrentVersion>
6-
<CurrentAssemblyVersion>0.0.0</CurrentAssemblyVersion>
7-
<CurrentAssemblyFileVersion>0.0.0.0</CurrentAssemblyFileVersion>
8-
<!-- 'dotnet xunit' does a build but has no way to pass properties or prevent build so we snoop for TRAVIS here
9-
Ideally we handle this in the FAKE script (which we do for 'dotnet build')
10-
TODO too lazy to write and test a <CHOOSE>
11-
-->
12-
<DotNetCoreOnly Condition="'$(TRAVIS)'=='true'">1</DotNetCoreOnly>
13-
<DotNetCoreOnly Condition="'$(TRAVIS)'==''"></DotNetCoreOnly>
14-
<DoSourceLink></DoSourceLink>
15-
5+
<CurrentVersion>5.0.0</CurrentVersion>
6+
<CurrentAssemblyVersion>5.0.0</CurrentAssemblyVersion>
7+
<CurrentAssemblyFileVersion>5.0.0</CurrentAssemblyFileVersion>
8+
169
<!-- Version and Informational reflect actual version -->
1710
<Version>$(CurrentVersion)</Version>
1811
<InformationalVersion>$(CurrentVersion)</InformationalVersion>
@@ -21,15 +14,19 @@
2114
<!-- File version reflects actual version number without prelease since that not allowed in its struct -->
2215
<FileVersion>$(CurrentAssemblyFileVersion)</FileVersion>
2316

24-
<SignAssembly Condition="'$(DotNetCoreOnly)'==''">true</SignAssembly>
25-
<AssemblyOriginatorKeyFile Condition="'$(DotNetCoreOnly)'==''">..\..\build\keys\keypair.snk</AssemblyOriginatorKeyFile>
26-
<GenerateDocumentationFile Condition="'$(DotNetCoreOnly)'==''">true</GenerateDocumentationFile>
17+
<DefineConstants Condition="'$(TargetFramework)'=='netstandard1.3'">$(DefineConstants);DOTNETCORE</DefineConstants>
18+
19+
<SignAssembly Condition="'$(OS)' == 'Windows_NT'">true</SignAssembly>
20+
<AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)\keys\keypair.snk</AssemblyOriginatorKeyFile>
21+
<GenerateDocumentationFile>true</GenerateDocumentationFile>
2722
<NoWarn>1591,1572,1571,1573,1587,1570</NoWarn>
2823
<Prefer32Bit>false</Prefer32Bit>
29-
<DefineConstants Condition="'$(TargetFramework)'=='netstandard1.3' OR '$(DotNetCoreOnly)'=='1'">$(DefineConstants);DOTNETCORE</DefineConstants>
30-
<DebugType Condition="'$(DotNetCoreOnly)'==''">embedded</DebugType>
31-
<DebugType Condition="'$(Configuration)'=='Debug'">full</DebugType>
24+
<DebugSymbols>true</DebugSymbols>
25+
<DebugType>portable</DebugType>
26+
27+
<DoSourceLink></DoSourceLink>
3228
<SourceLink Condition="'$(DoSourceLink)'!=''">$(BaseIntermediateOutputPath)\sl-$(MsBuildProjectName)-$(TargetFramework).json</SourceLink>
29+
3330
<RepoUri>https://raw.githubusercontent.com/elastic/elasticsearch-net</RepoUri>
3431
</PropertyGroup>
3532

build/Elasticsearch.Net.nuspec

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,6 @@
3030
</dependencies>
3131
</metadata>
3232
<files>
33-
<file src="output\Elasticsearch.Net\net45\Elasticsearch.Net.dll" target="lib\net45"/>
34-
<file src="output\Elasticsearch.Net\net45\Elasticsearch.Net.XML" target="lib\net45"/>
35-
3633
<file src="output\Elasticsearch.Net\net46\Elasticsearch.Net.dll" target="lib\net46"/>
3734
<file src="output\Elasticsearch.Net\net46\Elasticsearch.Net.XML" target="lib\net46"/>
3835

build/NEST.nuspec

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,6 @@
3535
</dependencies>
3636
</metadata>
3737
<files>
38-
<file src="output\Nest\net45\Nest.dll" target="lib\net45"/>
39-
<file src="output\Nest\net45\Nest.XML" target="lib\net45"/>
40-
4138
<file src="output\Nest\net46\Nest.dll" target="lib\net46"/>
4239
<file src="output\Nest\net46\Nest.XML" target="lib\net46"/>
4340

build/scripts/Benchmarking.fsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
#r "../../packages/build/NEST/lib/net45/Nest.dll"
2-
#r "../../packages/build/Elasticsearch.Net/lib/net45/Elasticsearch.Net.dll"
1+
#r "../../packages/build/NEST/lib/net46/Nest.dll"
2+
#r "../../packages/build/Elasticsearch.Net/lib/net46/Elasticsearch.Net.dll"
33
#r "../../packages/build/Newtonsoft.Json/lib/net45/Newtonsoft.Json.dll"
4-
#r "../../packages/build/FSharp.Data/lib/net40/FSharp.Data.dll"
4+
#r "../../packages/build/FSharp.Data/lib/net45/FSharp.Data.dll"
55
#I @"../../packages/build/FAKE/tools"
66
#r @"FakeLib.dll"
77
#nowarn "0044" //TODO sort out FAKE 5

build/scripts/Building.fsx

Lines changed: 108 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
11
#I @"../../packages/build/FAKE/tools"
2-
#I @"../../packages/build/FSharp.Data/lib/net40"
2+
#I @"../../packages/build/FSharp.Data/lib/net45"
3+
#I @"../../packages/build/Mono.Cecil/lib/net40"
34
#r @"FakeLib.dll"
5+
#r @"Mono.Cecil.dll"
46
#r @"FSharp.Data.dll"
7+
#nowarn "0044" //TODO sort out FAKE 5
58

69
#load @"Paths.fsx"
710
#load @"Tooling.fsx"
811
#load @"Versioning.fsx"
912

1013
open System
1114
open System.IO
15+
open System.Reflection
1216
open Fake
1317
open FSharp.Data
18+
open Mono.Cecil
1419

1520
open Paths
1621
open Projects
@@ -20,20 +25,20 @@ open Versioning
2025
module Build =
2126

2227
let private runningRelease = hasBuildParam "version" || hasBuildParam "apikey" || getBuildParam "target" = "canary" || getBuildParam "target" = "release"
23-
let private quickBuild = not (getBuildParam "target" = "release" || getBuildParam "target" = "canary")
2428

2529
type private GlobalJson = JsonProvider<"../../global.json">
2630
let private pinnedSdkVersion = GlobalJson.GetSample().Sdk.Version
2731
if isMono then setProcessEnvironVar "TRAVIS" "true"
32+
2833
let private buildingOnTravis = getEnvironmentVarAsBool "TRAVIS"
2934

3035
let private sln = sprintf "src/Elasticsearch%s.sln" (if buildingOnTravis then ".DotNetCoreOnly" else "")
31-
36+
3237
let private compileCore incremental =
3338
if not (DotNetCli.isInstalled()) then failwith "You need to install the dotnet command line SDK to build for .NET Core"
3439
let runningSdkVersion = DotNetCli.getVersion()
3540
if (runningSdkVersion <> pinnedSdkVersion) then failwithf "Attempting to run with dotnet.exe with %s but global.json mandates %s" runningSdkVersion pinnedSdkVersion
36-
let incrementalFramework = DotNetFramework.Net45
41+
let incrementalFramework = DotNetFramework.Net46
3742
let sourceLink = if not incremental && not isMono && runningRelease then "1" else ""
3843
let props =
3944
[
@@ -75,4 +80,102 @@ module Build =
7580
CleanDir Paths.BuildOutput
7681
DotNetCli.RunCommand (fun p -> { p with TimeOut = TimeSpan.FromMinutes(3.) }) "clean src/Elasticsearch.sln -c Release" |> ignore
7782
DotNetProject.All |> Seq.iter(fun p -> CleanDir(Paths.BinFolder p.Name))
78-
83+
84+
type CustomResolver(folder) =
85+
inherit DefaultAssemblyResolver()
86+
member this.Folder = folder;
87+
88+
override this.Resolve name =
89+
try
90+
base.Resolve name
91+
with
92+
| ex ->
93+
AssemblyDefinition.ReadAssembly(Path.Combine(folder, "Elasticsearch.Net.dll"));
94+
95+
let private rewriteNamespace nest f =
96+
trace "Rewriting namespaces"
97+
let folder = Paths.ProjectOutputFolder nest f
98+
let nestDll = sprintf "%s/%s.dll" folder nest.Name
99+
let nestRewrittenDll = sprintf "%s/%s-rewriten.dll" folder nest.Name
100+
use resolver = new CustomResolver(folder)
101+
let readerParams = ReaderParameters( AssemblyResolver = resolver, ReadWrite = true );
102+
use nestAssembly = AssemblyDefinition.ReadAssembly(nestDll, readerParams);
103+
104+
for item in nestAssembly.MainModule.Types do
105+
if item.Namespace.StartsWith("Newtonsoft.Json") then
106+
item.Namespace <- item.Namespace.Replace("Newtonsoft.Json", "Nest.Json")
107+
108+
// Touch custom attribute arguments
109+
// Cecil does not update the types referenced within these attributes automatically,
110+
// so enumerate them to ensure namespace renaming is reflected in these references.
111+
let touchAttributes (attributes:Mono.Collections.Generic.Collection<CustomAttribute>) =
112+
for attr in attributes do
113+
if attr.HasConstructorArguments then
114+
for constArg in attr.ConstructorArguments do
115+
if constArg.Type.Name = "Type" then ignore()
116+
117+
// rewrite explicitly implemented interface definitions defined
118+
// in Newtonsoft.Json
119+
let rewriteName (method:IMemberDefinition) =
120+
if method.Name.Contains("Newtonsoft.Json") then
121+
method.Name <- method.Name.Replace("Newtonsoft.Json", "Nest.Json")
122+
123+
// recurse through all types and nested types
124+
let rec rewriteTypes (types:Mono.Collections.Generic.Collection<TypeDefinition>) =
125+
for t in types do
126+
touchAttributes t.CustomAttributes
127+
for prop in t.Properties do
128+
touchAttributes prop.CustomAttributes
129+
rewriteName prop
130+
if prop.GetMethod <> null then rewriteName prop.GetMethod
131+
if prop.SetMethod <> null then rewriteName prop.SetMethod
132+
for method in t.Methods do
133+
touchAttributes method.CustomAttributes
134+
rewriteName method
135+
for over in method.Overrides do rewriteName method
136+
for field in t.Fields do touchAttributes field.CustomAttributes
137+
for interf in t.Interfaces do touchAttributes interf.CustomAttributes
138+
for event in t.Events do touchAttributes event.CustomAttributes
139+
if t.HasNestedTypes then rewriteTypes t.NestedTypes
140+
141+
nestAssembly.MainModule.Types |> rewriteTypes
142+
143+
let resources = nestAssembly.MainModule.Resources
144+
for i = resources.Count-1 downto 0 do
145+
let resource = resources.[i]
146+
// remove the Newtonsoft signing key
147+
if resource.Name = "Newtonsoft.Json.Dynamic.snk" then resources.Remove(resource) |> ignore
148+
149+
let key = File.ReadAllBytes(Paths.Keys("keypair.snk"))
150+
let kp = StrongNameKeyPair(key)
151+
let wp = WriterParameters ( StrongNameKeyPair = kp);
152+
nestAssembly.Write(wp) |> ignore;
153+
trace "Finished rewriting namespaces"
154+
155+
let private ilRepackInternal() =
156+
let fw = if isMono then [DotNetFramework.NetStandard1_3] else DotNetFramework.All
157+
for f in fw do
158+
let nest = Project Project.Nest
159+
let folder = Paths.ProjectOutputFolder nest f
160+
let nestDll = sprintf "%s/%s.dll" folder nest.Name
161+
let nestMergedDll = sprintf "%s/%s-merged.dll" folder nest.Name
162+
let jsonDll = sprintf "%s/Newtonsoft.Json.dll" folder
163+
let keyFile = Paths.Keys("keypair.snk");
164+
let options =
165+
[
166+
"/keyfile:", keyFile;
167+
"/internalize", "";
168+
"/lib:", folder;
169+
"/out:", nestDll;
170+
]
171+
|> List.map (fun (p,v) -> sprintf "%s%s" p v)
172+
173+
let args = [nestDll; jsonDll;] |> List.append options;
174+
175+
Tooling.ILRepack.Exec args |> ignore
176+
rewriteNamespace nest f |> ignore
177+
178+
let ILRepack() =
179+
//nothing to IL merge in the 5.x branch
180+
ignore()
181+

0 commit comments

Comments
 (0)