目前測試的版本是 SharpDevelop 3.0 beta,開發 ASP.NET 1.1 的 web application 是沒有問題,如果是 ASP.NET 2.0 的寫法在compile 時會不過,範例如下:(只節錄部份)
Default.aspx
<%@ Page
Language = “C#”
AutoEventWireup = “false”
CodeFile = “Default.aspx.cs”
Inherits = “Web.Default”
ValidateRequest = “false”
EnableSessionState = “false”
%>
<asp:Label id=”label1″ text=”On” runat=”server” />
<asp:Button id=”button1″ text=”Toggle” runat=”server” onclick=”button1Clicked” />
Default.aspx.cs
namespace Web {
public partial class Default : Page
{
protected void button1Clicked(object sender, EventArgs e) {
label1.Text=”Off”;
}
}
以上程式 SharpDevelop 在 compile 時會有 label1 變數未定義的錯誤,但是這的確是 MSDN 建議從 ASP.NET 1.1 migrate 到 ASP.NET 2.0 的寫法。目前看到解決的方法是,在 codefile 所指定的程式檔按滑鼠右鍵選 Properties,將 Build action 設為 None,讓 IIS 收到 request 再去 compile 就可以正常運作了。