2012-07-03 60 views
4

我有一個展示最奇怪行爲的頁面。在構建/調試我的項目時,我有時會收到指向我的頁面指令的構建錯誤。ASP.NET頁面指令導致錯誤

如果我在指令中的任何兩個屬性之間插入一個額外的空間,錯誤消失並且構建成功。

頁面指令:

<%@ Page Language="C#" AutoEventWireup="true" EnableSessionState="true" CodeBehind="myPage.aspx.cs" Inherits="com.mycompany.UserControls.myPage" %> 

導致的誤差:

Keyword, identifier, or string expected after verbatim specifier: @ C:\mypath\myPage.aspx 1 1 myProjectName 

A namespace cannot directly contain members such as fields or methods C:\mypath\myPage.aspx 1 1 myProjectName 

要重申的是,例如,PageLanguage="C#"之間增加一個額外的空間暫時清除錯誤。我將在下一次構建中看到100%的成功率,但最終會重新出現錯誤。我經常可以通過關閉顯示myPage.aspx並編譯/重建我的項目的編輯器來強制執行錯誤。

注:這種現象存在於Visual Studio 2008中,並仍然是一個切換到Visual Studio 2010中

編輯後:更正錯字其中@從有關頁面指令省略。

任何想法?

+0

你最終找到了問題?遇到同樣的問題,如果我打開頁面,就無法構建項目,但如果關閉它,一切編譯都會正常進行。 – Alex

回答

3

您是否缺少開頭的<%和Page關鍵字之間的@符號? 你有

<% Page Language="C#" AutoEventWireup="true" EnableSessionState="true" CodeBehind="myPage.aspx.cs" Inherits="com.mycompany.UserControls.myPage" %> 

,它應該是

<%@ Page Language="C#" AutoEventWireup="true" EnableSessionState="true" CodeBehind="myPage.aspx.cs" Inherits="com.mycompany.UserControls.myPage" %> 
+0

+1,因爲你是正確的。不幸的是,這只是一個錯字,因爲我是從一個氣隙系統複製的。問題仍在。 – xelco52

+0

這是一個網站項目還是一個Web應用程序項目?我發現在Web應用程序項目試圖編譯網站頁面(沒有設計器文件的頁面)的代碼行中引發異常/錯誤時出現類似問題。 – Richthofen

+0

嗯,我認爲這兩個是不一致的,或者我以前的評論不清楚。如果你通過在Visual Studio中打開「Open Website」來打開一個.NET'網站',它期望不會看到設計器文件,對吧?只有當你打開一個'項目'應該顯示它。 – Richthofen

1

你丟失的@符號在你<%@頁......

+0

+1,因爲你是正確的。不幸的是,這只是一個錯字,因爲我是從一個氣隙系統複製的。問題仍在。 – xelco52

相關問題