Как удалить текст «Добро пожаловать в мастер установки» из проекта установщика Visual Studio

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

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

введите здесь описание изображения


person Jed    schedule 01.09.2011    source источник


Ответы (6)


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

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

person cosmin    schedule 02.09.2011

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

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

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

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

  • BannerBitmap
  • BannerText
  • BodyText

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

person Hassanation    schedule 01.09.2012

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

Шаг 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)"
person Goner Doug    schedule 24.10.2013
comment
Не могли бы вы помочь мне обновить имя BannerText с помощью этого скрипта? Кроме того, я хочу обновить BannerText в диалоговом окне приветствия, иначе диалоговое окно не обновляется, но в настоящее время все диалоговые окна обновлены. Не могли бы вы предложить? - person jishan siddique; 11.05.2020

Гонер Дуг Ответ работает хорошо.

Но ProgressBar BannerText не был удален. Я думаю, вместо удаления значения атрибута в элементе управления BannnerText, предложенном Гонером Дугом, если бы мы могли очистить строку 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
person BinaryMee    schedule 20.11.2013

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

person user1181437    schedule 09.04.2013
comment
Пожалуйста, дополните. Отображаемый текст баннера не отображается в файле. [ProductName] отображается в файле как заполнитель. Как именно нужно изменить файл? - person Captain Sensible; 07.06.2018

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

person Manish Dubey    schedule 27.11.2014