Skip to content

Commit a08799a

Browse files
committed
支持 .NET 9.0 并引入公共属性文件
新增对 .NET 9.0 的支持,更新多个项目的 `TargetFrameworks` 属性以兼容最新框架版本。 引入 `WebApiClientCore.Common.props` 和 `WebApiClientCore.Extensions.Common.props` 公共属性文件,统一管理 `Nullable`、`TargetFrameworks` 等配置,减少重复代码并提升可维护性。 修补风险项 GHSA-ghhp-997w-qr28 GHSA-5crp-9r3c-p9vr GHSA-7jgj-8wvc-jh57 GHSA-cmhx-cq75-c4mj
1 parent 2e10534 commit a08799a

File tree

12 files changed

+76
-44
lines changed

12 files changed

+76
-44
lines changed

App/App.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<PropertyGroup>
44
<OutputType>Exe</OutputType>
55
<Nullable>enable</Nullable>
6-
<TargetFrameworks>netcoreapp3.0;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0</TargetFrameworks>
6+
<TargetFrameworks>netcoreapp3.0;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0</TargetFrameworks>
77
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
88
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
99
</PropertyGroup>

WebApiClientCore.Abstractions/WebApiClientCore.Abstractions.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

3+
<Import Project="../props/WebApiClientCore.Common.props" />
34
<PropertyGroup>
4-
<Nullable>enable</Nullable>
5-
<TargetFrameworks>netstandard2.1;net5.0;net8.0</TargetFrameworks>
6-
<IsAotCompatible Condition="'$(TargetFramework)' == 'net8.0'">true</IsAotCompatible>
5+
<IsAotCompatible>$(WebApiClientCoreIsAotCompatible)</IsAotCompatible>
76

87
<RootNamespace>WebApiClientCore</RootNamespace>
98
<AssemblyName>WebApiClientCore.Abstractions</AssemblyName>
@@ -19,5 +18,6 @@
1918
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.1'">
2019
<PackageReference Include="System.Text.Json" Version="4.6.0" />
2120
<PackageReference Include="System.ComponentModel.Annotations" Version="4.6.0" />
21+
<PackageReference Include="System.Text.Encodings.Web" Version="4.7.2" />
2222
</ItemGroup>
23-
</Project>
23+
</Project>
Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

3+
<Import Project="../props/WebApiClientCore.Common.props"/>
34
<PropertyGroup>
4-
<Nullable>enable</Nullable>
5-
<TargetFramework>netstandard2.0</TargetFramework>
6-
<GenerateDocumentationFile>True</GenerateDocumentationFile>
75
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
86
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
97
<SignAssembly>true</SignAssembly>
108
<AssemblyOriginatorKeyFile>Sign.snk</AssemblyOriginatorKeyFile>
119
</PropertyGroup>
1210

1311
<ItemGroup>
14-
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="3.8.0" PrivateAssets="all" />
15-
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.2" PrivateAssets="all" />
12+
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="3.8.0"
13+
PrivateAssets="all" />
14+
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.2"
15+
PrivateAssets="all" />
1616
</ItemGroup>
1717

1818
<ItemGroup>
@@ -24,13 +24,16 @@
2424
</ItemGroup>
2525

2626
<ItemGroup>
27-
<EmbeddedResource Update="Resx.en-US.resx">
28-
<Generator></Generator>
29-
</EmbeddedResource>
27+
3028
<EmbeddedResource Update="Resx.resx">
3129
<Generator>ResXFileCodeGenerator</Generator>
3230
<LastGenOutput>Resx.Designer.cs</LastGenOutput>
3331
</EmbeddedResource>
32+
<EmbeddedResource Update="Resx.en-US.resx">
33+
<Generator>ResXFileCodeGenerator</Generator>
34+
<LastGenOutput>Resx.Designer.cs</LastGenOutput>
35+
<DependentUpon>Resx.resx</DependentUpon>
36+
</EmbeddedResource>
3437
</ItemGroup>
3538

36-
</Project>
39+
</Project>

WebApiClientCore.Extensions.JsonRpc/WebApiClientCore.Extensions.JsonRpc.csproj

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

3+
<Import Project="../props/WebApiClientCore.Extensions.Common.props"/>
34
<PropertyGroup>
4-
<Nullable>enable</Nullable>
5-
<TargetFramework>netstandard2.1</TargetFramework>
6-
<GenerateDocumentationFile>True</GenerateDocumentationFile>
75

86
<SignAssembly>true</SignAssembly>
97
<AssemblyOriginatorKeyFile>Sign.snk</AssemblyOriginatorKeyFile>

