Amazing Julian, great find! Don’t happen to have the workflow to load the manifest with MT do you? I’ve just downloaded the SDK but am brand new!
Sure, best I could work out goes as follows, extract the manifest from your built exe using:
"c:\pathto\mt.exe" -inputresource:"C:\pathto\test dll.exe" -out:"C:\pathto\extracted.manifest"
open the file in notepad, insert the following:
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.6195" processorArchitecture="*" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
right above
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"></assemblyIdentity>
</dependentAssembly>
</dependency>
so it now looks like
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.6195" processorArchitecture="*" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"></assemblyIdentity>
</dependentAssembly>
</dependency>
save that as altered.manifest (you can reuse that so long as you don’t alter things like architecture in the ide then run the following to replace the manifest:
"c:\pathto\mt.exe" -manifest "c:\pathto\altered.manifest" -outputresource:"c:\pathto\test dll.exe"
G’luck
Thanks so much! Will give it a crack and report back! Owe you one or two!
J
You could tell them to link the VC runtimes statically instead of dynamically.
Thanks again Julian, Works a treat.
William, I’ll have a chat to the developer…
Thanks again guys, what an amazing community.
If anyone reads this in the future and needs a quick workaround, here is the build script to make it work. All the credit to Julian!
dim MTPath as string
dim result as string
dim resultcode as integer
MTPath = “C:\MT\mt.exe -manifest C:\MT\extracted.manifest -outputresource:” + chr(34)+ CurrentBuildLocationNative + CurrentBuildAppName +chr(34)
result = doShellCommand(MTPath, 20000, resultcode)
Note that you’ll need MT.exe in the path specified.