Skip to content

Commit 0a0e1ad

Browse files
authored
Merge pull request #24826 from dotnet/dougbu/update.branding.2.1
Update branding to 2.1.22
2 parents 94076d4 + 06f86cd commit 0a0e1ad

16 files changed

+223
-43
lines changed

eng/Baseline.Designer.props

+5-5
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<Project>
33
<PropertyGroup>
44
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
5-
<AspNetCoreBaselineVersion>2.1.20</AspNetCoreBaselineVersion>
5+
<AspNetCoreBaselineVersion>2.1.21</AspNetCoreBaselineVersion>
66
</PropertyGroup>
77
<!-- Package: dotnet-dev-certs-->
88
<PropertyGroup Condition=" '$(PackageId)' == 'dotnet-dev-certs' ">
@@ -477,13 +477,13 @@
477477
</ItemGroup>
478478
<!-- Package: Microsoft.AspNetCore.Http.Extensions-->
479479
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Extensions' ">
480-
<BaselinePackageVersion>2.1.1</BaselinePackageVersion>
480+
<BaselinePackageVersion>2.1.21</BaselinePackageVersion>
481481
</PropertyGroup>
482482
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Extensions' AND '$(TargetFramework)' == 'netstandard2.0' ">
483483
<BaselinePackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="[2.1.1, )" />
484-
<BaselinePackageReference Include="Microsoft.Net.Http.Headers" Version="[2.1.1, )" />
485484
<BaselinePackageReference Include="Microsoft.Extensions.FileProviders.Abstractions" Version="[2.1.1, )" />
486-
<BaselinePackageReference Include="System.Buffers" Version="[4.5.0, )" />
485+
<BaselinePackageReference Include="Microsoft.Net.Http.Headers" Version="[2.1.1, )" />
486+
<BaselinePackageReference Include="System.Buffers" Version="[4.5.1, )" />
487487
</ItemGroup>
488488
<!-- Package: Microsoft.AspNetCore.Http.Features-->
489489
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.Http.Features' ">
@@ -859,7 +859,7 @@
859859
</ItemGroup>
860860
<!-- Package: Microsoft.AspNetCore.ResponseCompression-->
861861
<PropertyGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.ResponseCompression' ">
862-
<BaselinePackageVersion>2.1.1</BaselinePackageVersion>
862+
<BaselinePackageVersion>2.1.21</BaselinePackageVersion>
863863
</PropertyGroup>
864864
<ItemGroup Condition=" '$(PackageId)' == 'Microsoft.AspNetCore.ResponseCompression' AND '$(TargetFramework)' == 'net461' ">
865865
<BaselinePackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="[2.1.1, )" />

eng/Baseline.xml

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ This file contains a list of all the packages and their versions which were rele
44
build of ASP.NET Core 2.1.x. Update this list when preparing for a new patch.
55
66
-->
7-
<Baseline Version="2.1.20">
7+
<Baseline Version="2.1.21">
88
<Package Id="dotnet-dev-certs" Version="2.1.1" />
99
<Package Id="dotnet-sql-cache" Version="2.1.1" />
1010
<Package Id="dotnet-user-secrets" Version="2.1.1" />
@@ -54,7 +54,7 @@ build of ASP.NET Core 2.1.x. Update this list when preparing for a new patch.
5454
<Package Id="Microsoft.AspNetCore.Http.Connections.Client" Version="1.0.4" />
5555
<Package Id="Microsoft.AspNetCore.Http.Connections.Common" Version="1.0.4" />
5656
<Package Id="Microsoft.AspNetCore.Http.Connections" Version="1.0.15" />
57-
<Package Id="Microsoft.AspNetCore.Http.Extensions" Version="2.1.1" />
57+
<Package Id="Microsoft.AspNetCore.Http.Extensions" Version="2.1.21" />
5858
<Package Id="Microsoft.AspNetCore.Http.Features" Version="2.1.1" />
5959
<Package Id="Microsoft.AspNetCore.Http" Version="2.1.1" />
6060
<Package Id="Microsoft.AspNetCore.HttpOverrides" Version="2.1.1" />
@@ -93,7 +93,7 @@ build of ASP.NET Core 2.1.x. Update this list when preparing for a new patch.
9393
<Package Id="Microsoft.AspNetCore.Razor" Version="2.1.2" />
9494
<Package Id="Microsoft.AspNetCore.ResponseCaching.Abstractions" Version="2.1.1" />
9595
<Package Id="Microsoft.AspNetCore.ResponseCaching" Version="2.1.1" />
96-
<Package Id="Microsoft.AspNetCore.ResponseCompression" Version="2.1.1" />
96+
<Package Id="Microsoft.AspNetCore.ResponseCompression" Version="2.1.21" />
9797
<Package Id="Microsoft.AspNetCore.Rewrite" Version="2.1.1" />
9898
<Package Id="Microsoft.AspNetCore.Routing.Abstractions" Version="2.1.1" />
9999
<Package Id="Microsoft.AspNetCore.Routing" Version="2.1.1" />

