我们开发的产品由客户分发给客户。我们需要允许客户公司的管理员在将其发送给最终用户之前对安装程序进行配置更改。这种情况下的配置更改意味着要在最终用户计算机上创建一对注册表项。我该怎么做呢?分销前配置安装程序
-1
A
回答
2
请检查: http://ozgrant.com/2008/03/11/customising-your-wix-msi-with-transform-files/
这里,
- 开发团队创建一个通用的安装程序。
- IT团队然后使用Orca创建不同的变换(.mst文件),并且
- 这些具有特定.mst的安装程序将被运送到不同的客户端组。
HTH
2
这里是我们送出去给客户一个示例脚本。他们创建一个自定义配置文件,运行这个脚本,并最终得到一个MST和一个CAB,它将覆盖基本MSI中包含的默认值。
最初我们只是给了客户使用Orca的说明,但它确实只能让他们更新属性/值 - 如果您需要替换配置文件,那么对于大多数IT人员来说,结果有点复杂,除非他们有权访问WISE,InstallShield或类似的。
Option Explicit
Const MSI_SRC = "myapp.msi"
Const MSI_TEMP = "temp.msi"
Const MST_FILE = "custom.mst"
Const MY_CONFIG = "customsettings.reg"
Const CAB_FILE = "config.cab"
Dim filesys
Set filesys=CreateObject("Scripting.FileSystemObject")
If filesys.FileExists(MSI_SRC) Then
filesys.CopyFile MSI_SRC, MSI_TEMP
Else
MsgBox "Unable to find " & MSI_SRC & "exiting", 48, "Fatal Error"
Set filesys = Nothing
WScript.Quit
End If
If filesys.FileExists(MST_FILE) Then
filesys.DeleteFile(MST_FILE)
End If
Dim installer, database, database2, view
Set installer = CreateObject("WindowsInstaller.Installer")
Set database = installer.OpenDatabase (MSI_TEMP, 1)
Set database2 = installer.OpenDatabase (MSI_SRC, 1)
If filesys.FileExists(MY_CONFIG) Then
Dim objFile, size, result, seq, objCab
Set objCab = CreateObject("MakeCab.MakeCab.1")
objCab.CreateCab CAB_FILE, False, False, False
objCab.AddFile MY_CONFIG, filesys.GetFileName(MY_CONFIG)
objCab.CloseCab
Set objFile = filesys.GetFile(MY_CONFIG)
size = objFile.Size
Set view = database.OpenView ("SELECT LastSequence FROM Media WHERE DiskId = 1")
view.Execute
Set result = view.Fetch
seq = result.StringData(1) + 1 ' Sequence for new configuration file
Set view = database.OpenView ("INSERT INTO Media (DiskId, LastSequence, Cabinet) VALUES ('2', '" & seq & "', '" & CAB_FILE & "')")
view.Execute
Set view = database.OpenView ("UPDATE File SET FileSize = " & size & ", Sequence = " & seq & ", FileName = 'CUSTOM~2.REG|customsettings.reg' WHERE File = '" & LCase(MY_CONFIG) & "'")
view.Execute
End If
database.GenerateTransform database2, MST_FILE
database.CreateTransformSummaryInfo database2, MST_FILE, 0, 0
' Cleanup
Set database = Nothing
Set database2 = Nothing
Set installer = Nothing
Set view = Nothing
filesys.DeleteFile(MSI_TEMP)
Set filesys = Nothing
相关问题
- 1. 配置automake安装额外的程序
- 2. 安装Winform应用程序配置
- 3. Symfony 2:安全配置:登录和注销处理程序
- 4. iPhone分销配置问题
- 5. Office安装配置
- 6. 如何撤销先前安装的Inno安装程序安排的文件删除
- 7. 在MSI安装期间配置App.config应用程序设置vb.net
- 8. 安装2年前的应用程序
- 9. 程序'tclsh'目前没有安装?
- 10. 程序'rails'目前没有安装?
- 11. msi安装程序在安装前运行脚本
- 12. 检查以前安装的版本的Mac安装程序?
- 13. MSI安装程序无法删除以前的安装失败
- 14. INNO安装程序在安装前开始安装时提取目录树
- 15. 室内应用程序安装时未在设备上配置配置文件
- 16. 分配最小的python安装与应用程序
- 17. 激活注销安全配置
- 18. 如何在使用.NET的安装项目安装主应用程序之前安装其他设置?
- 19. 安装EXE后'在应用程序配置文件'
- 20. 如何在Windows上安装Ad Hoc配置应用程序?
- 21. 如何安装涉及制作,配置和构建的程序?
- 22. 用于CMS的Web安装程序 - 配置
- 23. 在Windsor安装程序中使用强类型配置参数
- 24. 如何在WiX安装程序中添加“升级”配置?
- 25. WiX安装程序在修复时删除配置文件值
- 26. 配置MSI文件在安装时启动并终止程序
- 27. 如何配置VS安装程序将文件放入LocalApplicationData
- 28. SalesForce的每个安装配置应用程序
- 29. 如何使用捆绑程序安装其他配置的gem?
- 30. 在安装程序类中编辑自定义配置节
您好sascha:您发布的脚本解决方案正是我一直在寻找的。我的脚本运行时没有任何错误,更新了msi上的修改日期。我试着修改两个不同的文件。 1)logo2.gif当我运行安装程序时出现错误:“安装程序在安装此程序包时遇到意外错误,这可能表示此程序包有问题,错误代码为2755。然后,“从服务器返回,返回值:110”。然后我试着和ascii配置文件。之后,我能够安装没有错误...但安装的文件不是更新的:( – blak3r 2009-05-23 07:03:36