Я только начал использовать SharpDevelop и пытаюсь преобразовать проект веб-сайта Visual Studio Express в проект SharpDevelop. Мне удалось создать прекрасное решение и проект внутри него. Между прочим, это проект веб-форм ASP.NET на C #. Просто простые aspx
страницы с внутренним кодом C # и .asmx
веб-сервисом. Ничего особенного и, по сути, довольно старомодного, отлично работающего в Visual Studio.
Мне нравится среда SharpDevelop, поэтому, пожалуйста, не отвечайте «почему бы вместо этого не использовать Visual Studio» (у меня есть причины). Но вот моя проблема:
SharpDevelop не связывает .aspx
файлы с их .aspx.cs
аналогами. Таким образом, вместо обозревателя решений, показывающего MyPage.aspx
, который вы затем расширяете, чтобы увидеть под ним MyPage.aspx.cs
, вы видите их как два отдельных отдельных файла, расположенных рядом друг с другом и не связанных между собой.
И когда я компилирую решение, я получаю сообщение об ошибке, потому что программный код не может привязать себя к странице aspx и не распознает имена элементов управления. (Пример ниже взят с моей страницы Contact.aspx, но это происходит на каждой странице, где у меня есть какой-либо элемент управления asp.net на стороне сервера).
The name 'EmailAddress' does not exist in the current context (CS0103) - Contact.aspx.cs:52,100
Теперь имейте в виду, что этого никогда не было в Visual Studio, поэтому что-то пошло не так в моем решении SharpDevelop. Ошибка возникает в любом месте выделенного кода (файл .aspx.cs), который относится к:
EmailComments.Text
Вещи, которые я уже проверил:
1) Директива @Page
верна, а имя Inherits
совпадает с именем класса.
2) Имена файлов .cs и .aspx и имена классов совпадают.
3) Версия .NET Framework - 4.5 (имеет ли это значение?)
4) Я пробовал явно объявлять элементы управления asp.net в выделенном коде, и да, это предотвращает ошибку, однако связь между файлами остается нарушенной, и почему мне все равно нужно объявлять элемент управления в фоновом коде? Никогда не использовал в Visual Studio, и там все работало нормально.
Как ни странно, во всем моем решении есть один файл, в котором нет этой проблемы (файлы aspx и aspx.cs связаны нормально), и это страница default.aspx
. В этом нет ничего особенного. Единственное, что я вижу, это то, что это имя файла в нижнем регистре, а остальные - в смешанном. (Конечно, это не актуально?)
Я был бы очень признателен за помощь от всех, кто знаком с SharpDevelop или, если это более общая проблема .net, сообщите мне. Мне кажется, что я забываю что-то базовое, что заставит меня работать.
Большое спасибо за любую помощь.
ОБНОВЛЕНИЕ: мне удалось связать файлы .aspx и .aspx.cs, выполнив следующие действия: Перетащите файл .aspx.cs в файл .aspx в проводнике решений. Сделайте это для каждой пары файлов. Затем сохраните и закройте решение и снова откройте, и они останутся связанными. НО, ошибка остается такой, как указано выше, потому что программный код не распознает элементы управления, упомянутые в нем.