You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.9 KiB
2.9 KiB
说明
关于 共享框架
随着 .NET Core 3.0 的发布,许多 ASP.NET Core 程序集不再作为包发布到 NuGet。 相反,程序集包含在 Microsoft.AspNetCore.App 共享框架中,该框架随 .NET Core SDK 和运行时安装程序一起安装。
- Web项目,一般自动包含 AspMicrosoft.AspNetCore.App 共享框架,即 共享框架由项目的Sdk属性(Microsoft.NET.Sdk.Web)自动引入
<Project Sdk="Microsoft.NET.Sdk.Web">
<!--共享项目由上面Sdk类型(Microsoft.NET.Sdk.Web)自动引入-->
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<!--Nuget包引用-->
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="7.0.5" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
</ItemGroup>
<ItemGroup>
<!--项目引用-->
<ProjectReference Include="..\xx.csproj" />
</ItemGroup>
</Project>
- 类库项目等,要手动引入(无法使用nuget包的方式引入)
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<!-- 手动引入共享框架(不指定版本,自动跟随项目版本),多目标项目,也可以使用变量根据目标选择引入-->
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
<ItemGroup>
<!--Nuget包引用-->
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="7.0.5" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
</ItemGroup>
<ItemGroup>
<!--项目引用-->
<ProjectReference Include="..\xx.csproj" />
</ItemGroup>
</Project>
<!-- 多目标示例-->
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0;netcoreapp3.0;netcoreapp3.1;net5.0;net6.0;net7.0</TargetFrameworks>
<PackageTags>aspnetcore;authentication;security;basicauth</PackageTags>
<Configurations>Debug;Release;CodeQL</Configurations>
</PropertyGroup>
<!-- netstandard2.0 版本引入老版本的包(Microsoft.AspNetCore.Authentication等) -->
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
<PackageReference Include="Microsoft.AspNetCore.Authentication" Version="2.0" />
<PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.0" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="2.0" />
</ItemGroup>
<!-- 高版本手动引入共享框架(Microsoft.AspNetCore.App),由共享框架引入模块 -->
<ItemGroup Condition="'$(TargetFramework)' != 'netstandard2.0'">
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
</Project>