0

ExcelアドインをインストールするためのMSIがあります。

このMSIは、これまで多くのマシン(Windows 7、Windows Vista、またはWindows XPを実行している64ビットと32ビットの両方のマシン)で正しく機能していましたが、最近、ユーザーの1人の起動条件が誤って失敗しました。

MSIは、32ビットWindowsXPマシンでVisualStudio2010インストーラープロジェクトを使用して準備されました。

ユーザーは、Excel 2007 SP2(32ビット)がインストールされているWindows764ビットマシンにインストールしようとしています。

起動条件は、現在インストールされているExcelのバージョンを確認することです。このため:

  1. 次のパラメータを使用したレジストリ検索アクションがあります

    Property: EXCEL
    RegKeY: Software\Classes\Excel.Application\CurVer
    Root: vsdrrHKLM
    Value: 
    
  2. そして打ち上げ条件はEXCEL = "Excel.Application.12" OR EXCEL = "Excel.Application.14"

ユーザーのマシンで、私はすでに次のことを確認しました。

  1. 'HKLM \ Software \ Classes \ Excel.Application\CurVer'のレジストリ値は'Excel.Application.12'です。
  2. 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は昇格されたアクセス許可で実行されています。

ここで何がうまくいかないのか誰かが知っていますか?私は展開の世界にかなり慣れていないので、この点で助けていただければ幸いです。

4

1 に答える 1

2

ログ全体を見ずに100%と言うのは難しいですが、私には何が起こっているように見えますか。

1)インストールを開始し、ダイアログを通過します。

2)インストーラーがインストールを開始し、Excelに関するエラーメッセージをスローします。

3)インストーラーが終了します。

LaunchConditionsの標準アクションは、UIのインストールシーケンスと実行のインストールシーケンスの両方に対してスケジュールされます。UIを実行すると、AppSearchアクションが実行され、プロパティが設定されます。

ただし、EXCELプロパティはSecureCustomPropertiesプロパティにリストされていません。したがって、インストーラーが実行シーケンスを切り替えると、値はnullになります。Windowsインストーラーは、実行シーケンスでAppSearchアクションを再度実行しないため、nullのままになります。

ただし、LaunchConditionsの標準アクションが実行され、式はインストールを中止するとfalseと評価されます。

この理論は、ログファイル全体を読み取り、アクションがいつ発生するかを確認することで証明できます。理論をテストする別の方法は、昇格したコマンドプロンプトからMSIを実行することです。そのシナリオでは、SecureCustomPropertiesは効果がなく、InstallUIで設定されたプロパティはInstallExecuteシーケンスに引き継がれます。

最後に、Visual Studioの展開プロジェクトは、正直なところ、ひどいものであることに注意してください。MicrosoftがVisualStudio2012からそれらを削除したほどです。私はこのツールへの投資をやめ、代わりにWindowsインストーラーXMLまたはInstallShieldLimitedEditionを使用します。

于 2012-10-26T12:47:23.230 に答える