eng/PatchConfig.props

+6
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,12 @@ Later on, this will be checked using this condition:
6767
</PackagesInPatch>
6868
</PropertyGroup>
6969
<PropertyGroup Condition=" '$(VersionPrefix)' == '2.1.21' ">
70+
<PackagesInPatch>
71+
Microsoft.AspNetCore.Http.Extensions;
72+
Microsoft.AspNetCore.ResponseCompression;
73+
</PackagesInPatch>
74+
</PropertyGroup>
75+
<PropertyGroup Condition=" '$(VersionPrefix)' == '2.1.22' ">
7076
<PackagesInPatch>
7177
</PackagesInPatch>
7278
</PropertyGroup>

src/Http/Http.Extensions/src/SendFileResponseExtensions.cs

+44-27
Original file line numberDiff line numberDiff line change
@@ -107,41 +107,28 @@ public static Task SendFileAsync(this HttpResponse response, string fileName, lo
107107

108108
private static async Task SendFileAsyncCore(HttpResponse response, IFileInfo file, long offset, long? count, CancellationToken cancellationToken)
109109
{
110-
if (string.IsNullOrEmpty(file.PhysicalPath))
110+
if (!string.IsNullOrEmpty(file.PhysicalPath))
111111
{
112-
CheckRange(offset, count, file.Length);
113-
114-
using (var fileContent = file.CreateReadStream())
115-
{
116-
if (offset > 0)
117-
{
118-
fileContent.Seek(offset, SeekOrigin.Begin);
119-
}
120-
await StreamCopyOperation.CopyToAsync(fileContent, response.Body, count, cancellationToken);
121-
}
112+
await response.SendFileAsync(file.PhysicalPath, offset, count, cancellationToken);
113+
return;
122114
}
123-
else
115+
116+
CheckRange(offset, count, file.Length);
117+
using (var fileContent = file.CreateReadStream())
124118
{
125-
await response.SendFileAsync(file.PhysicalPath, offset, count, cancellationToken);
119+
await SendStreamAsync(fileContent, response, offset, count, cancellationToken);
126120
}
127121
}
128122

129-
private static Task SendFileAsyncCore(HttpResponse response, string fileName, long offset, long? count, CancellationToken cancellationToken = default)
123+
private static async Task SendFileAsyncCore(HttpResponse response, string fileName, long offset, long? count, CancellationToken cancellationToken = default)
130124
{
131125
var sendFile = response.HttpContext.Features.Get<IHttpSendFileFeature>();
132-
if (sendFile == null)
126+
if (sendFile != null)
133127
{
134-
return SendFileAsyncCore(response.Body, fileName, offset, count, cancellationToken);
128+
await sendFile.SendFileAsync(fileName, offset, count, cancellationToken);
129+
return;
135130
}
136131

137-
return sendFile.SendFileAsync(fileName, offset, count, cancellationToken);
138-
}
139-
140-
// Not safe for overlapped writes.
141-
private static async Task SendFileAsyncCore(Stream outputStream, string fileName, long offset, long? count, CancellationToken cancel = default)
142-
{
143-
cancel.ThrowIfCancellationRequested();
144-
145132
var fileInfo = new FileInfo(fileName);
146133
CheckRange(offset, count, fileInfo.Length);
147134

@@ -155,14 +142,44 @@ private static async Task SendFileAsyncCore(Stream outputStream, string fileName
155142
options: FileOptions.Asynchronous | FileOptions.SequentialScan);
156143

157144
using (fileStream)
145+
{
146+
await SendStreamAsync(fileStream, response, offset, count, cancellationToken);
147+
}
148+
}
149+
150+
private static Task SendStreamAsync(Stream source, HttpResponse response, long offset, long? count, CancellationToken cancellationToken)
151+
{
152+
if (!cancellationToken.CanBeCanceled)
153+
{
154+
return SendStreamQuietAsync(source, response, offset, count, response.HttpContext.RequestAborted);
155+
}
156+
157+
cancellationToken.ThrowIfCancellationRequested();
158+
if (offset > 0)
159+
{
160+
source.Seek(offset, SeekOrigin.Begin);
161+
}
162+
163+
return StreamCopyOperation.CopyToAsync(source, response.Body, count, cancellationToken);
164+
}
165+
166+
private static async Task SendStreamQuietAsync(Stream source, HttpResponse response, long offset, long? count, CancellationToken cancellationToken)
167+
{
168+
if (cancellationToken.IsCancellationRequested)
169+
{
170+
return;
171+
}
172+
173+
try
158174
{
159175
if (offset > 0)
160176
{
161-
fileStream.Seek(offset, SeekOrigin.Begin);
177+
source.Seek(offset, SeekOrigin.Begin);
162178
}
163179

164-
await StreamCopyOperation.CopyToAsync(fileStream, outputStream, count, cancel);
180+
await StreamCopyOperation.CopyToAsync(source, response.Body, count, cancellationToken);
165181
}
182+
catch (OperationCanceledException) { }
166183
}
167184

168185
private static void CheckRange(long offset, long? count, long fileLength)
@@ -178,4 +195,4 @@ private static void CheckRange(long offset, long? count, long fileLength)
178195
}
179196
}
180197
}
181-
}
198+
}

