Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 如何删除“;欢迎使用“安装向导”;来自VisualStudio安装程序项目的文本_Visual Studio 2010_Installation_Setup Project - Fatal编程技术网

Visual studio 2010 如何删除“;欢迎使用“安装向导”;来自VisualStudio安装程序项目的文本

Visual studio 2010 如何删除“;欢迎使用“安装向导”;来自VisualStudio安装程序项目的文本,visual-studio-2010,installation,setup-project,Visual Studio 2010,Installation,Setup Project,我有一个在Visual Studio 2010中制作的Visual Studio安装程序项目,无法确定如何从向导对话框中删除“欢迎使用[Product Name]安装向导”文本 例如:如何从下面的屏幕截图中删除文本“欢迎使用Setup1安装向导” Visual Studio安装项目不支持此操作 一个解决方案是使用Orca编辑MSI来修改控件文本,但您必须在每次构建之后进行修改。因此,您可以不使用这种方式,也可以使用另一个安装编写工具来自定义安装对话框。您可以通过删除欢迎对话框并将其替换为自定义对

我有一个在Visual Studio 2010中制作的Visual Studio安装程序项目,无法确定如何从向导对话框中删除“欢迎使用[Product Name]安装向导”文本

例如:如何从下面的屏幕截图中删除文本“欢迎使用Setup1安装向导”


Visual Studio安装项目不支持此操作

一个解决方案是使用Orca编辑MSI来修改控件文本,但您必须在每次构建之后进行修改。因此,您可以不使用这种方式,也可以使用另一个安装编写工具来自定义安装对话框。

您可以通过删除欢迎对话框并将其替换为自定义对话框来“删除”文本。在VS 2005中-

  • 在解决方案资源管理器中右键单击安装项目
  • 选择查看-用户界面
  • 在安装和管理安装的开始组下,删除“欢迎”
  • 然后,您可以将“文本框(a)”对话框(右键单击“开始”组并选择“添加对话框”)添加到项目中,将文本框的可见属性设置为false。将文本框(A)向上移动到“开始”序列的顶部

    此对话框的属性包括:

    • BannerBitmap
    • BannerText
    • BodyText

    这将允许您控制这个新“欢迎”页面的外观(在一定程度上)。

    您可以通过修改记事本中的项目文件轻松更改欢迎文本。(即project1.vdproj)请确保更改产品名称或标题。我记不清到底是哪一个,然后重建项目,你们都完成了。

    我通过修改一种方法完成了这一点,我从网上找到的各种其他结果拼凑而成

    步骤1:将以下内容保存为安装项目根文件夹中的removebannertext.vbs:

    选项显式
    如果(Wscript.Arguments.Count<1),则
    Wscript.Echo“用于对安装程序数据库执行SQL查询的Windows Installer实用程序”。&vbCRLf&“第一个参数指定MSI数据库的相对路径或完整路径”
    Wscript.Quit 1
    如果结束
    Dim openMode:openMode=1'MSOpenDatabaseModeTransact
    出错时继续下一步
    Dim installer:Set installer=Wscript.CreateObject(“WindowsInstaller.installer”):检查错误
    "开放数据库",
    Dim数据库:Set database=installer.OpenDatabase(Wscript.Arguments(0),openMode):检查错误
    Echo“删除所有BannerText…”
    模糊查询
    query=“UPDATE`Control`SET`Control`.`Attributes`=0,其中`Control`.`Control`='BannerText'”
    Dim视图:设置视图=数据库。OpenView(查询):检查错误
    view.Execute:CheckError
    提交数据库
    Echo“完成”
    Wscript.0退出
    子校验错误
    暗消息,errRec
    如果Err=0,则退出Sub
    message=Err.Source&“&Hex(Err)&”:“&Err.Description
    如果不是,那么安装程序什么都不是
    设置errRec=installer.LastErrorRecord
    如果Not errRec为Nothing,则message=message&vbCRLf&errRec.FormatText
    如果结束
    Echo消息
    Wscript.Quit 2
    端接头
    
    步骤2:将项目的PostBuildEvent属性设置为:

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

    Goner Doug的回答很好

    但是
    ProgressBar
    BannerText
    没有被删除。我想与其删除Goner Doug建议的
    BannerText
    控件中的属性值,不如清空
    BannerText
    字符串,这样可能会更好。我们也可以通过同样的操作删除
    ProgressBar
    窗口的标题文本。请注意,删除属性值不适用于
    ProgressBar
    bannner文本

    在Goner Doug的回答中, 将
    查询替换为

    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
    
    选项显式
    如果(Wscript.Arguments.Count<1),则
    Wscript.Echo“用于对安装程序数据库执行SQL查询的Windows Installer实用程序”。&vbCRLf&“第一个参数指定MSI数据库的相对路径或完整路径”
    Wscript.Quit 1
    如果结束
    Dim openMode:openMode=1'MSOpenDatabaseModeTransact
    出错时继续下一步
    Dim installer:Set installer=Wscript.CreateObject(“WindowsInstaller.installer”):检查错误
    "开放数据库",
    Dim数据库:Set database=installer.OpenDatabase(Wscript.Arguments(0),openMode):检查错误
    Echo“删除所有BannerText…”
    模糊查询
    query=“更新`Control`SET`Control`.`Text`=''其中`Control`.`Control`='installedbanentext'或`Control`.`Control`='banentext'或`Control`.`Control`='removebanentext''
    Dim视图:设置视图=数据库。OpenView(查询):检查错误
    view.Execute:CheckError
    提交数据库
    Echo“完成”
    Wscript.0退出
    子校验错误
    暗消息,errRec
    如果Err=0,则退出Sub
    message=Err.Source&“&Hex(Err)&”:“&Err.Description
    如果不是,那么安装程序什么都不是
    设置errRec=installer.LastErrorRecord
    如果Not errRec为Nothing,则message=message&vbCRLf&errRec.FormatText
    如果结束
    Echo消息
    Wscript.Quit 2
    端接头
    
    一种解决方案(如果您的设置创建过程不长)-您必须从头开始创建设置,并在提示输入设置名称时将其重命名为“我的设置”。

    请详细说明。显示的横幅文本不会显示在文件中。[ProductName]在文件中显示为占位符。文件必须如何更改?您能帮我使用此脚本更新
    BannerText
    名称吗?另外,我想在欢迎对话框中更新
    BannerText
    ,其他对话框未更新,但当前所有对话框都已更新,请建议?