Wessel Beulink Ответов: 1

Проект VB форму resx в файл resx


Я столкнулся с проблемой, когда мы использовали visual studio 2015. У меня есть пара старых приложений windows form 2010 года с файлом resx внутри файла кода (.vb). Это делает компилятор очень медленным из-за дополнительных (2000-7000) строк.

Я хочу получить доступ к сгенерированному конструктором форм Windows коду внутри файла .vb вместо файла конструктора

Пример:

<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
      Me.OKButton = New System.Windows.Forms.Button
      Me.AppTitleLabel = New System.Windows.Forms.Label
      Me.GroupBox1 = New System.Windows.Forms.GroupBox
      Me.AppDescriptionLabel = New System.Windows.Forms.Label
      Me.AppVersionLabel = New System.Windows.Forms.Label
      Me.AppCopyrightLabel = New System.Windows.Forms.Label
      Me.SysInfoButton = New System.Windows.Forms.Button
      Me.AppDateLabel = New System.Windows.Forms.Label
      Me.ImagePictureBox = New System.Windows.Forms.PictureBox
      Me.DetailsButton = New System.Windows.Forms.Button


Этот код предназначен для всех приложений 2010 года в файле скрипта vb.
если я скопирую и вставлю это в отдельный файл конструктора, то создам новый конструктор форм windows. Есть ли у кого-нибудь решение, чтобы отделить это без (повторного)создания нового файла дизайна (инструмента или чего-то еще)?

Что я уже пробовал:

Скопируйте файл resx вручную.
Ищу на форуме решение.

Graeme_Grant

Разработчики жертвуют и жертвуют своим собственным временем бесплатно, чтобы помочь коллегам-разработчикам разрешить трудности. Важно, чтобы Вы были кристально ясны в том, что вы испытываете, с большим количеством информации, чтобы ваше и их время не было потрачено впустую. Чем яснее вопрос, тем больше шансов, что вы получите благоприятный ответ своевременно.

Пожалуйста, найдите время, чтобы просмотреть эти ссылки, прежде чем отправлять вопросы:
* Некоторые рекомендации по размещению вопросов на форумах[^]
* Сказки из Империи Зла-задавать вопросы-это навык[^]

Как только вы будете готовы обновить вопрос с четкими и краткими деталями, образцом кода, любыми сообщениями об ошибках (включая внутренние детали исключения) и т. д., Пожалуйста, нажмите на кнопку Улучшить вопрос чтобы добавить больше информации к этому вопросу.

Wessel Beulink

Конечно, я приведу пример. Thnx, надеюсь, теперь это лучше? У меня, к сожалению, нет никаких других ошибок или подробностей, это скорее устаревший проект.

CHill60

Я бы ожидал, что этот код будет находиться в файле designer.vb формы, а не в файле resx. Если вы удалите код, то это будет равносильно удалению элементов управления из формы.
Если компиляция занимает много времени, то это занимает много времени

Wessel Beulink

Извините, что вы правы, я имею в виду designer.vb, а не файл resx. Все мои проекты до vs 2013 не разделены в script.vb и script. designer.vb

CHill60

В этом случае вы определенно не хотите удалять этот код - если только вы действительно не хотите удалить элементы управления из формы. У меня есть VS2008 установлен и он создает форму form1.VB и на форму form1.Дизайнер.глаг. Сколько времени займет эта компиляция?

Wessel Beulink

Около 1-3 секунд для каждого файла. Несколько инженеров-программистов имеют здесь одну и ту же проблему. Больше всего раздражает функция автозавершения в visual witch, которая делает отладку/автозавершение иногда очень медленной. Кроме того, это не то оборудование, на котором мы все запускаем современную систему I7/ssd/32gb ram.

CHill60

Попробуйте изменить плагин управления версиями ... Инструменты, Опции. Затем измените "текущий плагин управления источником" на "нет".
Если вы используете Resharper, попробуйте приостановить его.
Попробуйте очистить раствор

Wessel Beulink

Не запускайте никаких плагинов управления версиями с помощью внешнего управления git. Также не установлен Решарпер.

CHill60

VS будет по умолчанию использовать VS Team Foundation Server - вы действительно проверили, что этот параметр установлен на "нет"

Wessel Beulink

Да, я поставил его на ноль. Но уже сделал это пару месяцев назад. Также установите количество ядер процессора на 6 вместо 2 по умолчанию, также никакого результата :(

Dave Kreskowiak

2000-7000 строк в сгенерированном дизайнером коде? Сколько элементов управления у вас есть в этой форме?

Wessel Beulink

Для многих, возможно, реконструкция этих "драконьих" форм - лучшее решение. Но я надеялся на менее срочное решение.

Dave Kreskowiak

Если у вас есть тысяча элементов управления на форме, у вас есть серьезная проблема с дизайном. Неудивительно, что все происходит так медленно.

Dave Kreskowiak

Если у вас есть тысяча элементов управления на форме, у вас есть серьезная проблема с дизайном.

1 Ответов

Рейтинг:
6

Richard Deeming

Разбиение формы на частичные классы-это то, что вам нужно. использованный чтобы иметь возможность сделать с помощью макроса[^Но, к сожалению, макросы были удалены в VS2012.

В CodeProject есть надстройка для VS2012 - я не уверен, что она будет работать в VS2015:
Надстройка Visual Studio для перемещения сгенерированного конструктором Windows Forms кода из файла. vb в файл. Designer. vb[^]

Существует также автономный инструмент, который утверждает, что поддерживает проекты VS2010:
DeCodEx | CoolSoft[^]

Если ни один из них не работает, вы всегда можете разделить файл вручную:
visual studio-Сплит старый .Чистый код в конструкторе частичный класс-переполнение стека[^]


Wessel Beulink

Собираюсь попробовать первое решение. Должен быть преобразован в расширение vsix. Попробую. Для CoolSoft инструмент не работает.

Wessel Beulink

Изменить автоматически созданный конструктором форм Windows код из .инструмент VB для проекта VSIX. Сработало как заклинание. Пока единственная проблема с пользовательскими элементами управления, но это будет Оке.