Xubuntu 上的 Monodevelop 缺少 ASP.NET

Xubuntu 上的 Monodevelop 缺少 ASP.NET

我正在运行 XUbuntu 16.04,并且安装了mono-completemonodevelop。但是当我运行 Monodevelop 时,我无法创建 Web 项目。似乎没有安装 ASP.NET。

我如何安装 ASP.NET?谢谢

答案1

我也遇到过这个问题。另外,MonoDevelop(带有 ASP.NET 插件)在 Ubuntu 14.04 和 14.10 中仍然可以正常工作,因此我不确定是什么变化导致它在 Ubuntu 16.04 中无法正常工作。

就我而言,这足以让我放弃 Ubuntu 并转向 Fedora(使用 CentOS 服务器来运行我的 Mono/ASP.NET 应用程序)。Fedora 23 开箱即用,完美运行 MonoDevelop 和 ASP.NET 以及 NUnit。

几周前我在 Stack Overflow 上发现了一个关于此问题的问题,我注意到有人刚刚回复说他们找到了解决方案:https://stackoverflow.com/questions/36101232/asp-net-template-not-found-after-installed-monodevelop-ide-on-ubuntu-16-04

更新:上面的 SO 链接中已确认此问题的解决方案。我创建了一个分步解决方案(感谢 Abu 的原始帖子),它将指导您完成此过程。

更新2:我已经在我的网站上发表了一篇博客文章,希望这能引起人们对这个问题的进一步关注,这在 LTS 中确实不应该发生。完整文章位于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

然后,安装可为您提供可用的 ASP.NET 插件的特定版本的 MonoDevelop:

sudo apt-get install monodevelop=5.10.0.871-0xamarin2

显然,我对这个解决方案并不完全满意。像 Ubuntu 这样的主流发行版(尤其是其当前的 LTS)不应该有此类回归问题。不过,我们至少已经解决了这个问题。

值得注意的是,Fedora Workstation 23 具有可立即使用的 Mono/MonoDevelop/ASP.NET 环境。虽然我以前是 Debian/Ubuntu 用户,但这个问题足以让我转向 Fedora,在那里我愉快地工作,没有出现任何错误或其他问题。我会继续使用 Fedora 吗?这还不确定,但找到一个令人愉快且稳定的 Ubuntu 替代品确实是一件令人高兴的事。

答案2

最好的方法是从源代码编译 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

(不要担心存储库名称 - 该帖子专门针对 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文件以便轻松启动的步骤。示例.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

相关内容