dependabot-nuget 0.244.0 → 0.246.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/PackagesConfigUpdater.cs +42 -7
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/SdkPackageUpdater.cs +164 -90
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/UpdaterWorker.cs +38 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/MSBuildHelper.cs +68 -18
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/NuGetHelper.cs +1 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTestBase.cs +115 -14
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/{UpdateWorker.DirsProj.cs → UpdateWorkerTests.DirsProj.cs} +22 -24
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.PackagesConfig.cs +66 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.Sdk.cs +385 -81
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/MSBuildHelperTests.cs +7 -4
- data/lib/dependabot/nuget/file_parser/project_file_parser.rb +0 -4
- data/lib/dependabot/nuget/file_parser.rb +15 -1
- data/lib/dependabot/nuget/http_response_helpers.rb +14 -0
- data/lib/dependabot/nuget/metadata_finder.rb +6 -2
- data/lib/dependabot/nuget/native_helpers.rb +21 -12
- data/lib/dependabot/nuget/nuget_client.rb +8 -13
- data/lib/dependabot/nuget/update_checker/dependency_finder.rb +23 -13
- data/lib/dependabot/nuget/update_checker/nupkg_fetcher.rb +75 -11
- data/lib/dependabot/nuget/update_checker/repository_finder.rb +4 -10
- data/lib/dependabot/nuget/update_checker.rb +2 -3
- metadata +7 -7
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/SdkPackageUpdaterTests.cs +0 -317
@@ -6,10 +6,61 @@ using System.Threading.Tasks;
|
|
6
6
|
|
7
7
|
using Xunit;
|
8
8
|
|
9
|
+
using TestFile = (string Path, string Content);
|
10
|
+
using TestProject = (string Path, string Content, System.Guid ProjectId);
|
11
|
+
|
9
12
|
namespace NuGetUpdater.Core.Test.Update;
|
10
13
|
|
11
14
|
public abstract class UpdateWorkerTestBase
|
12
15
|
{
|
16
|
+
protected static Task TestNoChange(
|
17
|
+
string dependencyName,
|
18
|
+
string oldVersion,
|
19
|
+
string newVersion,
|
20
|
+
bool useSolution,
|
21
|
+
string projectContents,
|
22
|
+
bool isTransitive = false,
|
23
|
+
(string Path, string Content)[]? additionalFiles = null,
|
24
|
+
string projectFilePath = "test-project.csproj")
|
25
|
+
{
|
26
|
+
return useSolution
|
27
|
+
? TestNoChangeforSolution(dependencyName, oldVersion, newVersion, projectFiles: [(projectFilePath, projectContents)], isTransitive, additionalFiles)
|
28
|
+
: TestNoChangeforProject(dependencyName, oldVersion, newVersion, projectContents, isTransitive, additionalFiles, projectFilePath);
|
29
|
+
}
|
30
|
+
|
31
|
+
protected static Task TestUpdate(
|
32
|
+
string dependencyName,
|
33
|
+
string oldVersion,
|
34
|
+
string newVersion,
|
35
|
+
bool useSolution,
|
36
|
+
string projectContents,
|
37
|
+
string expectedProjectContents,
|
38
|
+
bool isTransitive = false,
|
39
|
+
TestFile[]? additionalFiles = null,
|
40
|
+
TestFile[]? additionalFilesExpected = null,
|
41
|
+
string projectFilePath = "test-project.csproj")
|
42
|
+
{
|
43
|
+
return useSolution
|
44
|
+
? TestUpdateForSolution(dependencyName, oldVersion, newVersion, projectFiles: [(projectFilePath, projectContents)], projectFilesExpected: [(projectFilePath, expectedProjectContents)], isTransitive, additionalFiles, additionalFilesExpected)
|
45
|
+
: TestUpdateForProject(dependencyName, oldVersion, newVersion, projectFile: (projectFilePath, projectContents), expectedProjectContents, isTransitive, additionalFiles, additionalFilesExpected);
|
46
|
+
}
|
47
|
+
|
48
|
+
protected static Task TestUpdate(
|
49
|
+
string dependencyName,
|
50
|
+
string oldVersion,
|
51
|
+
string newVersion,
|
52
|
+
bool useSolution,
|
53
|
+
TestFile projectFile,
|
54
|
+
string expectedProjectContents,
|
55
|
+
bool isTransitive = false,
|
56
|
+
TestFile[]? additionalFiles = null,
|
57
|
+
TestFile[]? additionalFilesExpected = null)
|
58
|
+
{
|
59
|
+
return useSolution
|
60
|
+
? TestUpdateForSolution(dependencyName, oldVersion, newVersion, projectFiles: [projectFile], projectFilesExpected: [(projectFile.Path, expectedProjectContents)], isTransitive, additionalFiles, additionalFilesExpected)
|
61
|
+
: TestUpdateForProject(dependencyName, oldVersion, newVersion, projectFile, expectedProjectContents, isTransitive, additionalFiles, additionalFilesExpected);
|
62
|
+
}
|
63
|
+
|
13
64
|
protected static Task TestNoChangeforProject(
|
14
65
|
string dependencyName,
|
15
66
|
string oldVersion,
|
@@ -35,8 +86,8 @@ public abstract class UpdateWorkerTestBase
|
|
35
86
|
string projectContents,
|
36
87
|
string expectedProjectContents,
|
37
88
|
bool isTransitive = false,
|
38
|
-
|
39
|
-
|
89
|
+
TestFile[]? additionalFiles = null,
|
90
|
+
TestFile[]? additionalFilesExpected = null,
|
40
91
|
string projectFilePath = "test-project.csproj")
|
41
92
|
=> TestUpdateForProject(
|
42
93
|
dependencyName,
|
@@ -52,42 +103,92 @@ public abstract class UpdateWorkerTestBase
|
|
52
103
|
string dependencyName,
|
53
104
|
string oldVersion,
|
54
105
|
string newVersion,
|
55
|
-
|
106
|
+
TestFile projectFile,
|
56
107
|
string expectedProjectContents,
|
57
108
|
bool isTransitive = false,
|
58
|
-
|
59
|
-
|
109
|
+
TestFile[]? additionalFiles = null,
|
110
|
+
TestFile[]? additionalFilesExpected = null)
|
60
111
|
{
|
61
112
|
additionalFiles ??= [];
|
62
113
|
additionalFilesExpected ??= [];
|
63
114
|
|
64
115
|
var projectFilePath = projectFile.Path;
|
65
|
-
var
|
116
|
+
var testFiles = new[] { projectFile }.Concat(additionalFiles).ToArray();
|
117
|
+
|
118
|
+
var actualResult = await RunUpdate(testFiles, async temporaryDirectory =>
|
119
|
+
{
|
120
|
+
var worker = new UpdaterWorker(new Logger(verbose: true));
|
121
|
+
await worker.RunAsync(temporaryDirectory, projectFilePath, dependencyName, oldVersion, newVersion, isTransitive);
|
122
|
+
});
|
123
|
+
|
124
|
+
var expectedResult = additionalFilesExpected.Prepend((projectFilePath, expectedProjectContents)).ToArray();
|
125
|
+
|
126
|
+
AssertContainsFiles(expectedResult, actualResult);
|
127
|
+
}
|
128
|
+
|
129
|
+
protected static Task TestNoChangeforSolution(
|
130
|
+
string dependencyName,
|
131
|
+
string oldVersion,
|
132
|
+
string newVersion,
|
133
|
+
TestFile[] projectFiles,
|
134
|
+
bool isTransitive = false,
|
135
|
+
TestFile[]? additionalFiles = null)
|
136
|
+
=> TestUpdateForSolution(
|
137
|
+
dependencyName,
|
138
|
+
oldVersion,
|
139
|
+
newVersion,
|
140
|
+
projectFiles,
|
141
|
+
projectFilesExpected: projectFiles,
|
142
|
+
isTransitive,
|
143
|
+
additionalFiles,
|
144
|
+
additionalFilesExpected: additionalFiles);
|
145
|
+
|
146
|
+
protected static async Task TestUpdateForSolution(
|
147
|
+
string dependencyName,
|
148
|
+
string oldVersion,
|
149
|
+
string newVersion,
|
150
|
+
TestFile[] projectFiles,
|
151
|
+
TestFile[] projectFilesExpected,
|
152
|
+
bool isTransitive = false,
|
153
|
+
TestFile[]? additionalFiles = null,
|
154
|
+
TestFile[]? additionalFilesExpected = null)
|
155
|
+
{
|
156
|
+
additionalFiles ??= [];
|
157
|
+
additionalFilesExpected ??= [];
|
158
|
+
|
159
|
+
var testProjects = projectFiles.Select(file => new TestProject(file.Path, file.Content, Guid.NewGuid())).ToArray();
|
160
|
+
var projectDeclarations = testProjects.Select(project => $$"""
|
161
|
+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "{{Path.GetFileNameWithoutExtension(project.Path)}}", "{{project.Path}}", "{{project.ProjectId}}"
|
162
|
+
EndProject
|
163
|
+
""");
|
164
|
+
var debugConfiguration = testProjects.Select(project => $$"""
|
165
|
+
{{project.ProjectId}}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
166
|
+
{{project.ProjectId}}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
167
|
+
{{project.ProjectId}}..Release|Any CPU.ActiveCfg = Release|Any CPU
|
168
|
+
{{project.ProjectId}}..Release|Any CPU.Build.0 = Release|Any CPU
|
169
|
+
""");
|
170
|
+
|
66
171
|
var slnName = "test-solution.sln";
|
67
172
|
var slnContent = $$"""
|
68
173
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
69
174
|
# Visual Studio 14
|
70
175
|
VisualStudioVersion = 14.0.22705.0
|
71
176
|
MinimumVisualStudioVersion = 10.0.40219.1
|
72
|
-
|
73
|
-
EndProject
|
177
|
+
{{string.Join(Environment.NewLine, projectDeclarations)}}
|
74
178
|
Global
|
75
179
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
76
180
|
Debug|Any CPU = Debug|Any CPU
|
77
181
|
Release|Any CPU = Release|Any CPU
|
78
182
|
EndGlobalSection
|
79
183
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
80
|
-
|
81
|
-
{782E0C0A-10D3-444D-9640-263D03D2B20C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
82
|
-
{782E0C0A-10D3-444D-9640-263D03D2B20C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
83
|
-
{782E0C0A-10D3-444D-9640-263D03D2B20C}.Release|Any CPU.Build.0 = Release|Any CPU
|
184
|
+
{{string.Join(Environment.NewLine, debugConfiguration)}}
|
84
185
|
EndGlobalSection
|
85
186
|
GlobalSection(SolutionProperties) = preSolution
|
86
187
|
HideSolutionNode = FALSE
|
87
188
|
EndGlobalSection
|
88
189
|
EndGlobal
|
89
190
|
""";
|
90
|
-
var testFiles = new[] { (slnName, slnContent)
|
191
|
+
var testFiles = new[] { (slnName, slnContent) }.Concat(projectFiles).Concat(additionalFiles).ToArray();
|
91
192
|
|
92
193
|
var actualResult = await RunUpdate(testFiles, async temporaryDirectory =>
|
93
194
|
{
|
@@ -96,7 +197,7 @@ public abstract class UpdateWorkerTestBase
|
|
96
197
|
await worker.RunAsync(temporaryDirectory, slnPath, dependencyName, oldVersion, newVersion, isTransitive);
|
97
198
|
});
|
98
199
|
|
99
|
-
var expectedResult =
|
200
|
+
var expectedResult = projectFilesExpected.Concat(additionalFilesExpected).ToArray();
|
100
201
|
|
101
202
|
AssertContainsFiles(expectedResult, actualResult);
|
102
203
|
}
|
@@ -1,5 +1,3 @@
|
|
1
|
-
using System;
|
2
|
-
using System.Collections.Generic;
|
3
1
|
using System.IO;
|
4
2
|
using System.Linq;
|
5
3
|
using System.Threading.Tasks;
|
@@ -24,7 +22,7 @@ public partial class UpdateWorkerTests
|
|
24
22
|
// initial
|
25
23
|
projectContents: """
|
26
24
|
<Project Sdk="Microsoft.Build.NoTargets">
|
27
|
-
|
25
|
+
|
28
26
|
<ItemGroup>
|
29
27
|
<ProjectReference Include="src/test-project.csproj" />
|
30
28
|
</ItemGroup>
|
@@ -39,7 +37,7 @@ public partial class UpdateWorkerTests
|
|
39
37
|
<PropertyGroup>
|
40
38
|
<TargetFramework>netstandard2.0</TargetFramework>
|
41
39
|
</PropertyGroup>
|
42
|
-
|
40
|
+
|
43
41
|
<ItemGroup>
|
44
42
|
<PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
|
45
43
|
</ItemGroup>
|
@@ -49,7 +47,7 @@ public partial class UpdateWorkerTests
|
|
49
47
|
// expected
|
50
48
|
expectedProjectContents: """
|
51
49
|
<Project Sdk="Microsoft.Build.NoTargets">
|
52
|
-
|
50
|
+
|
53
51
|
<ItemGroup>
|
54
52
|
<ProjectReference Include="src/test-project.csproj" />
|
55
53
|
</ItemGroup>
|
@@ -64,7 +62,7 @@ public partial class UpdateWorkerTests
|
|
64
62
|
<PropertyGroup>
|
65
63
|
<TargetFramework>netstandard2.0</TargetFramework>
|
66
64
|
</PropertyGroup>
|
67
|
-
|
65
|
+
|
68
66
|
<ItemGroup>
|
69
67
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
70
68
|
</ItemGroup>
|
@@ -101,7 +99,7 @@ public partial class UpdateWorkerTests
|
|
101
99
|
// initial
|
102
100
|
projectContents: """
|
103
101
|
<Project Sdk="Microsoft.Build.NoTargets">
|
104
|
-
|
102
|
+
|
105
103
|
<ItemGroup>
|
106
104
|
<ProjectReference Include="src/dirs.proj" />
|
107
105
|
</ItemGroup>
|
@@ -113,7 +111,7 @@ public partial class UpdateWorkerTests
|
|
113
111
|
("src/dirs.proj",
|
114
112
|
"""
|
115
113
|
<Project Sdk="Microsoft.Build.NoTargets">
|
116
|
-
|
114
|
+
|
117
115
|
<ItemGroup>
|
118
116
|
<ProjectReference Include="test-project/test-project.csproj" />
|
119
117
|
</ItemGroup>
|
@@ -126,7 +124,7 @@ public partial class UpdateWorkerTests
|
|
126
124
|
<PropertyGroup>
|
127
125
|
<TargetFramework>netstandard2.0</TargetFramework>
|
128
126
|
</PropertyGroup>
|
129
|
-
|
127
|
+
|
130
128
|
<ItemGroup>
|
131
129
|
<PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
|
132
130
|
</ItemGroup>
|
@@ -136,7 +134,7 @@ public partial class UpdateWorkerTests
|
|
136
134
|
// expected
|
137
135
|
expectedProjectContents: """
|
138
136
|
<Project Sdk="Microsoft.Build.NoTargets">
|
139
|
-
|
137
|
+
|
140
138
|
<ItemGroup>
|
141
139
|
<ProjectReference Include="src/dirs.proj" />
|
142
140
|
</ItemGroup>
|
@@ -148,7 +146,7 @@ public partial class UpdateWorkerTests
|
|
148
146
|
("src/dirs.proj",
|
149
147
|
"""
|
150
148
|
<Project Sdk="Microsoft.Build.NoTargets">
|
151
|
-
|
149
|
+
|
152
150
|
<ItemGroup>
|
153
151
|
<ProjectReference Include="test-project/test-project.csproj" />
|
154
152
|
</ItemGroup>
|
@@ -161,7 +159,7 @@ public partial class UpdateWorkerTests
|
|
161
159
|
<PropertyGroup>
|
162
160
|
<TargetFramework>netstandard2.0</TargetFramework>
|
163
161
|
</PropertyGroup>
|
164
|
-
|
162
|
+
|
165
163
|
<ItemGroup>
|
166
164
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
167
165
|
</ItemGroup>
|
@@ -177,7 +175,7 @@ public partial class UpdateWorkerTests
|
|
177
175
|
// initial
|
178
176
|
projectContents: """
|
179
177
|
<Project Sdk="Microsoft.Build.NoTargets">
|
180
|
-
|
178
|
+
|
181
179
|
<ItemGroup>
|
182
180
|
<ProjectReference Include="src/*.proj" />
|
183
181
|
</ItemGroup>
|
@@ -189,7 +187,7 @@ public partial class UpdateWorkerTests
|
|
189
187
|
("src/dirs.proj",
|
190
188
|
"""
|
191
189
|
<Project Sdk="Microsoft.Build.NoTargets">
|
192
|
-
|
190
|
+
|
193
191
|
<ItemGroup>
|
194
192
|
<ProjectReference Include="test-project/test-project.csproj" />
|
195
193
|
</ItemGroup>
|
@@ -202,7 +200,7 @@ public partial class UpdateWorkerTests
|
|
202
200
|
<PropertyGroup>
|
203
201
|
<TargetFramework>netstandard2.0</TargetFramework>
|
204
202
|
</PropertyGroup>
|
205
|
-
|
203
|
+
|
206
204
|
<ItemGroup>
|
207
205
|
<PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
|
208
206
|
</ItemGroup>
|
@@ -212,7 +210,7 @@ public partial class UpdateWorkerTests
|
|
212
210
|
// expected
|
213
211
|
expectedProjectContents: """
|
214
212
|
<Project Sdk="Microsoft.Build.NoTargets">
|
215
|
-
|
213
|
+
|
216
214
|
<ItemGroup>
|
217
215
|
<ProjectReference Include="src/*.proj" />
|
218
216
|
</ItemGroup>
|
@@ -224,7 +222,7 @@ public partial class UpdateWorkerTests
|
|
224
222
|
("src/dirs.proj",
|
225
223
|
"""
|
226
224
|
<Project Sdk="Microsoft.Build.NoTargets">
|
227
|
-
|
225
|
+
|
228
226
|
<ItemGroup>
|
229
227
|
<ProjectReference Include="test-project/test-project.csproj" />
|
230
228
|
</ItemGroup>
|
@@ -237,7 +235,7 @@ public partial class UpdateWorkerTests
|
|
237
235
|
<PropertyGroup>
|
238
236
|
<TargetFramework>netstandard2.0</TargetFramework>
|
239
237
|
</PropertyGroup>
|
240
|
-
|
238
|
+
|
241
239
|
<ItemGroup>
|
242
240
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
243
241
|
</ItemGroup>
|
@@ -253,7 +251,7 @@ public partial class UpdateWorkerTests
|
|
253
251
|
// initial
|
254
252
|
projectContents: """
|
255
253
|
<Project Sdk="Microsoft.Build.NoTargets">
|
256
|
-
|
254
|
+
|
257
255
|
<ItemGroup>
|
258
256
|
<ProjectReference Include="**/*.proj" />
|
259
257
|
</ItemGroup>
|
@@ -265,7 +263,7 @@ public partial class UpdateWorkerTests
|
|
265
263
|
("src/dirs.proj",
|
266
264
|
"""
|
267
265
|
<Project Sdk="Microsoft.Build.NoTargets">
|
268
|
-
|
266
|
+
|
269
267
|
<ItemGroup>
|
270
268
|
<ProjectReference Include="test-project/test-project.csproj" />
|
271
269
|
</ItemGroup>
|
@@ -278,7 +276,7 @@ public partial class UpdateWorkerTests
|
|
278
276
|
<PropertyGroup>
|
279
277
|
<TargetFramework>netstandard2.0</TargetFramework>
|
280
278
|
</PropertyGroup>
|
281
|
-
|
279
|
+
|
282
280
|
<ItemGroup>
|
283
281
|
<PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
|
284
282
|
</ItemGroup>
|
@@ -288,7 +286,7 @@ public partial class UpdateWorkerTests
|
|
288
286
|
// expected
|
289
287
|
expectedProjectContents: """
|
290
288
|
<Project Sdk="Microsoft.Build.NoTargets">
|
291
|
-
|
289
|
+
|
292
290
|
<ItemGroup>
|
293
291
|
<ProjectReference Include="**/*.proj" />
|
294
292
|
</ItemGroup>
|
@@ -300,7 +298,7 @@ public partial class UpdateWorkerTests
|
|
300
298
|
("src/dirs.proj",
|
301
299
|
"""
|
302
300
|
<Project Sdk="Microsoft.Build.NoTargets">
|
303
|
-
|
301
|
+
|
304
302
|
<ItemGroup>
|
305
303
|
<ProjectReference Include="test-project/test-project.csproj" />
|
306
304
|
</ItemGroup>
|
@@ -313,7 +311,7 @@ public partial class UpdateWorkerTests
|
|
313
311
|
<PropertyGroup>
|
314
312
|
<TargetFramework>netstandard2.0</TargetFramework>
|
315
313
|
</PropertyGroup>
|
316
|
-
|
314
|
+
|
317
315
|
<ItemGroup>
|
318
316
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
319
317
|
</ItemGroup>
|
data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.PackagesConfig.cs
CHANGED
@@ -1072,6 +1072,72 @@ public partial class UpdateWorkerTests
|
|
1072
1072
|
""");
|
1073
1073
|
}
|
1074
1074
|
|
1075
|
+
[Fact]
|
1076
|
+
public async Task PackageCanBeUpdatedWhenAnotherInstalledPackageHasBeenDelisted()
|
1077
|
+
{
|
1078
|
+
// updating one package (Newtonsoft.Json) when another installed package (FSharp.Core/5.0.3-beta.21369.4) has been delisted
|
1079
|
+
await TestUpdateForProject("Newtonsoft.Json", "7.0.1", "13.0.1",
|
1080
|
+
// existing
|
1081
|
+
projectContents: """
|
1082
|
+
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
1083
|
+
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
1084
|
+
<PropertyGroup>
|
1085
|
+
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
1086
|
+
</PropertyGroup>
|
1087
|
+
<ItemGroup>
|
1088
|
+
<None Include="packages.config" />
|
1089
|
+
</ItemGroup>
|
1090
|
+
<ItemGroup>
|
1091
|
+
<Reference Include="FSharp.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
1092
|
+
<HintPath>packages\FSharp.Core.5.0.3-beta.21369.4\lib\netstandard2.0\FSharp.Core.dll</HintPath>
|
1093
|
+
<Private>True</Private>
|
1094
|
+
</Reference>
|
1095
|
+
<Reference Include="Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed">
|
1096
|
+
<HintPath>packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
1097
|
+
<Private>True</Private>
|
1098
|
+
</Reference>
|
1099
|
+
</ItemGroup>
|
1100
|
+
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
1101
|
+
</Project>
|
1102
|
+
""",
|
1103
|
+
packagesConfigContents: """
|
1104
|
+
<packages>
|
1105
|
+
<package id="FSharp.Core" version="5.0.3-beta.21369.4" targetFramework="net462" />
|
1106
|
+
<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net462" />
|
1107
|
+
</packages>
|
1108
|
+
""",
|
1109
|
+
// expected
|
1110
|
+
expectedProjectContents: """
|
1111
|
+
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
1112
|
+
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
1113
|
+
<PropertyGroup>
|
1114
|
+
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
1115
|
+
</PropertyGroup>
|
1116
|
+
<ItemGroup>
|
1117
|
+
<None Include="packages.config" />
|
1118
|
+
</ItemGroup>
|
1119
|
+
<ItemGroup>
|
1120
|
+
<Reference Include="FSharp.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
1121
|
+
<HintPath>packages\FSharp.Core.5.0.3-beta.21369.4\lib\netstandard2.0\FSharp.Core.dll</HintPath>
|
1122
|
+
<Private>True</Private>
|
1123
|
+
</Reference>
|
1124
|
+
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed">
|
1125
|
+
<HintPath>packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
1126
|
+
<Private>True</Private>
|
1127
|
+
</Reference>
|
1128
|
+
</ItemGroup>
|
1129
|
+
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
1130
|
+
</Project>
|
1131
|
+
""",
|
1132
|
+
expectedPackagesConfigContents: """
|
1133
|
+
<?xml version="1.0" encoding="utf-8"?>
|
1134
|
+
<packages>
|
1135
|
+
<package id="FSharp.Core" version="5.0.3-beta.21369.4" targetFramework="net462" />
|
1136
|
+
<package id="Newtonsoft.Json" version="13.0.1" targetFramework="net462" />
|
1137
|
+
</packages>
|
1138
|
+
""");
|
1139
|
+
}
|
1140
|
+
|
1075
1141
|
protected static Task TestUpdateForProject(
|
1076
1142
|
string dependencyName,
|
1077
1143
|
string oldVersion,
|