Skip to content

Commit a80fe9d

Browse files
authored
#2219 Upgrade Docker, CircleCI and update to net8.0, net9.0 target frameworks (#2230)
* Update Docker * Upgrade all packages and Microsoft artifacts: 1. to the most recent versions available 2. ideally to version 9.0.* * Fix compilation errors * Fix warnings except NU1902: CS0618: 'DiscoveryApplicationBuilderExtensions.UseDiscoveryClient(IApplicationBuilder)' is obsolete: 'This method call is no longer needed, you should remove it.' MSB3270: There was a mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "C:\Users\rmaks\.nuget\packages\microsoft.servicefabric.data\7.1.2493\lib\netstandard2.0\Microsoft.ServiceFabric.Data.dll", "AMD64". This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and references, or take a dependency on references with a processor architecture that matches the targeted processor architecture of your project. SYSLIB0057: 'X509Certificate2.X509Certificate2(string, string?, X509KeyStorageFlags)' is obsolete: 'Loading certificate data through the constructor or Import is obsolete. Use X509CertificateLoader instead to load certificates.' Ignore NU1902: Package 'IdentityServer4' 4.1.2 has a known moderate severity vulnerability * Fix IDE messages * Fix integration tests: The 'Should_be_able_to_use_token_from_ocelot_a_on_ocelot_b' test related to IdentityServer4 requires migration to .NET 9 or removing * Build using the Docker image version 9.24.0 (Linux OS, double SDKs) * Add `BddfyConfig` class to override the default BDDfy report behavior in `Steps` * Disable BatchProcessors * IDE0130: Namespace "Ocelot.AcceptanceTests" does not match folder structure, expected "Ocelot.AcceptanceTests.Properties" Where -> \test\Ocelot.AcceptanceTests\Properties\BddfyConfig.cs L4 * Raynald is refactoring super star! Warning: Unexpected character sequence in array element value. Where: samples\Administration\Issue645.postman_collection.json L135+145 * CA1816: A method that is an implementation of Dispose does not call GC.SuppressFinalize; or a method that is not an implementation of Dispose calls GC.SuppressFinalize; or a method calls GC.SuppressFinalize and passes something other than this (Me in Visual Basic). Where: test\Ocelot.AcceptanceTests\HeaderTests.cs L460 * CA1859: Using concrete types avoids virtual or interface call overhead and enables inlining. Change type of variable 'client' from 'Ocelot.WebSockets.IClientWebSocket' to 'Ocelot.WebSockets.ClientWebSocketProxy' for improved performance Where: test\Ocelot.AcceptanceTests\WebSocketTests.cs L128+180 * CA2211: Static fields that are neither constants nor read-only are not thread-safe. Access to such a field must be carefully controlled and requires advanced programming techniques to synchronize access to the class object. Where: src\Ocelot.Administration\IdentityServerMiddlewareConfigurationProvider.cs L10 * IDE0044: Make field readonly Where: test\Ocelot.AcceptanceTests\Properties\BddfyConfig.cs L21 * IDE0039 Use local function * IDE0059 Avoid unnecessary value assignments in your code, as these likely indicate redundant value computations. If the value computation is not redundant and you intend to retain the assignment, then change the assignment target to a local variable whose name starts with an underscore and is optionally followed by an integer, such as '_', '_1', '_2', etc. These are treated as special discard symbol names. * IDE1006 Naming rule violation: These words must begin with upper case characters * IDE0079 Remove unnecessary suppression * IDE0330 Use 'System.Threading.Lock' * IDE1006 Naming rule violation: These words must begin with upper case characters: Fix compilation error * Ignore xUnit1004: Test methods should not be skipped
1 parent 2e352bc commit a80fe9d

File tree

60 files changed

+479
-390
lines changed

Some content is hidden

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

60 files changed

+479
-390
lines changed

