Run ASP.NET MVC site on mac (mono/xamarin studio)
我们选择用xamarin studio来测试,如果你直接进xamarin的官网,那么会有一个更好看的网站和更复杂的流程(比如需要注册),我们直接到mono项目找mac的支持吧,点此进入
- 相关sdk和app都安装好后,进入xamarin studio(如果有更新,那就更新一下),我们建一个asp.net mvc3项目(时至今日,mvc已经是5.1了,这个待会说)
- 项目建好后,我们发现有两个引用找不到文件:system.web.helpers和system.web.webpages,网上有让你从gac里自行添加进去的方法,我们不这么做,直接删掉,然后,我们从nuget来安装最新的mvc
- 如何为xamarin添加nuget插件
- 接下来在项目或者引用文件夹上右键,管理nuget package,我们搜索“mvc”关键词,得到
Microsoft ASP.NET MVC这个项目,点击安装 - 同意协议并安装后,下方的message会提示你不能安装到.net 4.0的项目上,于是我们退出package manager,在解决方案管理器内右键项目,选择'Options/Build/General',在Target framework里面选上
Mono/.NET 4.5即可 - 重新从nuget添加,我们发现装好后,mvc已经是5.1了
- packages.config:
<package id="Microsoft.AspNet.Mvc" version="5.1.1" targetFramework="net45" /> - web.config:
- packages.config:
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.1.0.0" newVersion="5.1.0.0" />
</dependentAssembly>
- 为了让错误来提示我们应该改什么,而不是死记硬背,我们先运行一下项目
- 得到一个
Access to the path "/Library/Frameworks/Mono.framework/Versions/3.2.5/etc/mono/registry" is denied.的错误,点此查看解决办法,我选择了执行脚本的方法,而不是去修改csproj文件 - 重新测试运行,得到一个
System.InvalidOperationException Conflicting versions of ASP.NET Web Pages detected: specified version is “1.0.0.0”, but the version in bin is “3.0.0.0”. To continue, remove files from the application’s bin directory or remove the version specification in web.config错误,我们找到项目的web.config文件,直接删除掉appSetting节点下的<add key="webpages:Version" value="1.0.0.0" />(你也可以改为3.0.0.0) - 继续测试,得到一个错误:
System.InvalidOperationExceptionCould not locate Razor Host Factory type: System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0,这个时候,找到view目录下的web.config文件,定位到system.web.webPages.razor/host节点(错误提示很明确了),把其中的3.0.0.0改为5.1.0.0 - 到目前为止,我的程序已经是能跑起来了。
- 得到一个
Run ASP.NET MVC site on mac (mono/xamarin studio)的更多相关文章
- ASP.NET MVC 5 SmartCode Scaffolding for Visual Studio.Net
介绍 ASP.NET MVC 5 SmartCode Scaffolding是集成在Visual Studio.Net开发工具中一个ASP.NET MVC Web应用程序代码生成框架,使用SmartC ...
- Forms Authentication in ASP.NET MVC 4
原文:Forms Authentication in ASP.NET MVC 4 Contents: Introduction Implement a custom membership provid ...
- ASP.NET MVC 从零开始 - 自动化部署(其二)
这篇文章是从我的 github 博客 http://lxconan.github.io 导入的. 这是这个系列的第五篇了,前四篇请参见: ASP.NET MVC 从零开始 – Create and R ...
- ASP.NET MVC 从零开始 - 请求处理
这篇文章是从我的 github 博客 lxconan.github.io 导入的. 这是这个系列的第三篇了.前两篇文章请参见: ASP.NET MVC 从零开始 - Create and Run AS ...
- ASP.NET MVC 从零开始 - 自动化部署(其一)
本文是从我的 github 博客 http://lxconan.github.io 导入的. 这是这个系列的第四篇了,前三篇请参见: ASP.NET MVC 从零开始 – Create and Run ...
- [转]HTML5 Day 4: Add Drop Down Menu to ASP.NET MVC HTML5 Template using CSS and jQuery
本文转自:http://pietschsoft.com/post/2010/11/17/HTML5-Day-4-Add-DropDown-Menu-ASPNET-MVC-HTML5-Template- ...
- 初识ASP.NET MVC
我们首先从创建ASP.NET MVC项目开始.打开Visual Studio,在文件菜单中选择新建-> 项目,然后在模板中选择Web,接着选择ASP.Net Web应用程序,更改项目名称,点击确 ...
- ASP.NET MVC 5 01 - ASP.NET概述
本篇目录: ASP.NET 概述 .NET Framework 与 ASP.NET ASP.NET MVC简介 ASP.NET的特色和优势 典型案例 ▁▃▅ ASP.NET概述 ▅▃▁ 目前开发B/S ...
- ASP.NET MVC系列:开始
创建Asp.Net MVC项目 从visual studio主界面开始菜单中点击“新建项目”
随机推荐
- sphinx增量索引和主索引来实现索引的实时更新
项目中文章的信息内容因为持续有新增,而文章总量的基数又比较大,所以做搜索的时候,用了主索引+增量索引这种方式来实现索引的实时更新. 实现原理: 1. 新建一张表,记录一下上一次已经创建好索引的最后一条 ...
- Java中的守护线程——daemon
絮叨 Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) 定义:守护线程(aka:服务线程),在没有用户线程可服务时会自动离开. 优先级:守护线程的优先级 ...
- AT24Cxx(EEPROM)子系统
1.配置内核 打开I2C功能: 打开杂项设备,该选项打开后,EEPROM也就打开了. 2. 修改代码 修改文件: linux/arch/arm/mach-s3c2440/mach-smdk2440.c ...
- mybatis配置进阶
结果集的列比resultMap多会报错么?不会,只映射resultMap中有的列. 结果集的列比resultMap少会报错么?不会,只映射结果集中有的列. 高级结果映射 resultMap ...
- Kettle 添加对应hadoop版本的支持
在hdp的官网上有一个ETL工具叫做Talend Open Studio,然后我就下了,并且在群里询问了一下,突然间冒出来一群ETL高手,经高人指点认识了一款叫做Kettle的软件,经过这两天的试用, ...
- ajax 多个参数问题,如何既能表单序列化获取,又能加参数,加全部代码
$.param({'address':address,'delivity':delivity,'payment':payment}) + '&' + $('#card_form').ser ...
- 《Scrum实战》读书会作业01 - 用知行视角总结现在或者过去的一个项目
下面是<Scrum实战>读书会的第1个作业,主要是用知行视角来总结回顾现在或者过去的一个项目. 项目背景 2011年初,我做的项目是一个搜索引擎相关的项目,这个项目为公司在全球范围内的金融 ...
- android视频双向实时通讯的横竖屏切换
大概的样子是酱婶儿的 点击全屏按钮时执行setRequestedOrientation方法,此时希望得到的结果是surfaceview界面全屏且横屏显示,并且在横屏时Activity没有被重新创建,这 ...
- 巧用style的另类写法
看到style,不少人可能会说这个我知道,就是控件写属性的话可以通过style来实现代码的复用,单独把这些属性及其参数写成style就可以便捷的调用. <?xml version="1 ...
- Axiom3D:资源引用与加载基本流程.
Archive:对应文件夹位置,包含文件夹,压缩文件,网络位置,包含Load,Unload,Open,Create,Remove,FineFile等主要虚方法,用于对应各具体Archive来实现. R ...