WebApiClientCore.Extensions.NewtonsoftJson/WebApiClientCore.Extensions.NewtonsoftJson.csproj

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

3+
<Import Project="../props/WebApiClientCore.Extensions.Common.props"/>
34
<PropertyGroup>
4-
<Nullable>enable</Nullable>
5-
<TargetFramework>netstandard2.1</TargetFramework>
6-
<GenerateDocumentationFile>True</GenerateDocumentationFile>
75

86
<SignAssembly>true</SignAssembly>
97
<AssemblyOriginatorKeyFile>Sign.snk</AssemblyOriginatorKeyFile>
Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

3+
<Import Project="../props/WebApiClientCore.Common.props" />
34
<PropertyGroup>
4-
<Nullable>enable</Nullable>
5-
<GenerateDocumentationFile>True</GenerateDocumentationFile>
6-
<TargetFrameworks>netstandard2.1;net5.0;net8.0</TargetFrameworks>
7-
<IsAotCompatible Condition="'$(TargetFramework)' == 'net8.0'">true</IsAotCompatible>
5+
<IsAotCompatible>$(WebApiClientCoreIsAotCompatible)</IsAotCompatible>
86

97
<SignAssembly>true</SignAssembly>
108
<AssemblyOriginatorKeyFile>Sign.snk</AssemblyOriginatorKeyFile>
@@ -16,4 +14,4 @@
1614
<ItemGroup>
1715
<ProjectReference Include="..\WebApiClientCore\WebApiClientCore.csproj" />
1816
</ItemGroup>
19-
</Project>
17+
</Project>

WebApiClientCore.Extensions.SourceGenerator/WebApiClientCore.Extensions.SourceGenerator.csproj

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<Import Project="../props/WebApiClientCore.Extensions.Common.props"/>
24
<PropertyGroup>
3-
<Nullable>enable</Nullable>
4-
<IncludeBuildOutput>false</IncludeBuildOutput>
5-
<TargetFramework>netstandard2.1</TargetFramework>
65
<SignAssembly>true</SignAssembly>
76
<AssemblyOriginatorKeyFile>Sign.snk</AssemblyOriginatorKeyFile>
87
<Summary>此扩展包的实现已合并到WebApiClientCore包,无任何功能</Summary>

WebApiClientCore.OpenApi.SourceGenerator/WebApiClientCore.OpenApi.SourceGenerator.csproj

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<PropertyGroup>
44
<OutputType>Exe</OutputType>
55
<Nullable>enable</Nullable>
6-
<TargetFrameworks>netcoreapp3.1;net6.0;net8.0</TargetFrameworks>
6+
<TargetFrameworks>netcoreapp3.1;net6.0;net8.0;net9.0</TargetFrameworks>
77

88
<Summary>将本地或远程OpenApi文档解析生成WebApiClientCore的接口定义代码文件的工具</Summary>
99
<SatelliteResourceLanguages>zh-Hans</SatelliteResourceLanguages>
@@ -18,6 +18,9 @@
1818
<PackageReference Include="CommandLineParser" Version="2.9.1" />
1919
<PackageReference Include="RazorEngineCore" Version="2020.6.1" />
2020
<PackageReference Include="NSwag.CodeGeneration.CSharp" Version="13.19.0" />
21+
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
22+
<PackageReference Include="System.Net.Http" Version="4.3.4" />
23+
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
2124
</ItemGroup>
2225

2326
<ItemGroup>

WebApiClientCore.Test/WebApiClientCore.Test.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net6.0;net8.0</TargetFrameworks>
4+
<TargetFrameworks>net6.0;net8.0;net9.0</TargetFrameworks>
55
<Nullable>enable</Nullable>
66
<SignAssembly>true</SignAssembly>
77
<AssemblyOriginatorKeyFile>Test.snk</AssemblyOriginatorKeyFile>
Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,49 @@
11
<Project Sdk="Microsoft.NET.Sdk">
2-
2+
<Import Project="../props/WebApiClientCore.Common.props" />
33
<PropertyGroup>
4-
<Nullable>enable</Nullable>
5-
<GenerateDocumentationFile>True</GenerateDocumentationFile>
6-
<TargetFrameworks>netstandard2.1;net5.0;net8.0</TargetFrameworks>
7-
<IsAotCompatible Condition="'$(TargetFramework)' == 'net8.0'">true</IsAotCompatible>
4+
<IsAotCompatible>$(WebApiClientCoreIsAotCompatible)</IsAotCompatible>
85