.circleci/config.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ orbs:
44
jobs:
55
build:
66
docker:
7-
- image: ocelot2/circleci-build:latest
7+
- image: ocelot2/circleci-build:9.24.0
88
resource_class: medium+
99
steps:
1010
- checkout
1111
- run: dotnet dev-certs https && dotnet tool restore && dotnet cake
1212
release:
1313
docker:
14-
- image: ocelot2/circleci-build:latest
14+
- image: ocelot2/circleci-build:9.24.0
1515
resource_class: medium+
1616
steps:
1717
- checkout

Ocelot.Release.sln

+117-2
Large diffs are not rendered by default.

build.cake

+6-8
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ using System.Linq;
1414
using System.Text.RegularExpressions;
1515

1616
const string Release = "Release"; // task name, target, and Release config name
17-
const string AllFrameworks = "net6.0;net7.0;net8.0";
18-
const string LatestFramework = "net8.0";
17+
const string AllFrameworks = "net8.0;net9.0";
18+
const string LatestFramework = "net9.0";
1919

2020
var compileConfig = Argument("configuration", Release); // compile
2121

@@ -96,7 +96,7 @@ Task("Compile")
9696
};
9797
if (target != Release)
9898
{
99-
settings.Framework = LatestFramework; // build using .NET 8 SDK only
99+
settings.Framework = LatestFramework; // build using .NET 9 SDK only
100100
}
101101
string frameworkInfo = string.IsNullOrEmpty(settings.Framework) ? AllFrameworks : settings.Framework;
102102
Information($"Settings {nameof(DotNetBuildSettings.Framework)}: {frameworkInfo}");
@@ -467,7 +467,7 @@ Task("RunUnitTests")
467467
};
468468
if (target != Release)
469469
{
470-
settings.Framework = LatestFramework; // .NET 8 SDK only
470+
settings.Framework = LatestFramework; // .NET 9 SDK only
471471
}
472472
string frameworkInfo = string.IsNullOrEmpty(settings.Framework) ? AllFrameworks : settings.Framework;
473473
Information($"Settings {nameof(DotNetTestSettings.Framework)}: {frameworkInfo}");
@@ -520,14 +520,13 @@ Task("RunAcceptanceTests")
520520
var settings = new DotNetTestSettings
521521
{
522522
Configuration = compileConfig,
523-
// Framework = LatestFramework, // .NET 8 SDK only
524523
ArgumentCustomization = args => args
525524
.Append("--no-restore")
526525
.Append("--no-build")
527526
};
528527
if (target != Release)
529528
{
530-
settings.Framework = LatestFramework; // .NET 8 SDK only
529+
settings.Framework = LatestFramework; // .NET 9 SDK only
531530
}
532531
string frameworkInfo = string.IsNullOrEmpty(settings.Framework) ? AllFrameworks : settings.Framework;
533532
Information($"Settings {nameof(DotNetTestSettings.Framework)}: {frameworkInfo}");
@@ -542,14 +541,13 @@ Task("RunIntegrationTests")
542541
var settings = new DotNetTestSettings
543542
{
544543
Configuration = compileConfig,
545-
// Framework = LatestFramework, // .NET 8 SDK only
546544
ArgumentCustomization = args => args
547545
.Append("--no-restore")
548546
.Append("--no-build")
549547
};
550548
if (target != Release)
551549
{
552-
settings.Framework = LatestFramework; // .NET 8 SDK only
550+
settings.Framework = LatestFramework; // .NET 9 SDK only
553551
}
554552
string frameworkInfo = string.IsNullOrEmpty(settings.Framework) ? AllFrameworks : settings.Framework;
555553
Information($"Settings {nameof(DotNetTestSettings.Framework)}: {frameworkInfo}");

docker/8.21.0/Dockerfile.build

-17
This file was deleted.

docker/8.21.0/Dockerfile.release

-21
This file was deleted.

docker/8.21.0/build.sh

-11
This file was deleted.

docker/Dockerfile.base

+6-13
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,16 @@
1-
FROM mcr.microsoft.com/dotnet/sdk:8.0-alpine
1+
FROM mcr.microsoft.com/dotnet/sdk:9.0-alpine
22

33
RUN apk add bash icu-libs krb5-libs libgcc libintl libssl3 libstdc++ zlib git openssh-client
44

