使用Visual Studio 2015 开发ASP.NET MVC 5 项目部署到Mono/Jexus

最新的Mono 4.4已经支持运行asp.net mvc5项目,有的同学听了这句话就兴高采烈的拿起Visual Studio 2015创建了一个mvc 5的项目,然后部署到Mono上,浏览下发现一堆错误出现,心中一万只草泥马奔腾而来,这也叫支持吗,这个问题是Visual Studio造成的,不相信的话可以使用Xamarin.Studio创建的asp.net项目,部署过程非常顺利,没有遇到什么问题;本文就是为你解开这个结,如何Visual Studio 2015搞定ASP.NET MVC 5项目的跨平台开发。

vs2015新建一个asp.net的项目(目标框架是.net4.5),选择mvc,并且更改身份验证为不适用身份验证。

编译,并发布到jexus,访问之。报出的错误信息如下图。

Could not find file "/var/www/mvcdemo/bin\roslyn\csc.exe". 这一行告诉了我们找不到roslyn 的c# 编译器, 当前版本的Mono 的编译器还是Mono的mcs编译器,并没有完成到roslyn 这个编译器的升级工作,这个工作正在进行过程中,在不远的将来就可以统一使用roslyn。

解决这个问题的方法就是用Mono的mcs编译器,项目上右键管理NuGet程序包,打开管理器,按顺序卸载以下两个组件:

l Microsoft.CodeDom.Providers.DotNetCompilerPlatform

l Microsoft.Net.Compilers

重新发布到jexus,通过浏览器可以看到清新的Bootstrap界面了, mono 4.4.2版本目前对mvc5的兼容性相当好了。

其他的兼容性问题都是Windows/Linux的差异,比如大小写和路径问题等,例如从Nuget上下载下来的System.Web.Webpages.dll 几个相关的dll 中间的pages 那个p是小写的,需要变成大写。Bootstrap等几个前端框架里面也有一些不区分大小写的,有一些样式无法显示,我把Jexus的不区分大小写打开就好了。

在jexus中,只需要把 /usr/jexus/jws这个脚本文件中的 “export MONO_IOMAP=...”这一句前边的“#”去掉,就可以不区分大小写了。

[root@TENCENT64 /usr/jexus]# vi jws

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏walterlv - 吕毅的博客

使用 PowerShell 获取 CLR 版本号

2017-09-27 16:24

871
来自专栏张善友的专栏

PowerShell的开源实现

从Mono老大的blog上Open Source Powershell Implementation 看到了一个PowerShell的开源实现的项目Pash。目...

2006
来自专栏张善友的专栏

用schemaSpy制作数据库文档

Schemaspy是一款Java开发的数据库文档生成工具,是开源的。生成的数据库文档非常的漂亮,实用。最近探索了两天终于会使用这个工具了。我接触到这个工具是在开...

2355
来自专栏安恒信息

微软2018年3月补丁更新的安全漏洞预警

1.漏洞公告 2018年3月13日,微软发布了本月安全更新补丁,其中包含一个CredSSP远程代码执行漏洞的补丁更新,对应CVE编号:CVE-2018-0886...

7378
来自专栏程序员与猫

ASP.NET Core 介绍和项目解读

标签: ASP.NETCore 1. 前言 作为一个.NET Web开发者,我最伤心的时候就是项目开发部署时面对Windows Server上贫瘠的解决方案...

2496
来自专栏walterlv - 吕毅的博客

MSBuild/Roslyn 和 NuGet 的 100 个坑

发布于 2018-07-04 13:29 更新于 2018-09...

1872
来自专栏DeveWork

代码编辑器Sublime Text 3 免费使用方法与简体中文汉化包下载

Sublime Text这款代码编辑器是Jeff 一直都在使用的,前段时间转用到版本3,因为感觉Sublime Text 3 启动速度更加快,运行更加流畅——虽...

21410
来自专栏张善友的专栏

VMware Player测试Mono应用

最新版本的Mono完全支持.net 1.1的所有功能,.net 2.0的功能还没有完全实现。而且Novell新推出的操作系统SUSE Linux Enterpr...

2096
来自专栏Windows Community

Windows Developer Day - MSIX and Advanced Installer

前面一篇我们介绍了 Adaptive Cards 的基础知识,而在 Windows Developer Day 的 Modern Application Exp...

3146
来自专栏张善友的专栏

.NET Core系列 : 2 、project.json 这葫芦里卖的什么药

.NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门 介绍了.NET Core环境,本文介绍.NET Core中最重要的一个配置文件p...

2408

扫码关注云+社区

领取腾讯云代金券