Xubuntu缺少ASP.NET的Monodevelop

我正在运行XUbuntu 16.04,我安装了mono-complete和monodevelop。 但是当我运行Monodevelop时,我无法创建一个Web项目。 好像没有安装ASP.NET。

我该如何安装ASP.NET? 谢谢

我也有这个问题。 顺便说一句,MonoDevelop(带有ASP.NET加载项)在Ubuntu 14.04和14.10中仍然可以正常工作,所以我不确定是什么改变了它使它在Ubuntu 16.04中不起作用。

在我的情况下,这足以让我离开Ubuntu并转到Fedora(我的Mono / ASP.NET应用程序使用CentOS服务器)。 Fedora 23完美地运行MonoDevelop与ASP.NET和NUnit,开箱即用。

几周前我在Stack Overflow上发现了一个关于此问题的问题,我注意到它刚刚得到了声称他们已经找到解决方案的人的回复: https : //stackoverflow.com/questions/36101232/asp-net-模板未找到安装后,MonoDevelop的-IDE-ON-Ubuntu的16-04

更新:上述SO链接已确认此问题的解决方案。 我已经创建了一步一步的解决方案(感谢Abu的原始post),它将引导您完成它。

更新2:我已经在我的网站上将其写成博客文章,所以希望这会引起对这个问题的进一步关注,这在LTS中确实不应该发生。 完整的post是https://brendaningram.com/article/how-to-fix-monodevelop-on-ubuntu-16-04/

这是解决问题的方法:

首先,使用以下命令进行设置,这些命令符合官方的Mono安装说明,但是从wheezy到alpha的更改。

 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF echo "deb http://download.mono-project.com/repo/debian alpha main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list sudo apt-get update 

然后,安装Mono本身:

 sudo apt-get install mono-devel mono-complete ca-certificates-mono mono-xsp4 

然后,安装特定版本的MonoDevelop,它为您提供了一个有效的ASP.NET加载项:

 sudo apt-get install monodevelop=5.10.0.871-0xamarin2 

显然,我对这个解决方案并不完全满意。 像Ubuntu这样的主流发行版(特别是他们目前的LTS)不应该有这些回归问题。 但是,我们至少可以解决这个问题。

值得注意的是,Fedora Workstation 23具有开箱即用的Mono / MonoDevelop / ASP.NET环境。 虽然我以前是Debian / Ubuntu的用户,但这个问题足以让我转到Fedora,在那里我很乐意在没有一个bug或其他问题的情况下工作。 我会留在Fedora吗? 这是不确定的,但找到一个令人愉快和稳定的Ubuntu替代品当然是一种乐趣。

最好的方法是从源代码编译MonoDevelop,因为官方的6个发行版在flatpak沙箱中运行。 如果你正在开发那些不能在沙盒中运行的东西,那就太糟糕了。 这是一个非常好的教程,如何从源代码构建,它的工作原理:

以下是此博客文章中的步骤,其中包含完整的详细信息:

 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list 

(不要担心存储库名称 – 该post特定于Ubuntu 16.04及更高版本)

 sudo apt update && sudo apt upgrade 

获取依赖项

 sudo apt install -y autoconf automake cmake fsharp git gnome-sharp2 gtk-sharp2 libssh2-1-dev mono-complete referenceassemblies-pcl zlib1g-dev 

现在cd到你要安装的目录,例如~/Apps/MonoDevelop并将源克隆到它

 git clone https://github.com/mono/monodevelop.git --branch monodevelop-6.1.2.44 --depth 1 6.1.2.44 

在这个例子中,我们获得了MonoDevelop 6.1.2.44,但也可以获得其他版本。 可以在发布页面上找到已发布版本的列表。

命令中的最后一个选项是源代码所在目录的名称。 因此,运行此命令后,将出现一个名为6.1.2.44的新目录。 这个目录结构允许我们同时使用多个MonoDevelop版本。 例如:

 ~/Apps/MonoDevelop/6.1.2.44 ~/Apps/MonoDevelop/6.2.0.1499 

cd到一个目录,其中包含您要构建的MonoDevelop版本

 cd ~/Apps/MonoDevelop/6.1.2.44 

配置构建

 ./configure --profile=stable --enable-release 

构建MonoDevelop:

 make 

有时,构建可能会失败,因为无法找到某些NuGet包。 该错误可能与此类似:

 mono .nuget/NuGet.exe restore Unable to find version '2.8.2' of package 'NuGet.CommandLine'. Unable to find version '2.6.4' of package 'NUnit.Runners'. Makefile:1124: recipe for target 'restore-packages' failed 

在这种情况下,恢复NuGet包:

 mono main/external/nuget-binary/nuget.exe restore main/Main.sln 

然后再试一次

假设构建成功完成,我们现在可以从目录运行MonoDevelop

 make run 

有关创建.desktop文件以便轻松启动的步骤,请参阅此处的链接(或此处的其他post)。 示例.desktop文件内容:

 [Desktop Entry] Type=Application Terminal=false Icon=/home/USER/Apps/MonoDevelop/6.1.2.44/main/theme-icons/GNOME/monodevelop-48.png Name=MonoDevelop Exec=make --directory /home/USER/Apps/MonoDevelop/6.1.2.44 run X-Ayatana-Desktop-Shortcuts=6.1.2.44;6.2.0.1499 [6.1.2.44 Shortcut Group] Name=6.1.2.44 Exec=make --directory /home/USER/Apps/MonoDevelop/6.1.2.44 run [6.2.0.1499 Shortcut Group] Name=6.2.0.1499 Exec=make --directory /home/USER/Apps/MonoDevelop/6.2.0.1499 run