Как автоматически преобразовать классы VS2003 в частичные файлы Designer.cs? - PullRequest
9 голосов
/ 18 апреля 2009

Я обновляю проект с Visual Studio 2003 до 2008 и хочу автоматически сгенерировать XXX.Designer.cs файлы и обновить соответствующий XXX.cs оригинальный.

Какой-нибудь автоматический способ сделать это?

ОБНОВЛЕНИЕ : Я имею в виду WinForms. Конечно, я знаю, что работает старый стиль, но я ищу способ перейти к новому стилю, не делая это вручную.

Ответы [ 4 ]

3 голосов
/ 06 сентября 2010

Существует макрос с плавающей точкой, который делает это. Я использовал его, и он прекрасно работает. Начните с просмотра Блог Натана Джонса . Если вам не повезло, скачайте zip исходного макроса (я писал) с VSCONVERT - PasteBin

1 голос
/ 18 апреля 2009

Оригинальные классы будут продолжать работать - даже с дизайнером Visual Studio. Код, который VS помещает в классы Designer, просто предназначен для удаления «шума» конструктора в отдельный файл, чтобы вы могли сосредоточиться на невизуальном коде в своем классе.

После переноса проекта в VS2008 с помощью мастера вы можете открыть свои формы в VS и продолжить редактировать их, как вы делали это раньше. Любые новые формы, которые вы создаете, получают файлы Designer backer.

1 голос
/ 19 апреля 2009

У нас была эта проблема.

По сути, файл конструктора не должен содержать ничего, кроме набора объявлений объектов (то есть объектов в форме) и вызова InitializeComponent (). Если вы сделали какую-то необычную работу над вашим конструктором, она может быть там же.

Просто создайте файл с именем MyForm.Designer.cs и добавьте его в проект. VS2008 автоматически поместит его под MyForm.cs. Оттуда, если вы создадите частичный заголовок класса и пространство имен, а затем скопируете все объявления и вызов Initializecomponent в файл конструктора, он будет работать.

Но поскольку в случае необходимости люди могли бы отредактировать initializecomponent, а также отредактировать конструктор по умолчанию, VS2005 и 2008 не смогли автоматически обновить эти файлы, поскольку могут происходить всевозможные странные вещи. Я думаю, с точки зрения проекта, какую выгоду, по вашему мнению, ваш рабочий код извлечет из разделения?

0 голосов
/ 18 апреля 2009

Я не уверен, что понимаю, но я сделаю предположение.

Был ли это проект ASP.NET в VS2003? В нем были файлы .Designer.cs? Это тот случай, когда вы выполнили обновление, но обнаружили, что у вас нет файлов .Designer.cs сейчас?

Если это так - возможно, вы случайно изменили проект веб-приложения на «проект» веб-сайта. Такого рода «проект» был представлен в VS2005, так что вы бы его еще не видели. Это не настоящие проекты (без файла .csproj), и у них много других отличий.

В противном случае, если в вашем проекте раньше не было файлов .Designer.cs, зачем вам их сейчас?

Как правило, способ создания файлов дизайнера - открыть файл в дизайнере, подождать несколько секунд, пока дизайнер завершит свою работу (обновление экрана и т. Д.); а затем сохранить файл. Возможно, вам придется «дотронуться» до оригинала, чтобы дизайнер пересмотрел вещи.

...