2011-09-01 4 views

risposta

6

Questo non è supportato da progetti di installazione di Visual Studio.

Una soluzione sarebbe quella di modificare l'MSI con Orca per modificare il testo di controllo, ma dovresti farlo dopo ogni generazione. Pertanto, puoi lasciarlo in questo modo o utilizzare un altro strumento di creazione di impostazioni che ti consente di personalizzare le finestre di dialogo di installazione.

7

È possibile "rimuovere" il testo rimuovendo la finestra di benvenuto e sostituendolo con una finestra di dialogo personalizzata. In VS 2005 -

  1. clic destro sul progetto di installazione in Esplora soluzioni
  2. Selezionare Visualizza - Interfaccia utente
  3. Sotto il gruppo di avvio per installare e amministrativo Install cancellare "Welcome"

Quindi è possibile aggiungere una finestra di dialogo "Caselle di testo (A)" (fare clic con il pulsante destro sul gruppo "Start" e selezionare Aggiungi finestra di dialogo) al progetto, impostare la proprietà visibile per le caselle di testo su false. Sposta le caselle di testo (A) fino all'inizio della sequenza "Start".

Le proprietà di questa finestra di dialogo comprendono:

  • BannerBitmap
  • BannerText
  • BodyText

Questo dovrebbe consentire di controllare l'aspetto/feel (in una certa misura) del presente nuova pagina "Benvenuto".

1

È possibile modificare facilmente il testo di benvenuto modificando il file di progetto nel blocco note. (ad esempio project1.vdproj) Assicurati di cambiare ProductName o Title. Non riesco a ricordare quale sia esattamente e poi ricostruire il progetto e il gioco è fatto.

3

Ho raggiunto questo risultato modificando un approccio che ho messo insieme da vari altri risultati trovati online.

Fase 1: Salvare il seguente come removebannertext.vbs nella cartella principale del progetto di installazione:

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 

Fase 2: Impostare la proprietà PostBuildEvent del progetto a questo:

cscript.exe "$(ProjectDir)removebannertext.vbs" "$(BuiltOuputPath)" 
+0

Impressionante. :) – BinaryMee

2

Goner Doug La risposta funziona bene.

Ma lo ProgressBarBannerText non è stato rimosso.Immagino invece di rimuovere il valore di Attributo nel controllo BannnerText suggerito da Goner Doug, Se potessimo svuotare la stringa BannerText, allora potrebbe essere buono. Possiamo anche rimuovere il testo del banner della finestra ProgressBar facendo lo stesso. Si noti che la rimozione del valore dell'attributo non funzionerà per il testo di bannner ProgressBar.

In Goner Doug risposta, sostituire la query come

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

Questo eliminerà banner di testo nella finestra di barra di avanzamento troppo.

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 
1

Una soluzione (se il processo la configurazione creazione non è lungo) - Si dovrà fare la configurazione da zero e rinominarlo in quel momento come il mio programma di installazione quando si richiede il nome del setup.