5+
# Install .NET 8 SDK
56
RUN curl -L --output ./dotnet-install.sh https://dot.net/v1/dotnet-install.sh
6-
77
RUN chmod u+x ./dotnet-install.sh
8-
9-
# Install .NET 8 SDK (already included in the base image, but listed for consistency)
108
RUN ./dotnet-install.sh -c 8.0 -i /usr/share/dotnet
119

12-
# Install .NET 7 SDK
13-
RUN ./dotnet-install.sh -c 7.0 -i /usr/share/dotnet
14-
15-
# Install .NET 6 SDK
16-
RUN ./dotnet-install.sh -c 6.0 -i /usr/share/dotnet
17-
18-
# Generate and export the development certificate
19-
RUN dotnet dev-certs https -ep /certs/cert.pem -p '' && \
20-
chmod 644 /certs/cert.pem
10+
# Generate and export the development SSL certificate
11+
RUN mkdir -p /certs
12+
RUN dotnet dev-certs https -ep /certs/cert.pem -p ''
13+
RUN chmod 644 /certs/cert.pem
2114

2215
ENV ASPNETCORE_URLS="https://+;http://+"
2316
ENV ASPNETCORE_HTTPS_PORT=443

docker/Dockerfile.windows

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
FROM mcr.microsoft.com/dotnet/sdk:9.0-nanoserver-ltsc2022
2+
3+
# Install PowerShell globally AND RUN powershell -Command "gci"
4+
#RUN dotnet tool install -g powershell && pwsh -Command "gci"
5+
RUN pwsh -Command "gci"
6+
7+
# # Install .NET 8 SDK
8+
USER ContainerAdministrator
9+
RUN pwsh -Command "Invoke-WebRequest -OutFile dotnet-install.ps1 https://dot.net/v1/dotnet-install.ps1; gci"
10+
ENV DOTNET_GENERATE_ASPNET_CERTIFICATE=true
11+
RUN pwsh -Command "./dotnet-install.ps1 -Channel 8.0 -InstallDir 'C:\Program Files\dotnet\'; gci -Path C:\\ -Recurse -Include *8.0* -Directory"
12+
13+
#RUN git status
14+
RUN dotnet --info
15+
16+
# Generate and export the development SSL certificate
17+
#RUN mkdir -p certs
18+
#RUN dotnet dev-certs https -ep certs/cert.pem -p ''
19+
#RUN pwsh -Command "dotnet dev-certs https --clean; dotnet dev-certs https; exit 0;"
20+
#RUN pwsh -Command "dotnet dev-certs https --trust; exit 0;"
21+
RUN pwsh -Command "dotnet dev-certs https --check --trust; exit 0;"
22+
23+
#ENV ASPNETCORE_URLS="https://+;http://+" ASPNETCORE_HTTPS_PORT=443
24+
#ENV ASPNETCORE_Kestrel__Certificates__Default__Password="" ASPNETCORE_Kestrel__Certificates__Default__Path=certs/cert.pem

docker/README.md

+22-5
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,31 @@
11
# docker build
22

3-
This folder contains the `Dockerfile.*` and `build.sh` script to create the Ocelot build image & container.
3+
This folder contains the `Dockerfile.*` and `build-*.sh` scripts to create the Ocelot build image & container.
44