96
<Description>.NetCore声明式的Http客户端库</Description>
107
<Summary>一款基于HttpClient封装,只需要定义c#接口并修饰相关特性,即可异步调用远程http接口的客户端库</Summary>
118

129
<SignAssembly>true</SignAssembly>
1310
<AssemblyOriginatorKeyFile>Sign.snk</AssemblyOriginatorKeyFile>
14-
</PropertyGroup>
11+
</PropertyGroup>
1512

1613
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.1'">
1714
<PackageReference Include="System.Net.Http.Json" Version="3.2.0" />
1815
<PackageReference Include="Microsoft.Extensions.Http" Version="3.0.0" />
1916
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="3.0.0" />
20-
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.0.0" />
17+
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions"
18+
Version="3.0.0" />
2119
</ItemGroup>
2220

2321
<ItemGroup Condition="'$(TargetFramework)' == 'net5.0'">
2422
<PackageReference Include="Microsoft.Extensions.Http" Version="5.0.0" />
2523
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="5.0.0" />
26-
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="5.0.0" />
24+
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions"
25+
Version="5.0.0" />
2726
</ItemGroup>
2827

2928
<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'">
3029
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.0" />
3130
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="8.0.1" />
32-
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="8.0.0" />
31+
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions"
32+
Version="8.0.0" />
33+
</ItemGroup>
34+
35+
<ItemGroup Condition="'$(TargetFramework)' == 'net9.0'">
36+
<PackageReference Include="Microsoft.Extensions.Http" Version="9.0.0" />
37+
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="9.0.0" />
38+
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions"
39+
Version="9.0.0" />
3340
</ItemGroup>
3441

3542
<ItemGroup>
36-
<ProjectReference Include="..\WebApiClientCore.Abstractions\WebApiClientCore.Abstractions.csproj" />
37-
<ProjectReference Include="..\WebApiClientCore.Analyzers\WebApiClientCore.Analyzers.csproj" ReferenceOutputAssembly="false" />
43+
<ProjectReference
44+
Include="..\WebApiClientCore.Abstractions\WebApiClientCore.Abstractions.csproj" />
45+
<ProjectReference Include="..\WebApiClientCore.Analyzers\WebApiClientCore.Analyzers.csproj"
46+
ReferenceOutputAssembly="false" />
3847
</ItemGroup>
3948

4049
<ItemGroup>
@@ -51,8 +60,10 @@
5160
</EmbeddedResource>
5261
</ItemGroup>
5362

54-
<!--nuget analyzers目录-->
63+
<!--nuget
64+
analyzers目录-->
5565
<ItemGroup>
56-
<None Include="$(OutputPath)\..\..\WebApiClientCore.Analyzers\$(Configuration)\**" PackagePath="analyzers\dotnet\cs" Pack="true" Visible="false" />
66+
<None Include="$(OutputPath)\..\..\WebApiClientCore.Analyzers\$(Configuration)\**"
67+
PackagePath="analyzers\dotnet\cs" Pack="true" Visible="false" />
5768
</ItemGroup>
58-
</Project>
69+
</Project>

props/WebApiClientCore.Common.props

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<Project>
2+
<PropertyGroup>
3+
<Nullable>enable</Nullable>
4+
<GenerateDocumentationFile>True</GenerateDocumentationFile>
5+
<TargetFrameworks>netstandard2.1;net5.0;net8.0;net9.0</TargetFrameworks>
6+
<LangVersion>latest</LangVersion>
7+
</PropertyGroup>
8+
<PropertyGroup>
9+
<WebApiClientCoreIsAotCompatible>false</WebApiClientCoreIsAotCompatible>
10+
<WebApiClientCoreIsAotCompatible Condition="'$(TargetFramework)' == 'netstandard2.1'">false</WebApiClientCoreIsAotCompatible>
11+
<WebApiClientCoreIsAotCompatible Condition="'$(TargetFramework)' == 'net5.0'">false</WebApiClientCoreIsAotCompatible>
12+
<WebApiClientCoreIsAotCompatible Condition="'$(TargetFramework)' == 'net8.0'">true</WebApiClientCoreIsAotCompatible>
13+
<WebApiClientCoreIsAotCompatible Condition="'$(TargetFramework)' == 'net9.0'">true</WebApiClientCoreIsAotCompatible>
14+
</PropertyGroup>
15+
</Project>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<Project>
2+
<PropertyGroup>
3+
<Nullable>enable</Nullable>
4+
<TargetFramework>netstandard2.1</TargetFramework>
5+
<GenerateDocumentationFile>True</GenerateDocumentationFile>
6+
</PropertyGroup>
7+
</Project>

0 commit comments

Comments
 (0)