Как удалить текст «Добро пожаловать в мастер установки» из проекта установщика Visual Studio - PullRequest
9 голосов
/ 02 сентября 2011

У меня есть проект установщика Visual Studio, который я делаю в Visual Studio 2010, и я не могу понять, как удалить текст «Добро пожаловать в мастер установки [Имя продукта]» из диалоговых окон мастера.

Например: как удалить текст «Добро пожаловать в мастер установки Setup1» со скриншота ниже?

enter image description here

Ответы [ 6 ]

7 голосов
/ 01 сентября 2012

Вы можете «удалить» текст, удалив диалоговое окно приветствия и заменив его настраиваемым диалоговым окном. В VS 2005 -

  1. Щелкните правой кнопкой мыши проект установки в обозревателе решений
  2. Выбор вида - Интерфейс пользователя
  3. В группе «Пуск» для установки и административной установки удалите «Welcome»

Затем вы можете добавить в проект диалоговое окно «Текстовые поля (A)» (щелкните правой кнопкой мыши группу «Пуск» и выберите «Добавить диалог»), установите для свойства visible для текстовых полей значение false. Переместите текстовые поля (A) вверх по началу последовательности «Start».

Свойства этого диалогового окна включают:

  • BannerBitmap
  • BannerText
  • BodyText

Это должно позволить вам контролировать внешний вид (в определенной степени) этой новой страницы приветствия.

6 голосов
/ 02 сентября 2011

Это не поддерживается проектами установки Visual Studio.

Решением было бы отредактировать MSI с помощью Orca, чтобы изменить управляющий текст, но вам придется делать это после каждой сборки.Таким образом, вы можете либо оставить это так, либо использовать другой инструмент создания настроек, который позволяет настраивать ваши диалоговые окна установки.

5 голосов
/ 25 октября 2013

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

Шаг 1: сохраните следующее как removebannertext.vbs в корневой папке проекта установки:

Option Explicit
If (Wscript.Arguments.Count < 1) Then
Wscript.Echo "Windows Installer utility to execute SQL queries against an installer database." & vbCRLf & " The 1st argument specifies the path to the MSI database, relative or full path"
Wscript.Quit 1
End If
Dim openMode : openMode = 1 'msiOpenDatabaseModeTransact
On Error Resume Next
Dim installer : Set installer = Wscript.CreateObject("WindowsInstaller.Installer") : CheckError
' Open database
Dim database : Set database = installer.OpenDatabase(Wscript.Arguments(0), openMode) : CheckError
Wscript.Echo "Removing all BannerText..."
Dim query
query = "UPDATE `Control` SET `Control`.`Attributes`=0 WHERE `Control`.`Control`='BannerText'"
Dim view : Set view = database.OpenView(query) : CheckError
view.Execute : CheckError
database.Commit
Wscript.Echo "Done."
Wscript.Quit 0
Sub CheckError
Dim message, errRec
If Err = 0 Then Exit Sub
message = Err.Source & " " & Hex(Err) & ": " & Err.Description
If Not installer Is Nothing Then
Set errRec = installer.LastErrorRecord
If Not errRec Is Nothing Then message = message & vbCRLf & errRec.FormatText
End If
Wscript.Echo message
Wscript.Quit 2
End Sub

Шаг 2. Установите для свойства проекта PostBuildEvent следующее:

cscript.exe "$(ProjectDir)removebannertext.vbs" "$(BuiltOuputPath)"
3 голосов
/ 20 ноября 2013

Goner Doug Answer работает хорошо.

Но ProgressBar BannerText не был удален. Я думаю, вместо удаления значения Attribute в элементе управления BannnerText, предложенном Goner Doug, Если бы мы могли опустошитьBannerText Строка, тогда это может быть хорошо.Мы также можем удалить текст баннера из окна ProgressBar, сделав то же самое.Обратите внимание, что удаление значения атрибута не будет работать для ProgressBar текста баннера.

В ответе Гонера Дуга замените query на

query = "UPDATE `Control` SET `Control`.`Text`='' WHERE `Control`.`Control`='InstalledBannerText' OR `Control`.`Control`='BannerText' OR `Control`.`Control`='RemoveBannerText'"

Это также удалит текст баннера в окне индикатора выполнения..

Option Explicit
If (Wscript.Arguments.Count < 1) Then
Wscript.Echo "Windows Installer utility to execute SQL queries against an installer database." & vbCRLf & " The 1st argument specifies the path to the MSI database, relative or full path"
Wscript.Quit 1
End If
Dim openMode : openMode = 1 'msiOpenDatabaseModeTransact
On Error Resume Next
Dim installer : Set installer = Wscript.CreateObject("WindowsInstaller.Installer") : CheckError
' Open database
Dim database : Set database = installer.OpenDatabase(Wscript.Arguments(0), openMode) : CheckError
Wscript.Echo "Removing all BannerText..."
Dim query
query = "UPDATE `Control` SET `Control`.`Text`='' WHERE `Control`.`Control`='InstalledBannerText' OR `Control`.`Control`='BannerText' OR `Control`.`Control`='RemoveBannerText'"
Dim view : Set view = database.OpenView(query) : CheckError
view.Execute : CheckError
database.Commit
Wscript.Echo "Done."
Wscript.Quit 0
Sub CheckError
Dim message, errRec
If Err = 0 Then Exit Sub
message = Err.Source & " " & Hex(Err) & ": " & Err.Description
If Not installer Is Nothing Then
Set errRec = installer.LastErrorRecord
If Not errRec Is Nothing Then message = message & vbCRLf & errRec.FormatText
End If
Wscript.Echo message
Wscript.Quit 2
End Sub
2 голосов
/ 09 апреля 2013

Вы можете легко изменить текст приветствия, изменив файл проекта в блокноте.(т.е. project1.vdproj) Убедитесь, что изменили ProductName или Title.Я не могу вспомнить, какой именно, а затем перестроить проект, и все готово.

1 голос
/ 27 ноября 2014

Одно решение (если процесс создания вашей установки не занимает много времени) - вам нужно будет сделать установку с нуля и переименовать ее в то время, как «Моя установка», когда она запрашивает имя установки.

...