Cannot run the Setup file which created by VS2013 in windows xp

前端 未结 2 875
有刺的猬
有刺的猬 2021-01-04 05:44

Created a Setup file developed in c# in VS-2013, Dotnet4 framework and for 32bit Architecture. It is getting installed in windows 7 and windows 8 but not in Windows XP (SP3)

相关标签:
2条回答
  • 2021-01-04 06:29

    I'll attempt to document the basic problem. At issue is a DLL that gets embedded in the MSI that provides custom actions that the installer uses, like the CheckFx() function that fails here. A helper function that checks the installed .NET Framework version. You'll find it back on your machine in C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\VSI\bin\dpca.dll.

    Core problem is that this DLL is no longer compatible with XP. VS2012 was the first VS version that started changing the minimum required Windows version for executables. Something you can see by running Dumpbin.exe /headers dpca.dll from the Visual Studio Command Prompt. The output, trimmed to fit:

    Dump of file dpca.dll
    
    PE signature found
    
    File Type: DLL
    
    ...
    
    OPTIONAL HEADER VALUES
                 10B magic # (PE32)
               12.00 linker version
               34200 size of code
                8800 size of initialized data
                   0 size of uninitialized data
               133E3 entry point (100133E3)
                1000 base of code
               36000 base of data
            10000000 image base (10000000 to 1003FFFF)
                1000 section alignment
                 200 file alignment
                6.00 operating system version              // <=== here
               10.00 image version
                6.00 subsystem version                     // <=== here
                   0 Win32 version
            ... etc
    

    Note the marked version numbers, 6.00 is the Windows version of Vista. XP belongs to the previous generation, major version 5. Inevitably the custom action fails, the DLL cannot be loaded on XP.

    Working around this problem is technically possible, you need to replace dpca.dll with an older version, one that can still work on XP. You need access to an earlier version of VS, 2010 or less. The topic of this Q+A.

    Otherwise yet another reminder that XP truly is over and done with. Pass the support cost on to your clients and they tend to start doing the right thing :) Can't help with that however.

    0 讨论(0)
  • 2021-01-04 06:43

    I was using Visual Studio Installer From Microsoft, after googling around with no answers I decided to try out InstallShield Limited Edition from Flexera Software. This successfully installed on my Windows XP machine.

    0 讨论(0)
提交回复
热议问题