0 / 0 / 0
Регистрация: 05.11.2015
Сообщений: 33
|
|
1 | |
Портирование приложения на другой компьютер05.11.2015, 18:47. Показов 543. Ответов 2
Метки нет Все метки)
(
Здравствуйте.
Долго искал что сделать, чтобы портировать получившийся релиз на другие ПК. Приложение разрабатывалось в VS2010 как проект CLR->Windows Form Application в ОС Windows 8. Соответственно, в настройках компилятора значится /clr:pure, поэтому изменить параметры кодогенерации с /MD (динамическая линковка библиотек) на /MT (статическая линковка библиотек) не увенчалась успехом. В итоге на целевой компьютер (Windows XP) поставил .NET 4, vsredist_x86. После этого приложение все равно грязно ругалось и выдавало какую-то там ошибку. После просмотра обращений к файлам через утилиту Русиновича скопировал все dll из папки, где фигурировало слово .NET. И чудо - прога заработала. Как выяснилось позже, необходима была лишь библиотека Microsoft.VisualBasic.PowerPacks.Vs.dll, которую я запихнул в папку с приложением. Все бы хорошо, прога работает, даже как надо работает, но вот только поползло оформление формы. Прикладываю скрин приожения, слева - в разрабатываемой системе (Windows 8), справа - на целевой машине (Windows XP). Причем заметно, что, например, кнопки и элементы Label приняли "местные" позиции и почему-то уменьшились, а вот линии (элементы lineShape) решили отрисовываться как раз по тем же позициям, что и в основной системе. Пробовал запускать приложение на 3-й машине - в ОС Windows 7, тоже самое, что и в Windows XP. Подскажите, из-за чего поползло оформление формы и как это поправить?
0
|
|
05.11.2015, 18:47 | |
Ответы с готовыми решениями:
2
Перенос приложения с БД на другой компьютер
Перенос приложения на другой компьютер Перенос приложения с БД на другой компьютер |
Администратор
![]() |
|
06.11.2015, 08:07 | 2 |
Можно предположить, что на используемых вами Win 8 и XP разный DPI.
К сожалению, это одно из слабых мест в Windows Forms; можете попробовать установить AutoScaleMode = DPI для всех форм и там, где это возможно, поместить контролы в контейнеры, такие как FlowLayoutPanel и TableLayoutPanel . Но это помогает не всегда, приходится вручную двигать контролы для разных настроек DPI.
1
|
0 / 0 / 0
Регистрация: 05.11.2015
Сообщений: 33
|
|
06.11.2015, 14:40 [ТС] | 3 |
Спасибо за ответ!
Поковырялся с этим параметром для основной формы (по умолчанию параметр был Font): AutoScaleMode = DPI DPI не прокатило, а вот выставление параметра None дало нужный результат: AutoScaleMode = None В итоге все нормально отрисовалось в WinXP, больше ничего изменять не пришлось, только этот параметр в основной форме.
0
|
06.11.2015, 14:40 | |
Помогаю со студенческими работами здесь
3
Установка приложения на другой компьютер Перенос приложения с БД SQLite на другой компьютер Qt5 Перенос приложения на другой компьютер Перенос Qt приложения на другой компьютер (linux) Проблема при переносе приложения на другой компьютер Установка приложения и базы данных на другой компьютер Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |