3

09. 树莓派ASP.NET环境配置 - 刘哄红

 2 years ago
source link: https://www.cnblogs.com/lhonghong/p/16177079.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

在树莓派上部署ASP.NET环境(树莓派做ASP.NET项目服务器),之后Windows上开发的ASP.NET项目可以部署在树莓派上。配置过程如下:

前言:本篇文章内容是根据mono官网上查阅的配置教程所写,当时做期末课设的时候一边查翻译一边配置(好像当时访问这个网站还要禾斗学上网),最终亲身试验可以用,随后在word上做了配置过程笔记,现在搬上来。

  mono教程官网网址:https://www.mono-project.com/download/preview/#download-lin-raspbian

  1. 安装Mono。Mono是Xamarin公司开发的一个跨平台.NET运行环境。安装Mono是必不可少的一个关键步骤。

  2. 在安装前,先查看下树莓派系统的版本

lsb_release  -a

  3. 记住红框中的这个版本号

  4. 将Mono存储库添加到系统(看你系统版本,选一个安装)注意:这些软件包应该在较新的Raspbian版本上工作,仅测试以下列出的版本。

  Raspbian 10:

sudo apt install apt-transport-https dirmngr gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/debian stable-raspbianbuster main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update

  Raspbian 9:

sudo apt install apt-transport-https dirmngr gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/debian stable-raspbianstretch main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update

  5. 安装单声道(mono)

    1)安装软件包mono-devel来编译代码。

sudo apt install mono-devel

    2)安装mono-complete软件包才能安装所有内容-这应涵盖大多数“找不到组件”错误的情况。

sudo apt install mono-complete

    3)安装软件包mono-dbg以获得框架库的调试符号-允许您获取堆栈跟踪中的行号。

sudo apt install mono-dbg

    4)安装软件包referenceassemblies-pcl以获得PCL编译支持-这将解决软件编译过程中大多数“未安装框架:.NETPortable”错误的情况。

sudo apt install referenceassemblies-pcl

    5)安装软件包ca-certificates-mono以获得HTTPS连接的SSL证书。如果在建立HTTPS连接时遇到麻烦,请安装此软件包。

sudo apt install ca-certificates-mono

    6)安装软件包mono-xsp4来运行ASP.NET应用程序。

sudo apt install mono-xsp4

  笔记:默认情况下,3.12之前的Linux上的Mono不信任任何SSL证书,因此在访问HTTPS资源时会出错。不再需要此功能,因为3.12及更高版本包含一个新工具,该工具可在软件包安装时运行,并将Mono的证书存储与系统证书存储同步(在较旧的版本上,您必须通过运行导入Mozilla的受信任证书列表mozroots --import --sync)。某些系统的配置方式使得在安装Mono时不会引入必要的软件包,在这种情况下,请确保ca-certificates-mono已安装软件包。

  6. 验证安装。安装Mono之后,最好需要运行一个快速的Hello World程序以确保正确设置了所有程序。这样,在尝试编写或运行更复杂的应用程序时,您知道Mono是正常的。

    1)控制台Hello World

    要测试基本功能是否可用,请将以下代码复制到名为hello.cs的文件中。没有这个文件就在你喜欢的位置新建个。

using System;

public class HelloWorld
{
    public static void Main(string[] args)
    {
        Console.WriteLine ("Hello Mono World");
    }
} 

    使用csc命令编译:

csc hello.cs   

    注意:csc编译器并非在所有平台上或在非常旧的Mono版本中都可用,在这种情况下,请改用mcs。  

    编译之后,编译器将创建“ hello.exe”,您可以使用以下命令运行它:

mono hello.exe

    该程序应运行并输出:Hello Mono World

    2)HTTPS连接。

    为了确保HTTPS连接正常运行,请运行以下命令以检查是否可以连接到baidu.com

csharp -e 'new System.Net.WebClient ().DownloadString ("https://www.baidu.com")'

    如果一切正常,该程序将打印网站的html代码,否则将抛出异常。

    3)WinForm's Hello World

    以下程序测试编写System.Windows.Forms应用程序 

using System;
using System.Windows.Forms;

public class HelloWorld : Form
{
    static public void Main ()
    {
        Application.Run (new HelloWorld ());
    }

    public HelloWorld ()
    {
        Text = "Hello Mono World";
    }
}

    要进行编译,请使用带有-r选项的csc来告诉编译器提取WinForms库:

csc hello.cs -r:System.Windows.Forms.dll

    编译器将创建“ hello.exe”,您可以使用以下命令运行它:

mono hello.exe

    4)ASP.NET Hello World   

    创建一个名称为WebForm1.aspx的文本文件并添加内容:

<%@ Page Language="C#" AutoEventWireup="true"%>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>Sample Calendar</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:calendar showtitle="true" runat="server"></asp:calendar>
        </div>
    </form>
</body>
</html>

    然后从该文件目录运行xsp4命令:(先cd打开文件目录)

xsp4 --port 9000

    5)Gtk#Hello World

    以下程序测试编写Gtk#应用程序。

using Gtk;
using System;

class Hello
{
    static void Main ()
    {
        Application.Init ();

        Window window = new Window ("Hello Mono World");
        window.Show ();

        Application.Run ();
    }
}

    要进行编译,请使用带有-pkg选项的mcs来告诉编译器引入Gtk#库(请注意,必须在系统上安装Gtk#才能起作用):

mcs hello.cs -pkg:gtk-sharp-2.0

    编译器将创建“ hello.exe”,您可以使用以下命令运行它:

mono hello.exe

  7. 查看Mono版本信息

mono -V

  8. 安装libgdiplus

  Libgdiplus是一个Mono单声道库,用于对非Windows操作系统提供GDI+兼容的API。libgdiplus是mono中的System.Drawing依赖的一个组件,用于显示web页面基本颜色等。

  后面发现,装Mono时,libgdiplus就被默认安装了,要想手动安装可运行下面的命令试试

sudo apt install libgdiplus

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK