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

爷,独闯天下 提交于 2019-11-30 18:25:18
Hans Passant

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.

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.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!