Mac OS X Mono ASP.NET 和 C# 编译过程

问题描述 投票:0回答:1

大家好,我正在尝试(暂时!)在我的 iMac 上进行一些 ASP.NET 和 C# 编译。

哈哈,在 iMac 上尝试这样做真是太有趣了,感觉如此..错了!

无论如何,我认为 Mono 是实现此目的的最佳方法。

我有一个简单的 ASP.NET 页面,其中包含以下代码:

1  <%@ Page Language="C#" %>    
2  <html>    
3  <head>    
4  <title>Planting Trees</title>    
5  <script runat="server">    
6    protected void Page_Load(Object Source, EventArgs E)    
7    {    
8      string msg = "Let's plant some trees!<br/>";    
9    
10     // Create a new Tree    
11     Tree tree1 = new Tree();    
12    
13     msg += "I've created a tree with a height of " +    
14       tree1.height + " metre(s).<br/>";    
15    
16     tree1.Grow();    
17    
18     msg += "After a bit of growth, it's now up to " +    
19       tree1.height + " metre(s) tall.<br/>";    
20    
21     Tree tree2 = new Tree();    
22     Tree tree3 = new Tree();    
23     tree2.Grow();    
24     tree3.Grow();    
25     tree2.Grow();    
26     tree3.Grow();    
27     tree2.Grow();    
28     msg += "Here are the final heights:<br/>";    
29     msg += " tree1: " + tree1.height + "m<br/>";    
30     msg += " tree2: " + tree2.height + "m<br/>";    
31     msg += " tree3: " + tree3.height + "m<br/>";    
32    
33     Output.Text = msg;    
34   }    
35 </script>    
36 </head>    
37 <body>    
38 <p><asp:label runat="server" id="Output" /></p>    
39 </body>    
40 </html>

现在,我有这个简单的 C# 类来配合它:

// Tree.cs, A simple C# class

public class Tree {

  public int height = 0;

  public void Grow() {
    height += 1;
  }
}

现在,ASP.NET 页面位于我的 iMac 上的主目录中,.cs C# 类文件位于主目录中的

bin
下。

现在,我不是 100% 确定,但是我是否需要将

.cs
编译为
.dll
才能正常工作?

如有任何建议,我们将不胜感激!

c# asp.net macos mono
1个回答
1
投票

您需要设置 mod_mono,这样您实际上就有一个应用程序服务器来提供页面。

也就是说,您是对的,您需要将 .CS 编译为 .NET 程序集 (DLL)。

我只能从 Windows 世界谈起,但我认为 Mono 世界也大致相同。您不能只编译您的类并让它运行 - ASP.NET Web 应用程序需要一些东西(例如 global.asax 和 web.config),以便它知道应该如何提供您的页面。

我不确定您使用的是什么 IDE,但您最好的选择可能是下载一个 simple Mono 示例 ASP.NET 应用程序并尝试填充您自己的代码。所有配置和生命周期功能一开始可能会令人望而生畏,老实说,当您还在玩弄页面和代码隐藏时,您甚至应该忘记它们的存在。

或者,您可以尝试浏览此 CodeProject:http://www.codeproject.com/KB/cross-platform/introtomono2.aspx

它已经过时了,但原理保持不变。

© www.soinside.com 2019 - 2024. All rights reserved.