ASP.Net 5:正在将1.0 Beta8更新为RC1-IServiceCollection不包含AddMvc的定义
本文关键字:RC1-IServiceCollection 更新 包含 定义 AddMvc Beta8 Net ASP | 更新日期: 2023-09-27 18:29:24
我有一些代码,由一个授权api项目、一个通用项目和一个ASP.net主应用程序项目组成,在一个单一的解决方案中。我已经浏览了相关的project.json文件,删除了显式的beta8引用,然后进行了一些其他必要的更正。例如,在必要时将使用Microsoft.Framework.Configuration更改为Microsoft.Extensions.Configuration。
我从链接的潜在重复中了解到,首先要怀疑的是我的各个project.json文件中引用的无效混合。明确地说,我在任何地方都没有留下任何beta8引用。因此,我认为有关的问题并不相同。
我陷入困境的地方似乎是一件非常基本的事情:
Error CS1061 Build 'IServiceCollection' does not contain a
definition for 'AddMvc' and no extension method 'AddMvc' accepting a first
argument of type 'IServiceCollection' could be found (are you missing a
using directive or an assembly reference?)
我在project.json中引用了Microsoft.AspNet.Mvc,不管我是否在.cs文件中放入"using Microsoft.AspNet.Mvc",错误仍然存在。我以为你只需将引用添加到project.json中,就可以在新的世界顺序中添加引用。如果project.json存在程序集引用,为什么还会出现这种错误?
我的项目.json:
{
"webroot": "wwwroot",
"version": "1.0.0-*",
"dependencies": {
"Microsoft.AspNet.Authentication.JwtBearer": "1.0.0-*",
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-*",
"Microsoft.AspNet.Mvc": "6.0.0-*",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-*",
"Microsoft.AspNet.StaticFiles": "1.0.0-*",
"Microsoft.Framework.Logging": "1.0.0-*",
"Microsoft.Framework.Logging.Console": "1.0.0-*",
"Microsoft.Framework.Logging.Debug": "1.0.0-*",
"System.IdentityModel.Tokens": "5.0.0-*",
"MyCompany.Common": "1.0.0-*"
},
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
},
"frameworks": {
"dnx451": { }
},
"exclude": [
"wwwroot",
"node_modules"
],
"publishExclude": [
"**.user",
"**.vspscc"
]
}
正在中断的代码行是AddMvc代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.Framework.DependencyInjection;
using Microsoft.Framework.Logging;
using Microsoft.Extensions.Configuration;
using Microsoft.Dnx.Runtime;
using RamSoft.Authorization.Api.Common;
using System.IdentityModel.Tokens;
using Microsoft.AspNet.Authentication.JwtBearer;
using RamSoft.ITConsole.Common;
using Microsoft.Extensions.PlatformAbstractions;
namespace MyCompany.Authorization.Api
{
public class Startup
{
...
public void ConfigureServices(IServiceCollection services)
{
services.AddInstance(_signingCredentials);
services.AddInstance(_jwtBearerOptions);
services.AddMvc(); // Fail.
}
...
}
您需要更改对项目的依赖关系。这是我的项目.json
"dependencies": {
"Microsoft.AspNetCore.Authentication.Cookies": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Diagnostics": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Razor.Tools": {
"version": "1.0.0-preview1-final",
"type": "build"
},
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final",
"Microsoft.AspNetCore.StaticFiles": "1.0.0-rc2-final",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final",
"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0-rc2-final",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final",
"Microsoft.Extensions.Configuration.UserSecrets": "1.0.0-rc2-final",
"Microsoft.Extensions.Logging": "1.0.0-rc2-final",
"Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final",
"Microsoft.Extensions.Logging.Debug": "1.0.0-rc2-final",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc2-final",
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
"version": "1.0.0-preview1-final",
"type": "build"
},
"Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {
"version": "1.0.0-preview1-final",
"type": "build"
}
}
并在startup.cs 中添加using Microsoft.Extensions.Configuration;
我们可以使用AddMvc()至少用于Core 1.0 rc2