src/Http/Http.Extensions/test/Microsoft.AspNetCore.Http.Extensions.Tests.csproj

+4
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44
<TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks>
55
</PropertyGroup>
66

7+
<ItemGroup>
8+
<Content Include="testfile1kb.txt" CopyToOutputDirectory="PreserveNewest" />
9+
</ItemGroup>
10+
711
<ItemGroup>
812
<Reference Include="Microsoft.AspNetCore.Http" />
913
<Reference Include="Microsoft.AspNetCore.Http.Extensions" />

src/Http/Http.Extensions/test/SendFileResponseExtensionsTests.cs

+42
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// Copyright (c) .NET Foundation. All rights reserved. See License.txt in the project root for license information.
22

3+
using System;
34
using System.IO;
45
using System.Threading;
56
using System.Threading.Tasks;
@@ -49,5 +50,46 @@ public Task SendFileAsync(string path, long offset, long? length, CancellationTo
4950
return Task.FromResult(0);
5051
}
5152
}
53+
54+
[Fact]
55+
public async Task SendFile_FallsBackToBodyStream()
56+
{
57+
var body = new MemoryStream();
58+
var context = new DefaultHttpContext();
59+
var response = context.Response;
60+
response.Body = body;
61+
62+
await response.SendFileAsync("testfile1kb.txt", 1, 3, CancellationToken.None);
63+
64+
Assert.Equal(3, body.Length);
65+
}
66+
67+
[Fact]
68+
public async Task SendFile_ThrowsWhenCanceled()
69+
{
70+
var body = new MemoryStream();
71+
var context = new DefaultHttpContext();
72+
var response = context.Response;
73+
response.Body = body;
74+
75+
await Assert.ThrowsAsync<OperationCanceledException>(
76+
() => response.SendFileAsync("testfile1kb.txt", 1, 3, new CancellationToken(canceled: true)));
77+
78+
Assert.Equal(0, body.Length);
79+
}
80+
81+
[Fact]
82+
public async Task SendFile_AbortsSilentlyWhenRequestCanceled()
83+
{
84+
var body = new MemoryStream();
85+
var context = new DefaultHttpContext();
86+
context.RequestAborted = new CancellationToken(canceled: true);
87+
var response = context.Response;
88+
response.Body = body;
89+
90+
await response.SendFileAsync("testfile1kb.txt", 1, 3, CancellationToken.None);
91+
92+
Assert.Equal(0, body.Length);
93+
}
5294
}
5395
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

src/Http/HttpAbstractions.sln

