使用Visual Studio 2015 开发ASP.NET MVC 5 项目部署到Mono/Jexus
最新的Mono 4.4已經(jīng)支持運(yùn)行asp.net mvc5項(xiàng)目,有的同學(xué)聽了這句話就興高采烈的拿起Visual Studio 2015創(chuàng)建了一個(gè)mvc 5的項(xiàng)目,然后部署到Mono上,瀏覽下發(fā)現(xiàn)一堆錯(cuò)誤出現(xiàn),心中一萬只草泥馬奔騰而來,這也叫支持嗎,這個(gè)問題是Visual Studio造成的,不相信的話可以使用Xamarin.Studio創(chuàng)建的asp.net項(xiàng)目,部署過程非常順利,沒有遇到什么問題;本文就是為你解開這個(gè)結(jié),如何Visual Studio 2015搞定ASP.NET MVC 5項(xiàng)目的跨平臺(tái)開發(fā)。
vs2015新建一個(gè)asp.net的項(xiàng)目(目標(biāo)框架是.net4.5),選擇mvc,并且更改身份驗(yàn)證為不適用身份驗(yàn)證。
編譯,并發(fā)布到j(luò)exus,訪問之。報(bào)出的錯(cuò)誤信息如下圖。
Could not find file "/var/www/mvcdemo/bin\roslyn\csc.exe". 這一行告訴了我們找不到roslyn 的c# 編譯器, 當(dāng)前版本的Mono 的編譯器還是Mono的mcs編譯器,并沒有完成到roslyn 這個(gè)編譯器的升級(jí)工作,這個(gè)工作正在進(jìn)行過程中,在不遠(yuǎn)的將來就可以統(tǒng)一使用roslyn。
解決這個(gè)問題的方法就是用Mono的mcs編譯器,項(xiàng)目上右鍵管理NuGet程序包,打開管理器,按順序卸載以下兩個(gè)組件:
l Microsoft.CodeDom.Providers.DotNetCompilerPlatform
l Microsoft.Net.Compilers
重新發(fā)布到j(luò)exus,通過瀏覽器可以看到清新的Bootstrap界面了, mono 4.4.2版本目前對(duì)mvc5的兼容性相當(dāng)好了。
其他的兼容性問題都是Windows/Linux的差異,比如大小寫和路徑問題等,例如從Nuget上下載下來的System.Web.Webpages.dll 幾個(gè)相關(guān)的dll 中間的pages 那個(gè)p是小寫的,需要變成大寫。Bootstrap等幾個(gè)前端框架里面也有一些不區(qū)分大小寫的,有一些樣式無法顯示,我把Jexus的不區(qū)分大小寫打開就好了。
在jexus中,只需要把 /usr/jexus/jws這個(gè)腳本文件中的 “export MONO_IOMAP=...”這一句前邊的“#”去掉,就可以不區(qū)分大小寫了。
[root@TENCENT64 /usr/jexus]# vi jws
原文地址:http://www.cnblogs.com/shanyou/p/5720733.html
.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺(tái)或掃描二維碼關(guān)注
總結(jié)
以上是生活随笔為你收集整理的使用Visual Studio 2015 开发ASP.NET MVC 5 项目部署到Mono/Jexus的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 打造自己的LinqProvider
- 下一篇: 微软准备开源PowerShell