Building ICU4C 4.4.2 with Visual Studio 2010 (Ultimate or Professional) under Windows 7 (x64 or x86) or Windows XP Professional x86 result in an invalid icudt44.dll if both Debug & Release are build to the same output directory (as default).
While building ICU4C from source, a stub icudt44.dll is the first thing built (at 3KB). However that's not finished as the last project add about 14MB of data into the dll. The combination of VS2010 & ICU4C 4.4.2 does not do that last step if and only if one build both the Debug & Release files into the same output directory (which is the default) resulting in a DLL that's missing about 14MB of data.
This problem was not encountered when building previous versions of ICU4C such as 4.4 & 4.4.1 with VS2010. This problem is also not encountered if only one of Debug or Release version are built, or previous output have been moved to a different directory.
Cleaning up the build should work around this, if indeed it is a problem in 4.6
Please comment on whether doing a clean build between Debug and Release works around the issue. I'll check out whether this is still present on 4.6.x, as we have switched to VS2010 natively.
Also, using a Cygwin build with different output dirs should also resolve the issue.
Hmm, that works. "Build Solution" (under Debug), and then "Rebuild Solution" (under Release).
Thanks, so it has a workaround.
Todo: determine whether still present in 4.6.x
Could not reproduce on 4.7.x - built as Debug and then Release, and a 'full' icudt47.dll was generated.