У меня есть веб-сайт ASP.NET 3.5 (жаргон визуальной студии), но он продолжает расти и, среди прочего, выглядит довольно ковбойским. Я хотел бы, чтобы это было преобразовано в веб-приложение (пространства имен и все такое).
Можно ли это легко сделать в Visual Studio? Если нет, то есть ли какие-нибудь другие инструменты, которые могли бы автоматически создавать все пространства имен и т. Д.?
asp.net
visual-studio
web-applications
RSolberg
источник
источник
Ответы:
источник
Пошаговое руководство: преобразование проекта веб-сайта в проект веб-приложения в Visual Studio в MSDN
Если ваш сайт-приложение разрастается ... лучше разбить его на несколько проектов. Преобразование проекта веб-сайта в проект веб-приложения не сильно поможет.
источник
Если у вас возникли проблемы с созданием нового проекта веб-приложения, проверьте свойства файла в Visual Studio всех «вспомогательных» классов. Для проекта, который я преобразовывал, Build Action был установлен на Content, тогда как он должен был быть Compile.
источник
Я успешно перенес один проект веб-сайта в веб-приложение, и есть несколько ошибок, на которые следует обратить внимание.
Наличие в вашем распоряжении ReSharper очень помогает в рефакторинге файлов aspx.
public partial class FolderName_Projectname : Page
Если необходимо, переименуйте все файлы с помощью Resharper или вручную. Если вы столкнулись с несколькими ошибками, например"There is already a member Page_Load() defined"
, это, скорее всего, связано с неправильными именами классов и дублированиемЗамените
CodeFile
все aspx-страницыCodebehind
на файлы в вашей подпапке и особенно обратите внимание на них. Убедитесь, чтоInhertis=""
не указан относительный путь. Ваши пространства имен позаботятся обо всем. Итак, правильный форматInherits="Namespace.classname"
. Если у вашего класса есть пространство имен NaSpa и имя файла foo.cs, это будетInherits="NaSpa.foo"
После того, как вы подготовили все свои файлы (не забудьте свои главные страницы), запустите «Преобразовать в веб-приложение». Если после этого вы обнаружите ошибки, промойте и повторите. Если вы столкнулись с ошибками типа «TextBoxName не может быть найден, отсутствует ссылка», убедитесь, что вы не забыли очистить свои aspx-страницы. Хорошим индикатором является проверка автоматически созданных файлов дизайнера. Если
TextBoxName
не отображается там, преобразование не удалось полностью.источник
Создайте новое веб-приложение в VS 2010.
1. С помощью проводника Windows скопируйте все файлы в папку проекта.
2. В обозревателе решений VS 2010 отображаются все файлы.
3. Выберите файлы и папки - щелкните правой кнопкой мыши включить в проект.
4. Щелкните правой кнопкой мыши обозреватель решений проекта и выберите «Преобразовать в веб-приложение».
Есть довольно много небольших отличий, например, папка App_Code будет переименована в old_app_code, что на удивление не вызывает никаких ошибок. Для TypeName в источниках данных вашего объекта и наследуемых тегов @Page может потребоваться [ProjectName]. префикс добавлен глобально. Например, если имя вашего типа было «BusinessLogic.OrderManager», а имя проекта - InventorySystem, вам нужно будет изменить его на InventorySystem.BusinessLogic.OrderManager. Также некоторые изменения отображения, например, для валидаторов обязательных полей больше не используется красный шрифт по умолчанию, а по умолчанию черный.
источник
Первоначально я столкнулся с теми же проблемами. После ознакомления с книгой Wrox Professional ASP.NET 4.0 я нашел следующее решение для своего случая.
Сначала я создал новое веб-приложение. Скопировал все файлы сайта в папку веб-приложения. Щелкните приложение правой кнопкой мыши и выберите преобразовать в веб-приложение.
Вы можете спросить, зачем вам нужно преобразовывать веб-приложение в веб-приложение. Ответ таков: когда вы создаете веб-сайт, вы просто кодируете файл .cs там, где это необходимо. Однако веб-приложение автоматически объявляет файлы .design.cs (или .vb) и .cs для раздела кода и дизайна.
ДАЛЕЕ: Удалите все ручные ссылки, такие как атрибут «Наследует» в директиве PAGE, на другие файлы на вашем веб-сайте, поскольку пространства имен БУДУТ заботиться о централизованных ссылках на классы.
Я также столкнулся с проблемой, так как я не включил в свой проект папки OBJ и BIN. Если вы считаете, что вам не хватает папок BIN и OBJ, просто щелкните значок «Показать все файлы» в обозревателе решений, а затем щелкните правой кнопкой мыши отсутствующие папки и добавьте их в проект. (чтобы убедиться, что они компилируются с проектом.)
ОБНОВЛЕНИЕ: как отмечает @deadlychambers в комментариях: вы можете искать везде, нажимая «Ctrl + Shift + F», а затем искать
Inherits="(.*?)"
. Это найдет все вхождения и, вероятно, сэкономит вам время!источник
пространство имен ASP по умолчанию, похоже, больше не работает. Поэтому я не могу вызывать свои страницы User Controls.ascx извне. Предоставление им пространства имен и изменение значения по умолчанию с ASP на мое пространство имен, похоже, сработало.
источник