2009-02-11 2 views
24

Краткая история. Этот сайт был создан моим другом, который не знал, что много C# или asp. И был сначала создан в VS 2k3. Когда я преобразовал его в VS 2k8 эти ошибки стали возникать, есть также другие проблемы, связанные с компиляции, что я сумел разобраться (Показалось, будет выпущен в VS 2k8 хотел файлы проекта) сообщениеСообщение об ошибке Parser: Файл '/TestSite/Default.aspx.cs' не существует

Ошибка получили:

An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.

Parser Error Message: The file '/TestSite/Default.aspx.cs' does not exist.

Source Error:

Line 1: <%@ Page Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="GuildStats._Default" %>

Line 2:

Line 3: <asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="Server">

Defaults.aspx.cs

namespace GuildStats 
{ 
    public partial class _Default : System.Web.UI.Page 
    { 

Defaults.aspx

<%@ Page Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="GuildStats._Default" %> 

Site.master.cs

namespace GuildStats 
{ 
    public partial class Site : System.Web.UI.MasterPage { } 
} 

Site.Master

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Site.master.cs" Inherits="GuildStats.Site" %> 

ответ

72

В Default.aspx изменения CodeFile к CodeBehind. Вероятно, вам придется сделать то же самое для Site.master.

См: проекты CodeFile and Code-Behind

+0

Как эта ссылка затрагивает эту проблему? Он упоминает атрибут CodeFile, но не CodeBehind. В документах MSDN указано, что CodeBehind устарел, поэтому я пытаюсь понять, почему переход на CodeBehind является решением. –

+3

Почему они продолжают менять имена ... Во всяком случае, это спасло мой день – Tanmoy

+0

спасибо, вы спасете мой день – Rev

12

Веб-сайта используют CodeFile, проекты веб-приложений используют CodeBehind. CodeFile требует исходный файл, он компилируется «на лету» при загрузке страницы, CodeBehind требует скомпилированного кода.

Я полагаю, что ваша проблема была создана при изменении типа проекта с WebApp на веб-сайт или наоборот. Если вы это сделаете, вам нужно вручную изменить директивы в существующих файлах, новые файлы будут иметь правильную директиву автоматически.

Смежные вопросы