У меня есть веб-форма asp.net.
Код:
Public Class WebForm1
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
End Class
Разметка для страницы такая:
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm1.aspx.vb"
Inherits="WebHotelDisplay.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
Hello
<br />
<br />
</form>
</body>
</html>
Когда я пытаюсьчтобы скомпилировать проект, я получаю следующее:
Ошибка BC30002 Тип 'Global.WebHotelDisplay.WebForm1' не определен.
Проект настроен на .net 4.5. Используя VS Community Edition 2019
Я не могу избавиться от этой ошибки компиляции
Редактировать
Если я попытаюсь предложить ниже (удалить квалификатор пространства имен), иизменить:
Inherits="WebHotelDisplay.WebForm1"
на:
Inherits="WebForm1"
Тогда ошибка компиляции НЕ УДАЕТСЯ. Однако, если я попытаюсь запустить приложение, мы получим эту ошибку:
Parser Error
Description: 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: Could not load type 'WebForm1'.
Source Error:
Line 1: <%@ Page Language="vb" AutoEventWireup="false"
CodeBehind="WebForm1.aspx.vb" Inherits="WebForm1" %>
Line 2:
Line 3: <!DOCTYPE html>
Source File: /WebForm1.aspx Line: 1
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET
Version:4.8.4042.0
Я должен отметить, что если я открою проект в vs2013, то ошибка исчезнет.
Я будуТакже обратите внимание, что если я оставлю в квалификаторе пространства имен, то ошибка действительно отображается, но веб-страница работает. Итак, я вижу ошибку в vs2019, но приложение и веб-страница отображаются.
Edit 2
Если я изменю (по умолчанию) определение класса на Partial, как предложено, тоошибка уходит. Это возможный обходной путь, но если у вас много веб-страниц, то при использовании vs2019 это значительное количество редактирования и работы с совершенно хорошим кодом. Я не видел в Интернете ничего, что предлагало бы удалить пространство имен в разметке страницы, а затем изменить сгенерированный по умолчанию класс веб-формы на Partial. Пока что это единственное известное решение этой проблемы. Я должен отметить, что тот же проект (созданный в vs2019), если он открыт в vs2013, не имеет ни этой ошибки, ни этой проблемы.
Редактировать 3
После тестирования и пробовать все возможное, я переустановил vs2019, и проблема исчезла. Так что, возможно, некоторые настройки конфигурации были в vs2019, но я так и не смог найти реальное исправление. Тем не менее, переустановка vs2019 (версия для сообщества) была возможным исправлением. Я часто задаюсь вопросом, исправила ли бы это перезагрузка компьютера, так как повторная установка vs2019 потребовала перезагрузки. Несмотря на это, исправление в этот момент было переустановить vs2019.