Asp.net mvc 4 Microsoft Azure培训工具包MVC4、.NET v4.5无法部署到具有.NET v4的Azure网站

Asp.net mvc 4 Microsoft Azure培训工具包MVC4、.NET v4.5无法部署到具有.NET v4的Azure网站,asp.net-mvc-4,azure,Asp.net Mvc 4,Azure,我最近下载/安装了WATK。我还注册了一个免费的azure试用版。完成了“使用Windows Azure网站和Visual Studio 2012构建和发布ASP.NET应用程序”的实验。当我发现kit使用的是.NET4.5,Azure站点只接受.NETFramework4.0时,我已经完成了80%。如果我将lab属性配置更改为4.0,它将不会编译。罪魁祸首代码为: [Compare("NewPassword", ErrorMessage = "The new password and conf

我最近下载/安装了WATK。我还注册了一个免费的azure试用版。完成了“使用Windows Azure网站和Visual Studio 2012构建和发布ASP.NET应用程序”的实验。当我发现kit使用的是.NET4.5,Azure站点只接受.NETFramework4.0时,我已经完成了80%。如果我将lab属性配置更改为4.0,它将不会编译。罪魁祸首代码为:

[Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")]

[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]

该实验室以文件>新建项目开始,因此在您执行文件>新建之前,它不会真正绑定到框架。检查对话框上的默认框架,我怀疑它是4.5

至于在事后将其更改回4.0,我没有尝试,但可能生成了其他不兼容的代码。不过,您提到的两行代码肯定是生成代码的一部分,在我的例子中不会引起问题


关联的编译错误是什么?

这里的问题是因为CompareAttribute属性在4.5版本的DataAnnotations程序集和System.Web.Mvc程序集中都可用。由于您在4.5中启动了该项目,您的代码可能基于(.NET 4.5)

通过切换到,您可以修复错误:

[System.Web.Mvc.CompareAttribute("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")]

[System.Web.Mvc.CompareAttribute("Password", ErrorMessage = "The password and confirmation password do not match.")]

(为System.Web.Mvc添加一个using语句也将解决这个问题)

+1 DataAnnotations是我从4.5开始时必须清理的一个。到4.0。我建议使用一个更简单的MVC初学者模板,然后使用nuget输入EF 5位,并将ref设置为CopyLocal=true。您将在那里获得一组可部署的新注释