我有一个用于安装 Excel 插件的 MSI。
到目前为止,此 MSI 已在许多机器上正常工作(运行 Windows 7、Windows Vista 或 Windows XP 的 64 位和 32 位机器),但最近一个用户的启动条件错误地失败了。
MSI 是在 32 位 Windows XP 机器上使用 Visual Studio 2010 安装程序项目准备的。
用户正在尝试将其安装在安装了 Excel 2007 SP2(32 位)的 Windows 7 64 位计算机上。
启动条件是确定当前安装的 Excel 版本。为了这:
我有一个带有以下参数的注册表搜索操作
Property: EXCEL RegKeY: Software\Classes\Excel.Application\CurVer Root: vsdrrHKLM Value:
发射条件是
EXCEL = "Excel.Application.12" OR EXCEL = "Excel.Application.14"
在用户的机器上,我已经确认:
- 'HKLM\Software\Classes\Excel.Application\CurVer' 的注册表值为 'Excel.Application.12'
- msi 日志表明该值已正确读取
日志如下所示:
Action 15:42:58: ProgressForm. Dialog created
Action ended 15:42:58: ProgressForm. Return value 1.
MSI (c) (AC:28) [15:42:58:401]: Doing action: ExecuteAction
Action 15:42:58: ExecuteAction.
Action start 15:42:58: ExecuteAction.
MSI (c) (AC:28) [15:42:58:410]: PROPERTY CHANGE: Adding SECONDSEQUENCE property. Its value is '1'.
MSI (c) (AC:28) [15:42:58:413]: Grabbed execution mutex.
MSI (c) (AC:28) [15:42:58:416]: Incrementing counter to disable shutdown. Counter after increment: 0
MSI (c) (AC:28) [15:42:58:419]: Switching to server: TARGETDIR="C:\Program Files (x86)\MySoftware\" _F6F7C451BA1841F0B59F5BF6C3620B2B="C:\Program Files (x86)\MySoftware\Data\" _B87F203625174B9894BB9AAD7BBA6EAB="C:\Program Files (x86)\MySoftware\Bin\" _6448E393C853494F8BBDC9D2FA0DA440="C:\ProgramData\Microsoft\Windows\Start Menu\Programs\MyCompany\" _BA6D696DE1324CDF936304F630FC10AD="C:\ProgramData\Microsoft\Windows\Start Menu\Programs\MyCompany\MySoftware\" _77B6D7C007D440959AF59826EEB28541="C:\Program Files (x86)\MySoftware\Data\LOGS\" _4AE2CF68991D4AADBC1984A3B6A685D2="C:\Program Files (x86)\MySoftware\Data\DB\" _0E7ED596C9F747DB961B97EBE7D8CA47="C:\Program Files (x86)\MySoftware\Doc\" EXCEL2007="C:\Program Files (x86)\Microsoft Office\Office12\" EXCEL="Excel.Application.12" VSDNETURLMSG="This setup requires the .NET Framework version 2.0. Please install the .NET Framework and run this setup again. The .NET Fram
MSI (s) (74:78) [15:42:58:430]: Running installation inside multi-package transaction H:\MySoftware\MySoftware.msi
MSI (s) (74:78) [15:42:58:433]: Grabbed execution mutex.
MSI (s) (74:F8) [15:42:58:439]: Resetting cached policy values
MSI (s) (74:F8) [15:42:58:442]: Machine policy value 'Debug' is 0
MSI (s) (74:F8) [15:42:58:444]: ******* RunEngine:
******* Product: H:\MySoftware\MySoftware.msi
******* Action: INSTALL
******* CommandLine: **********
//A lot of other stuff
MSI (s) (74:F8) [15:43:10:824]: Doing action: AppSearch
Action 15:43:10: AppSearch. Searching for installed applications
Action start 15:43:10: AppSearch.
MSI (s) (74:F8) [15:43:10:838]: Skipping AppSearch action: already done on client side
Action ended 15:43:10: AppSearch. Return value 0.
MSI (s) (74:F8) [15:43:10:844]: Doing action: FindRelatedProducts
Action 15:43:10: FindRelatedProducts. Searching for related applications
Action start 15:43:10: FindRelatedProducts.
MSI (s) (74:F8) [15:43:10:855]: Skipping FindRelatedProducts action: already done on client side
Action ended 15:43:10: FindRelatedProducts. Return value 0.
MSI (s) (74:F8) [15:43:10:861]: Skipping action: ERRCA_CANCELNEWERVERSION (condition is false)
MSI (s) (74:F8) [15:43:10:866]: Doing action: VSDCA_VsdLaunchConditions
Action 15:43:10: VSDCA_VsdLaunchConditions.
Action start 15:43:10: VSDCA_VsdLaunchConditions.
MSI (s) (74:F8) [15:43:10:890]: Creating MSIHANDLE (27) of type 790542 for thread 4344
MSI (s) (74:E0) [15:43:10:893]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI9C72.tmp, Entrypoint: VsdLaunchConditions
MSI (s) (74!34) [15:43:11:441]: Creating MSIHANDLE (28) of type 790531 for thread 6708
INFO : [10/25/2012 15:43:11:445] [VsdLaunchConditions ]: Custom Action is starting...
INFO : [10/25/2012 15:43:11:451] [VsdLaunchConditions ]: CoInitializeEx - COM initialization Apartment Threaded...
INFO : [10/25/2012 15:43:11:456] [VsdLaunchConditions ]: Enumerating table using SQL statement: 'SELECT * FROM `_VsdLaunchCondition`'
INFO : [10/25/2012 15:43:11:460] [VsdLaunchConditions ]: Calling MsiGetActiveDatabase...
MSI (s) (74!34) [15:43:11:464]: Creating MSIHANDLE (29) of type 790541 for thread 6708
INFO : [10/25/2012 15:43:11:467] [VsdLaunchConditions ]: MsiDatabaseOpenViewW - Prepare Database to view table...
MSI (s) (74!34) [15:43:11:471]: Creating MSIHANDLE (30) of type 790540 for thread 6708
INFO : [10/25/2012 15:43:11:474] [VsdLaunchConditions ]: TMsiViewExecute - Open Database view on table...
MSI (s) (74!34) [15:43:11:478]: Creating MSIHANDLE (31) of type 790531 for thread 6708
INFO : [10/25/2012 15:43:11:482] [VsdLaunchConditions ]: Checking a launch condition...
INFO : [10/25/2012 15:43:11:485] [VsdLaunchConditions ]: Getting the condition to evaluate...
INFO : [10/25/2012 15:43:11:489] [VsdLaunchConditions ]: MsiRecordGetStringW - Fetching value...
INFO : [10/25/2012 15:43:11:492] [VsdLaunchConditions ]: MsiRecordGetStringW - Getting value from column '1'...
INFO : [10/25/2012 15:43:11:497] [VsdLaunchConditions ]: Evaluating condition 'VSDFXAvailable'...
INFO : [10/25/2012 15:43:11:500] [VsdLaunchConditions ]: RESULT: Condition is true. Nothing more to do.
MSI (s) (74!34) [15:43:11:504]: Closing MSIHANDLE (31) of type 790531 for thread 6708
MSI (s) (74!34) [15:43:11:508]: Closing MSIHANDLE (30) of type 790540 for thread 6708
INFO : [10/25/2012 15:43:11:512] [VsdLaunchConditions ]: Custom Action succeeded.
INFO : [10/25/2012 15:43:11:518] [VsdLaunchConditions ]: Custom Action completed with return code: '0'
MSI (s) (74!34) [15:43:11:522]: Closing MSIHANDLE (29) of type 790541 for thread 6708
MSI (s) (74!34) [15:43:11:525]: Closing MSIHANDLE (28) of type 790531 for thread 6708
MSI (s) (74:E0) [15:43:11:530]: Closing MSIHANDLE (27) of type 790542 for thread 4344
Action ended 15:43:11: VSDCA_VsdLaunchConditions. Return value 1.
MSI (s) (74:F8) [15:43:11:538]: Doing action: LaunchConditions
Action 15:43:11: LaunchConditions. Evaluating launch conditions
//Few more lines
Action ended 15:43:13: LaunchConditions. Return value 3.
Action ended 15:43:13: INSTALL. Return value 3.
//some other traces
MSI (c) (AC:04) [15:43:16:896]: Custom Action Manager thread ending.
Property(C): UpgradeCode = {9FC0F443-EECC-4C3B-939E-D033349C22BA}
Property(C): TARGETDIR = C:\Program Files (x86)\MySoftware
Property(C): _F6F7C451BA1841F0B59F5BF6C3620B2B = C:\Program Files (x86)\MySoftware\Data\
Property(C): _B87F203625174B9894BB9AAD7BBA6EAB = C:\Program Files (x86)\MySoftware\Bin\
Property(C): ProgramMenuFolder = C:\ProgramData\Microsoft\Windows\Start Menu\Programs\
Property(C): _6448E393C853494F8BBDC9D2FA0DA440 = C:\ProgramData\Microsoft\Windows\Start Menu\Programs\MySoftware\
Property(C): _BA6D696DE1324CDF936304F630FC10AD = C:\ProgramData\Microsoft\Windows\Start Menu\Programs\MySoftware\
Property(C): WindowsFolder = C:\Windows\
Property(C): SystemFolder = C:\Windows\SysWOW64\
Property(C): SourceDir = H:\MySoftware\
Property(C): _77B6D7C007D440959AF59826EEB28541 = C:\Program Files (x86)\MySoftware\Data\LOGS\
Property(C): _4AE2CF68991D4AADBC1984A3B6A685D2 = C:\Program Files (x86)\MySoftware\Data\DB\
Property(C): _0E7ED596C9F747DB961B97EBE7D8CA47 = C:\Program Files (x86)\MySoftware\Doc\
Property(C): VSDFXAvailable = TRUE
Property(C): VSDFrameworkVersion = v2.0
Property(C): VSDAllowLaterFrameworkVersions = False
Property(C): EXCEL2007 = C:\Program Files (x86)\Microsoft Office\Office12\
Property(C): EXCEL = Excel.Application.12
Property(C): ProductName = MySoftware
Property(C): ProductCode = {04835711-7FDB-4B00-9A39-6C6776D9900A}
Property(C): ProductVersion = 1.31.2012
Property(C): Manufacturer = MyCompany
Property(C): ARPHELPLINK = http://www.MyCompany.com/
Property(C): ARPCONTACT = MyCompany
Property(C): ARPURLINFOABOUT = http://www.MyCompany.com/
Property(C): ProductLanguage = 1033
Property(C): SecureCustomProperties = PREVIOUSVERSIONSINSTALLED;NEWERPRODUCTFOUND
Property(C): RedirectedDllSupport = 2
Property(C): VersionNT = 601
Property(C): VSDNETURLMSG = This setup requires the .NET Framework version 2.0. Please install the .NET Framework and run this setup again. The .NET Framework can be obtained from the web. Would you like to do this now?
Property(C): VSDIISMSG = This setup requires Internet Information Server 5.1 or higher and Windows XP or higher. This setup cannot be installed on Windows 2000. Please install Internet Information Server or a newer operating system and run this setup again.
Property(C): VSDUIANDADVERTISED = This advertised application will not be installed because it might be unsafe. Contact your administrator to change the installation user interface option of the package to basic.
Property(C): VSDNETMSG = This setup requires the .NET Framework version 2.0. Please install the .NET Framework and run this setup again.
Property(C): VSDINVALIDURLMSG = The specified path '[2]' is unavailable. The Internet Information Server might not be running or the path exists and is redirected to another machine. Please check the status of this virtual directory in the Internet Services Manager.
Property(C): VSDVERSIONMSG = Unable to install because a newer version of this product is already installed.
Property(C): FolderForm_AllUsers = ALL
Property(C): FolderForm_AllUsersVisible = 1
Property(C): DefaultUIFont = VsdDefaultUIFont.524F4245_5254_5341_4C45_534153783400
Property(C): MaintenanceForm_Action = Repair
Property(C): AdminMaintenanceForm_Action = Repair
Property(C): ErrorDialog = ErrorDialog
Property(C): SFF_UpFldrBtn = UpFldrBtn
Property(C): SFF_NewFldrBtn = NewFldrBtn
Property(C): WelcomeForm_NextArgs = FolderForm
Property(C): FolderForm_PrevArgs = WelcomeForm
Property(C): FolderForm_NextArgs = ConfirmInstallForm
Property(C): ConfirmInstallForm_PrevArgs = FolderForm
Property(C): AdminWelcomeForm_NextArgs = AdminFolderForm
Property(C): AdminFolderForm_PrevArgs = AdminWelcomeForm
Property(C): AdminFolderForm_NextArgs = AdminConfirmInstallForm
Property(C): AdminConfirmInstallForm_PrevArgs = AdminFolderForm
Property(C): WindowsFolder_x86_VC.F1DD796A_B984_3DCA_A68D_6B352BDC86F3 = C:\Windows\
Property(C): SystemFolder_x86_VC.F1DD796A_B984_3DCA_A68D_6B352BDC86F3 = C:\Windows\SysWOW64\
Property(C): ALLUSERS = 2
Property(C): DirectoryTable100_x86.F1DD796A_B984_3DCA_A68D_6B352BDC86F3 = DirectoryTable
Property(C): MsiLogFileLocation = H:\MySoftware\.\msilog.txt
Property(C): PackageCode = {ABF9C77A-61D2-49AF-BD7F-F55CE2567525}
Property(C): ProductState = -1
Property(C): PackagecodeChanging = 1
Property(C): RestrictedUserControl = 1
Property(C): CURRENTDIRECTORY = H:\MySoftware
Property(C): CLIENTUILEVEL = 0
Property(C): CLIENTPROCESSID = 7340
Property(C): VersionDatabase = 200
Property(C): VersionMsi = 5.00
Property(C): VersionNT64 = 601
Property(C): WindowsBuild = 7601
Property(C): ServicePackLevel = 1
Property(C): ServicePackLevelMinor = 0
Property(C): MsiNTProductType = 1
Property(C): WindowsVolume = C:\
Property(C): System64Folder = C:\Windows\system32\
Property(C): RemoteAdminTS = 1
Property(C): TempFolder = C:\Users\U060597\AppData\Local\Temp\
Property(C): ProgramFilesFolder = C:\Program Files (x86)\
Property(C): CommonFilesFolder = C:\Program Files (x86)\Common Files\
Property(C): ProgramFiles64Folder = C:\Program Files\
Property(C): CommonFiles64Folder = C:\Program Files\Common Files\
Property(C): AppDataFolder = C:\Users\U060597\AppData\Roaming\
Property(C): FavoritesFolder = C:\Users\U060597\Favorites\
Property(C): NetHoodFolder = C:\Users\U060597\AppData\Roaming\Microsoft\Windows\Network Shortcuts\
Property(C): PersonalFolder = C:\
Property(C): PrintHoodFolder = C:\Users\U060597\AppData\Roaming\Microsoft\Windows\Printer Shortcuts\
Property(C): RecentFolder = C:\Users\U060597\AppData\Roaming\Microsoft\Windows\Recent\
Property(C): SendToFolder = C:\Users\U060597\AppData\Roaming\Microsoft\Windows\SendTo\
Property(C): TemplateFolder = C:\ProgramData\Microsoft\Windows\Templates\
Property(C): CommonAppDataFolder = C:\ProgramData\
Property(C): LocalAppDataFolder = C:\Users\U060597\AppData\Local\
Property(C): MyPicturesFolder = C:\My Pictures\
Property(C): AdminToolsFolder = C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\
Property(C): StartupFolder = C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\
Property(C): StartMenuFolder = C:\ProgramData\Microsoft\Windows\Start Menu\
Property(C): DesktopFolder = C:\Users\Public\Desktop\
Property(C): FontsFolder = C:\Windows\Fonts\
Property(C): GPTSupport = 1
Property(C): OLEAdvtSupport = 1
Property(C): ShellAdvtSupport = 1
Property(C): MsiAMD64 = 6
Property(C): Msix64 = 6
Property(C): Intel = 6
Property(C): PhysicalMemory = 12279
Property(C): VirtualMemory = 18474
Property(C): LogonUser = u060597
Property(C): UserSID = S-1-5-21-1715567821-1004336348-725345543-486654
Property(C): UserLanguageID = 2057
Property(C): ComputerName = WR8DW1T3
Property(C): SystemLanguageID = 2057
Property(C): ScreenX = 1920
Property(C): ScreenY = 1080
Property(C): CaptionHeight = 22
Property(C): BorderTop = 1
Property(C): BorderSide = 1
Property(C): TextHeight = 16
Property(C): TextInternalLeading = 3
Property(C): ColorBits = 32
Property(C): TTCSupport = 1
Property(C): Time = 15:43:17
Property(C): Date = 25/10/2012
Property(C): MsiNetAssemblySupport = 4.0.30319.1
Property(C): MsiWin32AssemblySupport = 6.1.7601.17514
Property(C): AdminUser = 1
Property(C): MsiRunningElevated = 1
Property(C): Privileged = 1
Property(C): USERNAME = user
Property(C): COMPANYNAME = UserCompany
Property(C): DATABASE = C:\Users\U060597\AppData\Local\Temp\5c64805.msi
Property(C): OriginalDatabase = H:\MySoftware\MySoftware.msi
Property(C): SOURCEDIR = H:\MySoftware\
Property(C): VersionHandler = 5.00
Property(C): UILevel = 5
Property(C): ACTION = INSTALL
Property(C): EXECUTEACTION = INSTALL
Property(C): VSDFxConfigFile = C:\Users\U060597\AppData\Local\Temp\CFG4C2A.tmp
Property(C): ROOTDRIVE = C:\
Property(C): CostingComplete = 1
Property(C): OutOfDiskSpace = 0
Property(C): OutOfNoRbDiskSpace = 0
Property(C): PrimaryVolumeSpaceAvailable = 0
Property(C): PrimaryVolumeSpaceRequired = 0
Property(C): PrimaryVolumeSpaceRemaining = 0
Property(C): INSTALLLEVEL = 1
=== Logging stopped: 25/10/2012 15:43:17 ===
从上面的日志可以看出,属性“EXCEL”设置正确,但启动条件仍然失败。MSI 也以提升的权限运行。
有谁知道这里可能出了什么问题?我对部署世界相当陌生,非常感谢这方面的任何帮助