Run ASP.NET MVC site on mac (mono/xamarin studio)
2014-03-13 15:31
501 查看
我们选择用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”关键词,得到
同意协议并安装后,下方的message会提示你不能安装到.net 4.0的项目上,于是我们退出package manager,在解决方案管理器内右键项目,选择'Options/Build/General',在Target framework里面选上
重新从nuget添加,我们发现装好后,mvc已经是5.1了
packages.config:
web.config:
为了让错误来提示我们应该改什么,而不是死记硬背,我们先运行一下项目
得到一个
重新测试运行,得到一个
继续测试,得到一个错误:
到目前为止,我的程序已经是能跑起来了。
相关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:
<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
到目前为止,我的程序已经是能跑起来了。
相关文章推荐
- First ASP.NET Core Application on a Mac Using Visual Studio Code
- 在ASP.NET MVC 4 on Mono中使用OracleClient in CentOS 6.x的问题记录
- ASP.NET on Mac OS X Snow Leopard at one fell swoop using mod_mono
- Mono 4.0 Mac上运行asp.net mvc 5.2.3
- [2014-08-24]为 Xamarin Studio 创建的 Asp.Net Mvc 项目配置 gitignore
- ASP.Net MVC 5 in Xamarin Studio 5.2
- ASP.NET MVC 單元測試系列 (7):Visual Studio Unit Test
- MongoDB on Asp.Net MVC3
- ASP.NET MVC on IIS 6 Walkthrough
- REST on ASP.Net MVC (and Future)
- Essential Studio for ASP.NET MVC发布2017 v2,增加日期范围选择器功能
- 【开源项目SugarSite】ASP.NET MVC+ Layui+ SqlSugar+RestSharp项目讲解
- Running multiple instances of Xamarin Studio on a Mac
- 在Mono 2.8上部署ASP.NET MVC 2
- 在Mono 2.8上部署ASP.NET MVC 2
- 招聘 - ASP.NET MVC初级工程师和Xamarin初级工程师
- 如何让mvc运行在IIS6.0上? (ASP.NET MVC on IIS 6 Walkthrough)
- CentOS7 发布 ASP.NET MVC 4 --- mono 4.6.0 + jexus 5.8.1
- Odd Things of ASP.NET MVC Deployment on IIS 6
- Getting started with ASP.NET Core MVC and Visual Studio