55
## Account
6-
- [Ocelot Gateway Profile | Docker Hub](https://hub.docker.com/u/ocelot2)
6+
- Docker Hub | [Ocelot Gateway](https://hub.docker.com/u/ocelot2)
77

88
## Repositories
99
- [circleci-build](https://hub.docker.com/r/ocelot2/circleci-build)
1010

11-
## ocelot2/circleci-build Tags
12-
- [latest](https://hub.docker.com/layers/ocelot2/circleci-build/latest/images/sha256-981d6f9e6e5ba54f6e044bca6fcf8b5197a8f3e6ce2b3cdfa9e6704ecd2ca969?context=explore) is version 8.23.2, uploaded on Apr 3, 2024.
13-
- [8.23.2](https://hub.docker.com/layers/ocelot2/circleci-build/8.23.2/images/sha256-981d6f9e6e5ba54f6e044bca6fcf8b5197a8f3e6ce2b3cdfa9e6704ecd2ca969?context=explore), uploaded on Apr 3, 2024. It supports development SSL certificates by the command `dotnet dev-certs https`.
11+
## Outdated Tags
1412
- [8.21.0](https://hub.docker.com/layers/ocelot2/circleci-build/8.21.0/images/sha256-edb46d37ab52d39a5b27dc63895e5944d4d491d1788744ed144ecb4303b94532?context=explore), uploaded on Nov 20, 2023. It contains .NET 8, 7 and 6 SDKs. It supports builds for `net6.0`, `net7.0` and `net8.0` frameworks.
13+
- [8.23.2](https://hub.docker.com/layers/ocelot2/circleci-build/8.23.2/images/sha256-981d6f9e6e5ba54f6e044bca6fcf8b5197a8f3e6ce2b3cdfa9e6704ecd2ca969?context=explore), uploaded on Apr 3, 2024. It supports development SSL certificates by the command `dotnet dev-certs https`.
14+
- [latest](https://hub.docker.com/layers/ocelot2/circleci-build/latest/images/sha256-981d6f9e6e5ba54f6e044bca6fcf8b5197a8f3e6ce2b3cdfa9e6704ecd2ca969?context=explore) is version 8.23.2, uploaded on Apr 3, 2024.
15+
16+
## .NET 8-9 Tags
17+
18+
### Single SDK Tags
19+
- [sdk-8-alpine-lin.net8](https://hub.docker.com/layers/ocelot2/circleci-build/sdk-8-alpine-lin.net8/images/sha256-17c21438771641ba2a3320a6c13fe756a851d707a925188d9616485bfc757b22?context=explore), uploaded on Dec 3, 2024. This Linux OS image contains .NET 8 SDK only. It supports builds for `net8.0` framework.
20+
- [sdk-9-alpine-lin.net9](https://hub.docker.com/layers/ocelot2/circleci-build/sdk-9-alpine-lin.net9/images/sha256-c20d82a52c1a7eebf86bcd32751960ae189e6c50575959ee0499b1d88541c9ea?context=explore), uploaded on Dec 3, 2024. This Linux OS image contains .NET 9 SDK only. It supports builds for `net9.0` framework.
21+
- [sdk8-nanoserver2022-win.net8](https://hub.docker.com/layers/ocelot2/circleci-build/sdk8-nanoserver2022-win.net8/images/sha256-20f21f4361d18301bc885e1f01ebefcd6b024802130db1296173cdfaac5d75e6?context=explore), uploaded on Dec 3, 2024. This Windows OS image contains .NET 8 SDK only. It supports builds for `net8.0` framework.
22+
- [sdk9-nano2022-win.net9](https://hub.docker.com/layers/ocelot2/circleci-build/sdk9-nano2022-win.net9/images/sha256-37b718885f8cfb3480299f48044836f01aec2370e331667dd1811a4c94a4ce45?context=explore), uploaded on Dec 3, 2024. This Windows OS image contains .NET 9 SDK only. It supports builds for `net9.0` framework.
23+
24+
### Double SDKs Tags
25+
- [sdk9-alpine-lin.net8-9](https://hub.docker.com/layers/ocelot2/circleci-build/sdk9-alpine-lin.net8-9/images/sha256-707924d144248178caff80578649f7d0e9b7c70ed51b6fb5171170c9a30a4eae?context=explore) aka [9.24.0](https://hub.docker.com/layers/ocelot2/circleci-build/9.24.0/images/sha256-707924d144248178caff80578649f7d0e9b7c70ed51b6fb5171170c9a30a4eae?context=explore), uploaded on Dec 3, 2023. This Linux OS image contains .NET 8 and 9 SDKs. It supports builds for `net8.0` and `net9.0` frameworks.
26+
- [sdk9-nano2022-win.net8-9](https://hub.docker.com/layers/ocelot2/circleci-build/sdk9-nano2022-win.net8-9/images/sha256-6e44a8fc52ab091ea43090b6ab182f7a05d7ac31402ce742a7e035323e584cf7?context=explore) aka [9.24.win](https://hub.docker.com/layers/ocelot2/circleci-build/9.24.win/images/sha256-6e44a8fc52ab091ea43090b6ab182f7a05d7ac31402ce742a7e035323e584cf7?context=explore), uploaded on Dec 4, 2023. This Windows OS image contains .NET 8 and 9 SDKs. It supports builds for `net8.0` and `net9.0` frameworks.
27+
28+
### Links
29+
- Docker Hub | [Microsoft dotnet Images](https://hub.docker.com/r/microsoft/dotnet)
30+
- GitHub | dotnet-docker | [.NET SDK](https://github.com/dotnet/dotnet-docker/blob/main/README.sdk.md)
31+
- StackOverflow | [PowerShell and process exit codes](https://stackoverflow.com/questions/57468522/powershell-and-process-exit-codes)

docker/build-windows.sh

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
version=9.24.win
2+
tag=sdk9-nano2022-win.net8-9
3+
4+
docker build --no-cache --platform windows/amd64 -t ocelot2/circleci-build -f Dockerfile.windows .
5+
6+
docker tag ocelot2/circleci-build ocelot2/circleci-build:$tag
7+
docker push ocelot2/circleci-build:$tag
8+
9+
docker tag ocelot2/circleci-build ocelot2/circleci-build:$version
10+
docker push ocelot2/circleci-build:$version

docker/build.sh

+9-8
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
# This script builds the Ocelot Docker file
2+
# echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin
23

3-
# {DotNetSdkVer}.{OcelotVer} -> {.NET8}.{23.2} -> 8.23.2
4-
version=8.23.2
5-
docker build --platform linux/amd64 -t ocelot2/circleci-build -f Dockerfile.base .
6-
7-
echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin
4+
# {DotNetSdkVer}.{OcelotVer} -> {.NET9}.{24.0} -> 9.24.0
5+
#version=9.24.0
6+
tag=sdk9-alpine-lin.net8-9
87

9-
docker tag ocelot2/circleci-build ocelot2/circleci-build:$version
10-
docker push ocelot2/circleci-build:latest
11-
docker push ocelot2/circleci-build:$version
8+
docker build --platform linux/amd64 -t ocelot2/circleci-build -f Dockerfile.base .
9+
docker tag ocelot2/circleci-build ocelot2/circleci-build:$tag
10+
docker push ocelot2/circleci-build:$tag
11+
# docker tag ocelot2/circleci-build ocelot2/circleci-build:$version
12+
# docker push ocelot2/circleci-build:$version
File renamed without changes.
+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
FROM mcr.microsoft.com/dotnet/sdk:8.0-alpine
2+
3+
RUN apk add bash icu-libs krb5-libs libgcc libintl libssl3 libstdc++ zlib git openssh-client
4+
5+
RUN curl -L --output ./dotnet-install.sh https://dot.net/v1/dotnet-install.sh
6+
7+
RUN chmod u+x ./dotnet-install.sh
8+
9+
# Install .NET 8 SDK (already included in the base image, but listed for consistency)
10+
RUN ./dotnet-install.sh -c 8.0 -i /usr/share/dotnet
11+
12+
# Install .NET 7 SDK
13+
RUN ./dotnet-install.sh -c 7.0 -i /usr/share/dotnet
14+
15+
# Install .NET 6 SDK
16+
RUN ./dotnet-install.sh -c 6.0 -i /usr/share/dotnet
17+
18+
# Generate and export the development certificate
19+
RUN dotnet dev-certs https -ep /certs/cert.pem -p '' && \
20+
chmod 644 /certs/cert.pem
21+
22+
ENV ASPNETCORE_URLS="https://+;http://+"
23+
ENV ASPNETCORE_HTTPS_PORT=443
24+
ENV ASPNETCORE_Kestrel__Certificates__Default__Password=""
25+
ENV ASPNETCORE_Kestrel__Certificates__Default__Path=/certs/cert.pem

samples/Administration/Issue645.postman_collection.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@
132132
"id": "0f60e7b3-e4f1-4458-bbc4-fc4809e86b2d",
133133
"type": "text/javascript",
134134
"exec": [
135-
string.Empty
135+
""
136136
]
137137
}
138138
},
@@ -142,9 +142,9 @@
142142
"id": "1279a2cf-b771-4a86-9dfa-302b240fac62",
143143
"type": "text/javascript",
144144
"exec": [
145-
string.Empty
145+
""
146146
]
147147
}
148148
}
149149
]
150-
}
150+
}

samples/Administration/Ocelot.Samples.AdministrationApi.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
22
<PropertyGroup>
3-
<TargetFramework>net8.0</TargetFramework>
3+
<TargetFramework>net9.0</TargetFramework>
44
<ImplicitUsings>disable</ImplicitUsings>
55
<Nullable>disable</Nullable>
66
</PropertyGroup>

samples/Basic/Ocelot.Samples.Basic.ApiGateway.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
22
<PropertyGroup>
3-
<TargetFramework>net8.0</TargetFramework>
3+
<TargetFramework>net9.0</TargetFramework>
44
<ImplicitUsings>disable</ImplicitUsings>
55
<Nullable>disable</Nullable>
66
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>

samples/Eureka/ApiGateway/Ocelot.Samples.Eureka.ApiGateway.csproj

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
22
<PropertyGroup>
3-
<TargetFramework>net8.0</TargetFramework>
3+
<TargetFramework>net9.0</TargetFramework>
44
<ImplicitUsings>disable</ImplicitUsings>
55
<Nullable>disable</Nullable>
66
</PropertyGroup>
7-
<ItemGroup>
8-
<Folder Include="wwwroot\" />
9-
</ItemGroup>
107
<ItemGroup>
118
<None Update="ocelot.json;appsettings.json">
129
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>

samples/Eureka/DownstreamService/Ocelot.Samples.Eureka.DownstreamService.csproj

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
22
<PropertyGroup>
3-
<TargetFramework>net8.0</TargetFramework>
3+
<TargetFramework>net9.0</TargetFramework>
44
<ImplicitUsings>disable</ImplicitUsings>
55
<Nullable>disable</Nullable>
66
</PropertyGroup>
77
<ItemGroup>
8-
<PackageReference Include="Steeltoe.Discovery.Client" Version="1.1.0" />
8+
<PackageReference Include="Steeltoe.Discovery.ClientCore" Version="3.2.8" />
99
</ItemGroup>
1010
<ItemGroup>
11-
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.3" />
11+
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.4" />
1212
</ItemGroup>
1313
<ItemGroup>
1414
<ProjectReference Include="..\..\Web\Ocelot.Samples.Web.csproj" />

samples/Eureka/DownstreamService/Startup.cs

-2
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,5 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
3030
{
3131
app.UseDeveloperExceptionPage();
3232
}
33-
34-
app.UseDiscoveryClient();
3533
}
3634
}

samples/GraphQL/Ocelot.Samples.GraphQL.csproj

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,17 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
22
<PropertyGroup>
3-
<TargetFramework>net8.0</TargetFramework>
3+
<TargetFramework>net9.0</TargetFramework>
44
<ImplicitUsings>disable</ImplicitUsings>
55
<Nullable>disable</Nullable>
66
</PropertyGroup>
7-
<ItemGroup>
8-
<Folder Include="wwwroot\" />
9-
</ItemGroup>
107
<ItemGroup>
118
<None Update="ocelot.json;appsettings.json">
129
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
1310
</None>
1411
</ItemGroup>
1512
<ItemGroup>
16-
<PackageReference Include="GraphQL" Version="4.8.0" />
13+
<PackageReference Include="GraphQL" Version="8.2.1" />
14+
<PackageReference Include="GraphQL.NewtonsoftJson" Version="8.2.1" />
1715
</ItemGroup>
1816
<ItemGroup>
1917
<ProjectReference Include="..\..\src\Ocelot\Ocelot.csproj" />

0 commit comments

Comments
 (0)