Файлы ресурсов изменяются при открытии формы в Visual Studio - PullRequest
8 голосов
/ 04 апреля 2011

Когда я открываю свое главное окно дизайна формы (файл C # в VS2010), связанный файл ресурсов автоматически изменяется, иногда его местоположение, иногда это данные для изображения или просто порядок кода переупорядочивается.Все по-прежнему компилируется и работает нормально, просто раздражает, что я должен помнить, чтобы отменить эти изменения, иначе я буду постоянно вкладывать в мой репозиторий бред.Кто-нибудь знает, почему это происходит, возможно, из-за какого-то компонента?

РЕДАКТИРОВАТЬ:

Например, эти данные:

 <data name="connectToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        somevalue
    </value>

Получает автоматически изменяется на:

 <data name="connectToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        someothervalue
    </value>

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

Ответы [ 2 ]

5 голосов
/ 03 марта 2016

если я не внесу какие-либо изменения в файл, то мне придется все зафиксировать

Довольно неясно точно что вы делаете, когда вы вынуждены фиксировать файл .resx, чтобы каким-то образом не превращать изображение в "бред". Жалоба не очень заслуживает доверия, я предполагаю, что реальная проблема заключается в том, что файл .resx изменяется, и вы не знаете, почему.

Существует все более распространенная причина изменения файлов .resx без какой-либо очевидной причины, достаточно просто открыть форму в конструкторе. Особенно в последнее время с Windows 10 становится все более распространенным. Основной причиной является настройка DPI (точек на дюйм) видеоадаптера. В течение десятилетий этот параметр оставался на уровне 100% (он же 96 точек на дюйм), но дешевые ЖК-панели с очень высоким разрешением стали обычным явлением, заставляя пользователей увеличивать масштаб до 125 или 150%, чтобы текст был разборчивым. А для установщика Win10 нужно выбрать более высокое значение.

Это довольно существенно влияет на дизайн пользовательского интерфейса, свойство Form.AutoScaleMode также работает во время разработки. Visual Studio поддерживает dpiAware, поэтому дизайнер может увидеть изменение DPI. WYSIWYG сохраняется, пока приложение объявлено dpiAware, а также . Очень важно, между прочим, в VS2015 Update 1, наконец, стало немного проще, теперь шаблон элемента File Manifest File включает его. Просто удалите комментарии.

Этот действительно также изменяет содержимое файла .resx. Специально для MenuStrip его TrayLocation сериализуется в файл. И метод OnImageScalingSizeChanged () пункта меню выполняется во время разработки. Также для любого элемента управления, если для свойства Localizable формы установлено значение True, эти свойства Location и Size сериализуются в файл .resx.

Самый простой способ понять, что является основной причиной, - это посмотреть файл формы Designer.cs:

  this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);

Сравните это с тем же назначением свойства в новом проекте Winforms. Другое значение заставит автоматическое изменение масштаба выполнять свою работу и изменить файл .resx.

Обычной причиной несоответствия является дизайн, созданный на другом компьютере. Возможно, старше. Или, возможно, изменен другим членом команды, который запускает свой адаптер дисплея с другим параметром DPI. Добиться, чтобы все согласились, обычно не так просто, если у членов команды нет одинакового оборудования. Предоставление всем одинакового хорошего монитора - отличное улучшение морали за небольшие деньги :) И, возможно, вам не стоит так сильно с этим бороться, просто отметьте его, чтобы вам больше не напомнили в следующий раз.

0 голосов
/ 07 марта 2016

Просто добавьте эти файлы в ваш файл .gitignore. (если вы используете git)

Вот как выглядит моя:

**. Суо **. Бен **. OBJ ** бен ** OBJ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...