结合到自己的项目上,需要的步骤记录如下:
完成后,更新 csproj 文件
<TargetFramework>netcoreapp3.0</TargetFramework>
web项目删除所有项目的 Microsoft.AspNetCore.App 引用,需要用文本编辑器修改项目的 csproj 文件
类库项目删除包引用Microsoft.AspNetCore.App 引用, 并加入框架引用
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.0.0" />
<PackageReference Include="Microsoft.AspNetCore.SpaServices" Version="3.0.0" />
<PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="3.0.0" />
<PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="5.2.7" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.0.0" />
<PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="5.2.7" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.0.0" />
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>
删除 <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
由于托管方式的变化,整个 Program.cs (包括AutoFac的注入方式也改变了)
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args)
{
// ASP.NET Core 3.0+:
// The UseServiceProviderFactory call attaches the
// Autofac provider to the generic hosting mechanism.
var host = Host.CreateDefaultBuilder(args)
.UseServiceProviderFactory(new AutofacServiceProviderFactory()) // 启动Autofac
.ConfigureWebHostDefaults(webHostBuilder =>
{
webHostBuilder
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>();
});
return host;
}
using Microsoft.Extensions.Hosting;
using Microsoft.AspNetCore.SpaServices.Extensions;
将AddJsonOptions改为AddNewtonsoftJson
将 CompatibilityVersion.Version_2_2 改为 CompatibilityVersion.Version_3_0
修改 Configure 的构造函数
public void Configure(IApplicationBuilder app, IHostingEnvironment env, IOptions senparcWeixinSetting)
在 if (env.IsDevelopment()) 之前加入
app.UseRouting();
app.UseCors();
在
// 注册用户认证中间件
app.UseAuthentication();
后面加入
app.UseAuthorization();
将 UseMvc 改为 UseEndpoints, UseEndpoints 函数中的内容改为
endpoints.MapControllers();
endpoints.MapControllerRoute(name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapFallbackToController("Index", "Home");
删除 app.MapWhen
怎么说呢,高手看来其实挺简单,但是确实初学者的一道坎(话说这坎也太多了喂~)
在参考了网上的诸多做法之后,总结起来就是下面的流程:
1. 在系统 -> 管理 -> 软件更新中安装gcc,我安装的CentOS版本不包含gcc所以需要有这个过程,还好,安装是自动的。
2. 下载你想安装的Python版本,此处开始建议使用root用户,后面很方便,在终端中输入su – 回车,输入密码就进入root用户了。
[code]wget http://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz[/code]
3. 解压下载的文件并安装
[code]tar -xvf Python-2.7.6.tgz
cd Python-2.7.6
./configure
make all
make install
make clean
make distclean[/code]
4. 现在可以检查一下版本了。
[code]/usr/local/bin/python2.7 -V[/code]
5. 更新系统默认的python
[code]
mv /usr/bin/python /usr/bin/python2.6 #当前python的版本为2.6,这里就得写python2.6
ln -s /usr/local/bin/python2.7 /usr/bin/python
python -V
[/code]
6. 一般来说,网上都建议更新yun的配置文件,进入/usr/bin/yum编辑第一行,从#!/usr/bin/python改成#!/usr/bin/python2.6
好了,完事了。