我正在尝试从MVC6 beta(6.0.0-rc1-final)升级到最新的ASP.NET Core 1.0.0
我设法使用asp.net文档帮助升级我的应用程序。
但是现在,当我使用CTRL + F5运行我的应用程序时,它给了我/Views/_ViewImports.cshtml文件的错误 -
"类型或命名空间名称' Identity'在命名空间中不存在 ' Microsoft.AspNetCore'"
以下是我的global.json -
{
"projects": [ "src", "test" ],
"sdk": {
"version": "1.0.0-preview2-003121"
}
}
的package.json
{
"name": "Apex",
"version": "2.4.0",
"devDependencies": {
"gulp": "3.8.11",
"gulp-concat": "2.5.2",
"gulp-cssmin": "0.1.7",
"gulp-uglify": "1.2.0",
"rimraf": "2.2.8",
"gulp-sass": "2.1.1",
"node-sass": "3.4.2"
}
}
appsettings.json
{
"ApplicationInsights": {
"InstrumentationKey": ""
},
"Data": {
"DefaultConnection": {
"ConnectionString": ""
}
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Verbose",
"System": "Information",
"Microsoft": "Information"
}
}
}
project.json
{
"userSecretsId": "",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.ApplicationInsights.AspNetCore": "1.0.0",
"Microsoft.AspNetCore.Authentication.Cookies": "1.0.0",
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0",
"Microsoft.AspNetCore.Identity": "1.0.0",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.0",
"Microsoft.AspNetCore.Mvc.TagHelpers": "1.0.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
"Microsoft.AspNetCore.StaticFiles": "1.0.0",
"Microsoft.EntityFrameworkCore": "1.0.0",
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.0",
"Microsoft.Extensions.Configuration.CommandLine": "1.0.0",
"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Configuration.UserSecrets": "1.0.0",
"Microsoft.Extensions.Logging": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0",
"Microsoft.VisualStudio.Web.CodeGenerators.Mvc": "1.0.0-preview2-final"
},
"tools": {
"Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
"Microsoft.Extensions.SecretManager.Tools": "1.0.0-preview2-final"
},
"commands": {
"ef": "EntityFramework.Commands",
"web": "Microsoft.AspNetCore.Server.Kestrel"
},
"frameworks": {
"net461": {}
},
"publishOptions": {
"exclude": [
"**.user",
"**.vspscc",
"wwwroot",
"node_modules"
]
},
"scripts": {
"prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ]
}
}
_ViewImports.cshtml
@using MVC6_Full_Version
@using MVC6_Full_Version.Models
@using MVC6_Full_Version.ViewModels.Account
@using MVC6_Full_Version.ViewModels.Manage
@using Microsoft.AspNetCore.Identity
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@inject Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration TelemetryConfiguration
如果您在上面看到我的_ViewImports.cshtml
文件,则它具有Identity名称空间。
请指导我如何解决此运行时错误。
我的环境是 - VS2015社区版和ASP.NET core1.0和.NET framework 4.6.1
提前致谢。
答案 0 :(得分:5)
尝试在"preserveCompilationContext": true
project.json
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
看看这是否有帮助。
修改强>
使用Razor或任何其他类型的运行时编译时, preserveCompilationContext
是必需的。没有它,Razor视图的运行时编译将失败。
有关更多信息,请参阅this link。