Songsmith doesn’t install on Windows 7, why and a workaround

committed to database on January 10, 2009 at 5:33 pm Eastern Standard Time 28 comments digg this

Tom Warren woke me up this “morning” (2pm) with a note pointing out Microsoft’s recently-released Songsmith does not install on Windows 7. Like a little kid with a new toy, I downloaded Songsmith and tried to install it on Windows 7...

Songsmith requires KB938660 on Windows 7

About half-way into the install, setup whines about not having KB938660 installed. Attempting to install this hotfix on a Windows 7 machine, however, will fail because it’s not needed. But it’s required for Songsmith install. You’re stuck.

The problem lies within a component Microsoft uses to check for prerequisite hotfixes (SSCustomInstall.dll).

Reflector: Decompilation of SSCustomInstaller.dll

As you can see, in Reflector’s decompiled output, the method CheckUpdateWPFPerfInstalled does not take into account that Windows 7 also has a major version number of 6, therefore always checking for the hotfix and always failing 100% of the time. Fixing this issue will require code changes to SSCustomInstall.dll at Microsoft’s end...

... however, as a quick fix, I decompiled the culprit assembly and removed the call to this flawed method.

// call method, store bool result
ldarg.0
ldloca.s str2
call instance bool SSCustomInstaller.SSInstaller::CheckUpdateWPFPerfInstalled(string&)
stloc.3


became...

// set bool result to true
ldc.i4.1
stloc.3

After re-assembly (and re-signing), I dropped the new assembly into folder I planned on installing SongSmith into.

As I re-signed the assembly, the PublicKeyToken value changed. Using Orca, I generated a Transform that applies my changes, on-the-fly, to the PublicKeyToken value in the MsiAssemblyName table and finally invoked setup with the command msiexec /i SongsmithSetup.msi TRANSFORMS=UpdatePKT.mst.

Setup completed without error.

If you’d like to skip all the fun, you can simply download a package with the files you need. To summarize the steps you need to follow...

  1. Put SSCustomInstaller.dll into the folder you plan to install Songsmith into.
  2. Put invoke.bat and UpdatePKT.mst into the folder containing Songsmith.msi.
  3. Execute invoke.bat and complete setup as normal.
  1. asf January 10, 2009 at 5:56 pm

    How about a tutorial on how to re-assemble (and re-sign) .net apps? I never really got into .net but this is something that can come in handy on a rainy day…

  2. Ryan January 10, 2009 at 6:57 pm

    Heck, how did you do that disassembly! Can I ask what program?

    Awesome little walk through on the inner workings of Songsmith. It’s interesting how a small tiny version check error like that can throw the entire thing into chaos.

  3. GeekFG January 10, 2009 at 6:58 pm

    I really agree with asf proposal !

  4. Rafael January 10, 2009 at 7:10 pm

    @Ryan: The program is Reflector and can be freely downloaded at http://www.red-gate.com/products/reflector/

  5. Mark January 11, 2009 at 1:05 am

    @Rafael

    Now can you help me with WinDVD 9 on Windows 7 build 7000 beta 1 x64, it won’t run.

    Error during install:
    Error 1904 Module c:\program files\intervideo\common\bin\IVIVIDEO.AX failed to register Hresult – 2147220473. contact your support personal.

    I tried: regsvr32 “C:\Program Files (x86)\InterVideo\Common\Bin\iviaudio.ax”, but still WinDVD 9 wouldn’t start.

  6. Rodrigo January 11, 2009 at 2:12 am

    Error 1001. It can not complete! Why?

  7. Infi January 11, 2009 at 2:52 am

    This works great! Thank you, internet.

  8. Rafael January 11, 2009 at 3:03 am

    @Rodrigo: I emailed you asking for a screenshot. I would like to resolve this offline.

  9. Henry January 11, 2009 at 8:24 am

    I want exactly is CheckUpdateWPFPerfInstalled?
    Why Windows 7 have a major version no 6?

  10. Henry January 11, 2009 at 8:26 am

    Sorry typing wrong above I mean
    What exactly is CheckUpdateWPFPerfInstalled?

  11. Rafael January 11, 2009 at 8:28 pm

    CheckUpdateWPFPerfInstalled is a method inside SSCustomInstaller.dll that determines if hotfix 938660 needs to be installed.

  12. Jason January 11, 2009 at 9:13 pm

    Yes, the same nonsense occurs on Window XP SP2 as well, the same ‘You must install the following component…’ message appears and it is requested that I download and install _Update For XP SP2 x86 (KB937106)_ and tells me that this update fixes issues within Windows Presentation Foundation. However, this specific component isn’t even available on Microsoft site. No telling how old the requested version is.

    A run of Microsoft Update states that everything is up-to-date as far as my XP goes. Seems that Songsmith is riddled with installation issues as this seems to be happening to XP users, Vista users as well as Windows 7 users.

    Think there will be a fix added to the installer soon? Any suggestions?

  13. KooKiz January 12, 2009 at 3:44 am

    Kind of funny, when we know that the major version number of Seven is “6″ to avoid compatibility problems :)

  14. anonymous January 13, 2009 at 5:39 am

    Can’t Tom Warren download Orca and remove the requirement from the MSI?

  15. Rafael January 13, 2009 at 8:26 am

    No, because as the article points out, the check isn’t inside the MSI…

  16. Wulfy January 13, 2009 at 11:46 am

    That’s great man! Thanks, now I can use this crappy piece of software for creating some more crappy tunes! hehe

  17. Stets January 15, 2009 at 9:20 am

    As KoolKiz said, the whole point of going with the major version as 6 was to let programs that only checked the major version number to treat it like Vista to reduce compatibility problems. But 7 doesn’t act *just* like Vista, as evidenced by this (somewhat peculiar) case.

  18. Pizzaboy192 at OSBG.Co.uk January 15, 2009 at 11:12 pm

    think you could do a workaround like this for the latest VPC beta?

    i could link you to where to get it

  19. Peter Frank January 26, 2009 at 1:36 pm

    Downloaded and installed Songsmith on my computer and the hardware lives up to the standards met for Songsmith without problems. Thou, after installing Songsmith, the application wount start at all. Microsoft states in their faq it could take up to 15 seconds but, well, Songsmith doesn’t show up at all in Task Manager, not even as a process.

    English Windows XP, SP3.

    Anyone else having this problem (installs ok but will not react when trying to start the application).
    Suggestions for solution or is this another “bug” in Songsmith with regards from Microsoft?

    Sincerely,
    Peter Frank

    Ps: This kinda software is something that my daughter would highly appreciate if it would work.

  20. Elmer January 30, 2009 at 12:36 pm

    Hel With MacDrive 7 on windows 7 beta
    :S

    please

  21. qmt49 January 31, 2009 at 9:52 am

    LOL, they didn’t even bother to give that error message a proper icon – they’ve just left the standard Visual Studio one. FAIL.

  22. Simon February 19, 2009 at 2:22 pm

    I cant install it, i got 1001 problem. i downloaded your kit and placed the files exact how you bescribed it. but allways when i try: 1001 error. please help

  23. weegee March 7, 2009 at 1:54 am

    i keep on getting error 1001 too :(

  24. santtuk April 9, 2009 at 7:40 am

    Can anybody help us with the 1001 problem? Can’t figure it out.