C# 编译错误,缺少Microsoft.WindowsAzure.ServiceRuntime.RoleEntryPoint
我正在尝试扩展默认的webrole模板。我添加了一个新的实体模型,并为其创建了一个框架。尝试加载索引页时,将显示服务器错误 在未引用的程序集中定义了类型“Microsoft.WindowsAzure.ServiceRuntime.RoleEntryPoint”。必须添加对程序集“Microsoft.WindowsAzure.ServiceRuntime,版本=2.3.0.0,区域性=中性,PublicKeyToken=31bf3856ad364e35”的引用 我仔细检查了WebRole是否包含此引用,它确实包含。我可以通过将此引用副本本地属性设置为true来修复此错误 如果执行此操作,错误将更改为“类型名称'Models'在类型'WebRole.WebRole'中不存在” 这两个错误都是从Index.cshtml文件抛出的,特别是在以下行: 公共类(页面)视图(银行账户)索引(cshtml):C# 编译错误,缺少Microsoft.WindowsAzure.ServiceRuntime.RoleEntryPoint,c#,asp.net-mvc,entity-framework,azure,azure-web-roles,C#,Asp.net Mvc,Entity Framework,Azure,Azure Web Roles,我正在尝试扩展默认的webrole模板。我添加了一个新的实体模型,并为其创建了一个框架。尝试加载索引页时,将显示服务器错误 在未引用的程序集中定义了类型“Microsoft.WindowsAzure.ServiceRuntime.RoleEntryPoint”。必须添加对程序集“Microsoft.WindowsAzure.ServiceRuntime,版本=2.3.0.0,区域性=中性,PublicKeyToken=31bf3856ad364e35”的引用 我仔细检查了WebRole是否包含此
System.Web.Mvc.WebViewPage{
什么原因导致这种情况?视图编译中缺少引用 视图编译器使用一组不同的引用,要使模型正常工作,需要在web.config中添加引用 例如:
<configuration>
<system.web>
<assemblies>
<add assembly="YourAssembly, Version=4.0.0.0, Culture=neutral, PublicKeyToken=TOKENKEY" />
</assemblies>
</system.web>
</configuration>
我知道它很旧,但可能会帮助其他人 出现此错误的原因是,当使用名称WebRole创建web项目时,Windows Azure云服务的默认项目中存在冲突(该名称将该项目与Microsoft.WindowsAzure.ServiceRuntime dll放在同一命名空间中)。 要解决此问题,有两个简单的选项: 替换此代码
@model WebRole.Models.RegisterViewModel
并添加using语句和不带namesapce的模型
@using WebRole.Models
@model RegisterViewModel
或者,可以在views文件夹内的web.config中添加名称空间(而不是根目录中的名称空间)
希望有帮助。您是否安装了Azure Tools的正确版本?我知道,我只有在缺少Azure Tools库时才会出现此错误。谢谢,您让我走上了正确的道路。默认模板创建了名称空间WebRole和一个名为WebRole的类。该视图混淆了WebRole.Models作为t的属性类,而不是程序集中的类。通过将BankAccount移动到另一个命名空间,找到了引用。感谢您的帮助
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
-----
<add namespace="WebRole.Models" />
</namespaces>
</pages>
@model RegisterViewModel