我正在编写简单的consoleApp(netcoreapp2.0)
<Project Sdk="Microsoft.NET.Sdk">
并希望用mvc运行webserver.
class Program { static void Main(string[] args) { WebHost.CreateDefaultBuilder() .ConfigureServices(services => services.AddMvc()) .Configure(app => app.UseDeveloperExceptionPage().UseMvcWithDefaultRoute()) .UseHttpSys().Build().Run(); } } public class HomeController : Controller { [HttpGet] public ActionResult Index() => View("Index"); }
GET http // localhost:5000时收到错误
One or more compilation references are missing. Ensure that your project is referencing ‘Microsoft.NET.Sdk.Web’ and the ‘PreserveCompilationContext’ property is not set to false.
可能的原因是Razor Engine.
我怎样才能使它工作?我错过了什么?
您的Index.cshtml视图文件中缺少@using可能导致该错误消息.尝试绕过索引视图,只需从控制器返回一个字符串,以查看错误消息是否消失.
namespace ConsoleApp1 { class Program { static void Main(string[] args) { WebHost.CreateDefaultBuilder() .ConfigureServices(services => services.AddMvc()) .Configure(app => app.UseDeveloperExceptionPage().UseMvcWithDefaultRoute()) .UseHttpSys().Build().Run(); } } public class HomeController : Controller { [HttpGet] public string Index() => "Hello World!"; } }
的csproj
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp2.0</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore" Version="2.0.0" /> <PackageReference Include="Microsoft.AspNetCore.Hosting" Version="2.0.0" /> <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.0" /> <PackageReference Include="Microsoft.AspNetCore.Server.HttpSys" Version="2.0.0" /> <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.0.0" /> </ItemGroup> </Project>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。