+30
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RoutingSample.Web", "Routin
8181
EndProject
8282
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dependencies", "dependencies", "{793FFE24-138A-4C3D-81AB-18D625E36230}"
8383
EndProject
84+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.Kestrel", "..\Servers\Kestrel\Kestrel\src\Microsoft.AspNetCore.Server.Kestrel.csproj", "{C2608BEB-0C4C-4EDB-A0E4-E29AE59B4566}"
85+
EndProject
86+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.IISIntegration", "..\Servers\IIS\IISIntegration\src\Microsoft.AspNetCore.Server.IISIntegration.csproj", "{11E37916-24DF-48A3-AFC9-9E9BB76588E4}"
87+
EndProject
8488
Global
8589
GlobalSection(SolutionConfigurationPlatforms) = preSolution
8690
Debug|Any CPU = Debug|Any CPU
@@ -403,6 +407,30 @@ Global
403407
{F4F5D8AF-FBD1-463F-9473-B63AA820A6C4}.Release|x64.Build.0 = Release|Any CPU
404408
{F4F5D8AF-FBD1-463F-9473-B63AA820A6C4}.Release|x86.ActiveCfg = Release|Any CPU
405409
{F4F5D8AF-FBD1-463F-9473-B63AA820A6C4}.Release|x86.Build.0 = Release|Any CPU
410+
{C2608BEB-0C4C-4EDB-A0E4-E29AE59B4566}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
411+
{C2608BEB-0C4C-4EDB-A0E4-E29AE59B4566}.Debug|Any CPU.Build.0 = Debug|Any CPU
412+
{C2608BEB-0C4C-4EDB-A0E4-E29AE59B4566}.Debug|x64.ActiveCfg = Debug|Any CPU
413+
{C2608BEB-0C4C-4EDB-A0E4-E29AE59B4566}.Debug|x64.Build.0 = Debug|Any CPU
414+
{C2608BEB-0C4C-4EDB-A0E4-E29AE59B4566}.Debug|x86.ActiveCfg = Debug|Any CPU
415+
{C2608BEB-0C4C-4EDB-A0E4-E29AE59B4566}.Debug|x86.Build.0 = Debug|Any CPU
416+
{C2608BEB-0C4C-4EDB-A0E4-E29AE59B4566}.Release|Any CPU.ActiveCfg = Release|Any CPU
417+
{C2608BEB-0C4C-4EDB-A0E4-E29AE59B4566}.Release|Any CPU.Build.0 = Release|Any CPU
418+
{C2608BEB-0C4C-4EDB-A0E4-E29AE59B4566}.Release|x64.ActiveCfg = Release|Any CPU
419+
{C2608BEB-0C4C-4EDB-A0E4-E29AE59B4566}.Release|x64.Build.0 = Release|Any CPU
420+
{C2608BEB-0C4C-4EDB-A0E4-E29AE59B4566}.Release|x86.ActiveCfg = Release|Any CPU
421+
{C2608BEB-0C4C-4EDB-A0E4-E29AE59B4566}.Release|x86.Build.0 = Release|Any CPU
422+
{11E37916-24DF-48A3-AFC9-9E9BB76588E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
423+
{11E37916-24DF-48A3-AFC9-9E9BB76588E4}.Debug|Any CPU.Build.0 = Debug|Any CPU
424+
{11E37916-24DF-48A3-AFC9-9E9BB76588E4}.Debug|x64.ActiveCfg = Debug|Any CPU
425+
{11E37916-24DF-48A3-AFC9-9E9BB76588E4}.Debug|x64.Build.0 = Debug|Any CPU
426+
{11E37916-24DF-48A3-AFC9-9E9BB76588E4}.Debug|x86.ActiveCfg = Debug|Any CPU
427+
{11E37916-24DF-48A3-AFC9-9E9BB76588E4}.Debug|x86.Build.0 = Debug|Any CPU
428+
{11E37916-24DF-48A3-AFC9-9E9BB76588E4}.Release|Any CPU.ActiveCfg = Release|Any CPU
429+
{11E37916-24DF-48A3-AFC9-9E9BB76588E4}.Release|Any CPU.Build.0 = Release|Any CPU
430+
{11E37916-24DF-48A3-AFC9-9E9BB76588E4}.Release|x64.ActiveCfg = Release|Any CPU
431+
{11E37916-24DF-48A3-AFC9-9E9BB76588E4}.Release|x64.Build.0 = Release|Any CPU
432+
{11E37916-24DF-48A3-AFC9-9E9BB76588E4}.Release|x86.ActiveCfg = Release|Any CPU
433+
{11E37916-24DF-48A3-AFC9-9E9BB76588E4}.Release|x86.Build.0 = Release|Any CPU
406434
EndGlobalSection
407435
GlobalSection(SolutionProperties) = preSolution
408436
HideSolutionNode = FALSE
@@ -435,6 +463,8 @@ Global
435463
{E4AC79A3-625B-421B-9F91-EFCBD9BEB37F} = {24D19E8E-25FD-4C0B-8865-697878B67BE0}
436464
{BF8DC0FF-96F9-4705-8CFA-F42BE989AB6A} = {793FFE24-138A-4C3D-81AB-18D625E36230}
437465
{F4F5D8AF-FBD1-463F-9473-B63AA820A6C4} = {14A7B3DE-46C8-4245-B0BD-9AFF3795C163}
466+
{C2608BEB-0C4C-4EDB-A0E4-E29AE59B4566} = {793FFE24-138A-4C3D-81AB-18D625E36230}
467+
{11E37916-24DF-48A3-AFC9-9E9BB76588E4} = {793FFE24-138A-4C3D-81AB-18D625E36230}
438468
EndGlobalSection
439469
GlobalSection(ExtensibilityGlobals) = postSolution
440470
SolutionGuid = {85B5E151-2E9D-419C-83DD-0DDCF446C83A}

src/Middleware/Middleware.sln

+15
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server
191191
EndProject
192192
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_dependencies", "_dependencies", "{ACA6DDB9-7592-47CE-A740-D15BF307E9E0}"
193193
EndProject
194+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.IISIntegration", "..\Servers\IIS\IISIntegration\src\Microsoft.AspNetCore.Server.IISIntegration.csproj", "{F05215CF-F754-47BF-ACED-259C53C8B223}"
195+
EndProject
194196
Global
195197
GlobalSection(SolutionConfigurationPlatforms) = preSolution
196198
Debug|Any CPU = Debug|Any CPU
@@ -1005,6 +1007,18 @@ Global
10051007
{260E77CB-800F-4A13-BE92-9CAA097705C2}.Release|x64.Build.0 = Release|Any CPU
10061008
{260E77CB-800F-4A13-BE92-9CAA097705C2}.Release|x86.ActiveCfg = Release|Any CPU
10071009
{260E77CB-800F-4A13-BE92-9CAA097705C2}.Release|x86.Build.0 = Release|Any CPU
1010+
{F05215CF-F754-47BF-ACED-259C53C8B223}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
1011+
{F05215CF-F754-47BF-ACED-259C53C8B223}.Debug|Any CPU.Build.0 = Debug|Any CPU
1012+
{F05215CF-F754-47BF-ACED-259C53C8B223}.Debug|x64.ActiveCfg = Debug|Any CPU
1013+
{F05215CF-F754-47BF-ACED-259C53C8B223}.Debug|x64.Build.0 = Debug|Any CPU
1014+
{F05215CF-F754-47BF-ACED-259C53C8B223}.Debug|x86.ActiveCfg = Debug|Any CPU
1015+
{F05215CF-F754-47BF-ACED-259C53C8B223}.Debug|x86.Build.0 = Debug|Any CPU
1016+
{F05215CF-F754-47BF-ACED-259C53C8B223}.Release|Any CPU.ActiveCfg = Release|Any CPU
1017+
{F05215CF-F754-47BF-ACED-259C53C8B223}.Release|Any CPU.Build.0 = Release|Any CPU
1018+
{F05215CF-F754-47BF-ACED-259C53C8B223}.Release|x64.ActiveCfg = Release|Any CPU
1019+
{F05215CF-F754-47BF-ACED-259C53C8B223}.Release|x64.Build.0 = Release|Any CPU
1020+
{F05215CF-F754-47BF-ACED-259C53C8B223}.Release|x86.ActiveCfg = Release|Any CPU
1021+
{F05215CF-F754-47BF-ACED-259C53C8B223}.Release|x86.Build.0 = Release|Any CPU
10081022
EndGlobalSection
10091023
GlobalSection(SolutionProperties) = preSolution
10101024
HideSolutionNode = FALSE
@@ -1086,6 +1100,7 @@ Global
10861100
{0186A5D0-6D05-4C19-BB81-E49A51745FFF} = {ACA6DDB9-7592-47CE-A740-D15BF307E9E0}
10871101
{17B7BFF6-4E72-410C-B690-02741505500A} = {ACA6DDB9-7592-47CE-A740-D15BF307E9E0}
10881102
{260E77CB-800F-4A13-BE92-9CAA097705C2} = {ACA6DDB9-7592-47CE-A740-D15BF307E9E0}
1103+
{F05215CF-F754-47BF-ACED-259C53C8B223} = {ACA6DDB9-7592-47CE-A740-D15BF307E9E0}
10891104
EndGlobalSection
10901105
GlobalSection(ExtensibilityGlobals) = postSolution
10911106
SolutionGuid = {83786312-A93B-4BB4-AB06-7C6913A59AFA}

0 commit comments

Comments
 (0)