<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: Deployment of VC2008 apps without installing anything</title>
	<link>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/</link>
	<description>Infos about Windows development and dotNET Framework</description>
	<pubDate>Thu, 09 Feb 2012 05:58:52 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
		<item>
		<title>By: DIrk Mattes</title>
		<link>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-1353</link>
		<dc:creator>DIrk Mattes</dc:creator>
		<pubDate>Sat, 07 Jan 2012 15:47:22 +0000</pubDate>
		<guid>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-1353</guid>
		<description>Hallo all,

after a half a year of using VS2010 i switched back to VS2008, cause i found VS2010 mostly unusable. It's much slower, unstable, compiling and linking is slower, the new data format of Class viewer and browser information is big shit, runtime has errors or unforseeable effects... and so on.

Now that i had this manifest hell again, i found out a easy solution for that problem. I know, it's looking horrable, but its the most efficent way to overcome this ERROR, that Mircosoft made:

Edit the crtassem.h in C:\Program Files\Microsoft Visual Studio 9.0\VC\include directory to always define _BIND_TO_CURRENT_VCLIBS_VERSION.

Like this:

#if !defined(_BIND_TO_CURRENT_VCLIBS_VERSION)
  #define _BIND_TO_CURRENT_VCLIBS_VERSION 1
#endif

or change the original

#ifndef _CRT_ASSEMBLY_VERSION
#if _BIND_TO_CURRENT_CRT_VERSION
#define _CRT_ASSEMBLY_VERSION "9.0.30729.1"
#else
#define _CRT_ASSEMBLY_VERSION "9.0.21022.8"
#endif
#endif

to

#ifndef _CRT_ASSEMBLY_VERSION
#if _BIND_TO_CURRENT_CRT_VERSION
#define _CRT_ASSEMBLY_VERSION "9.0.30729.1"
#else
#define _CRT_ASSEMBLY_VERSION "9.0.30729.1"
#endif
#endif


Theres one more thing:

If you really have a manifest problem and guessing why, just let windows trace the loading of the application with

sxstrace Trace -logfile:log.bin

start your program, then

sxstrace Stoptrace

and convert the logfile to human readable format with

sxstrace Parse -logfile:log.bin -outfile:log.txt

With this, your can see a protocol of loaded and found sxs-dlls, manifests and so on. Very interesting...

Good luck!</description>
		<content:encoded><![CDATA[<p>Hallo all,</p>
<p>after a half a year of using VS2010 i switched back to VS2008, cause i found VS2010 mostly unusable. It&#8217;s much slower, unstable, compiling and linking is slower, the new data format of Class viewer and browser information is big shit, runtime has errors or unforseeable effects&#8230; and so on.</p>
<p>Now that i had this manifest hell again, i found out a easy solution for that problem. I know, it&#8217;s looking horrable, but its the most efficent way to overcome this ERROR, that Mircosoft made:</p>
<p>Edit the crtassem.h in C:\Program Files\Microsoft Visual Studio 9.0\VC\include directory to always define _BIND_TO_CURRENT_VCLIBS_VERSION.</p>
<p>Like this:</p>
<p>#if !defined(_BIND_TO_CURRENT_VCLIBS_VERSION)<br />
  #define _BIND_TO_CURRENT_VCLIBS_VERSION 1<br />
#endif</p>
<p>or change the original</p>
<p>#ifndef _CRT_ASSEMBLY_VERSION<br />
#if _BIND_TO_CURRENT_CRT_VERSION<br />
#define _CRT_ASSEMBLY_VERSION &#8220;9.0.30729.1&#8243;<br />
#else<br />
#define _CRT_ASSEMBLY_VERSION &#8220;9.0.21022.8&#8243;<br />
#endif<br />
#endif</p>
<p>to</p>
<p>#ifndef _CRT_ASSEMBLY_VERSION<br />
#if _BIND_TO_CURRENT_CRT_VERSION<br />
#define _CRT_ASSEMBLY_VERSION &#8220;9.0.30729.1&#8243;<br />
#else<br />
#define _CRT_ASSEMBLY_VERSION &#8220;9.0.30729.1&#8243;<br />
#endif<br />
#endif</p>
<p>Theres one more thing:</p>
<p>If you really have a manifest problem and guessing why, just let windows trace the loading of the application with</p>
<p>sxstrace Trace -logfile:log.bin</p>
<p>start your program, then</p>
<p>sxstrace Stoptrace</p>
<p>and convert the logfile to human readable format with</p>
<p>sxstrace Parse -logfile:log.bin -outfile:log.txt</p>
<p>With this, your can see a protocol of loaded and found sxs-dlls, manifests and so on. Very interesting&#8230;</p>
<p>Good luck!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DIrk Mattes</title>
		<link>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-1329</link>
		<dc:creator>DIrk Mattes</dc:creator>
		<pubDate>Mon, 22 Aug 2011 08:27:15 +0000</pubDate>
		<guid>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-1329</guid>
		<description>Hello Jochen,

thanks for that very helpful advice. I spend day and days investigating that matter... without a solution.

Your my hero!

Greetings, 

Dirk</description>
		<content:encoded><![CDATA[<p>Hello Jochen,</p>
<p>thanks for that very helpful advice. I spend day and days investigating that matter&#8230; without a solution.</p>
<p>Your my hero!</p>
<p>Greetings, </p>
<p>Dirk</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Articles about _bind_to_current_vclibs_version 1 volume 2 &#171; Article Directory</title>
		<link>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-1203</link>
		<dc:creator>Articles about _bind_to_current_vclibs_version 1 volume 2 &#171; Article Directory</dc:creator>
		<pubDate>Sat, 12 Jun 2010 14:01:57 +0000</pubDate>
		<guid>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-1203</guid>
		<description>[...] Jochen Kalmbach&#8217;s Blog &#8221; Blog Archive &#8221; Deployment of VC2008 &#8230; The problem is that by default VC2008 uses the DLL-version of the CRT/MFC. &#8230; #define _BIND_TO_CURRENT_VCLIBS_VERSION 1. in stdafx.h (at the top) or in your project &#8230; [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Jochen Kalmbach&#8217;s Blog &#8221; Blog Archive &#8221; Deployment of VC2008 &#8230; The problem is that by default VC2008 uses the DLL-version of the CRT/MFC. &#8230; #define _BIND_TO_CURRENT_VCLIBS_VERSION 1. in stdafx.h (at the top) or in your project &#8230; [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Troubleshooting VC++ Side by Side Problems &#171; DAVID Systems &#8211; R&#38;D Blog</title>
		<link>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-829</link>
		<dc:creator>Troubleshooting VC++ Side by Side Problems &#171; DAVID Systems &#8211; R&#38;D Blog</dc:creator>
		<pubDate>Thu, 18 Feb 2010 15:36:02 +0000</pubDate>
		<guid>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-829</guid>
		<description>[...] http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/ [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] <a href="http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/" rel="nofollow">http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/</a> [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gautam Jain</title>
		<link>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-557</link>
		<dc:creator>Gautam Jain</dc:creator>
		<pubDate>Mon, 02 Nov 2009 11:58:41 +0000</pubDate>
		<guid>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-557</guid>
		<description>Fantastic. Thanks.

_BIND_TO_CURRENT_VCLIBS_VERSION tip worked for me.</description>
		<content:encoded><![CDATA[<p>Fantastic. Thanks.</p>
<p>_BIND_TO_CURRENT_VCLIBS_VERSION tip worked for me.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gavin</title>
		<link>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-552</link>
		<dc:creator>Gavin</dc:creator>
		<pubDate>Fri, 23 Oct 2009 21:28:37 +0000</pubDate>
		<guid>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-552</guid>
		<description>You are a star, sir.  This page has been really helpful.  Thankyou.</description>
		<content:encoded><![CDATA[<p>You are a star, sir.  This page has been really helpful.  Thankyou.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Remington Furman</title>
		<link>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-548</link>
		<dc:creator>Remington Furman</dc:creator>
		<pubDate>Tue, 13 Oct 2009 18:00:15 +0000</pubDate>
		<guid>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-548</guid>
		<description>Thank you very much for the tip about manually correcting the version in the manifest files.  I never would have guessed that they'd ship a bogus manifest with the DLLs.

Setting version="9.0.21022.8" worked perfectly for me.</description>
		<content:encoded><![CDATA[<p>Thank you very much for the tip about manually correcting the version in the manifest files.  I never would have guessed that they&#8217;d ship a bogus manifest with the DLLs.</p>
<p>Setting version=&#8221;9.0.21022.8&#8243; worked perfectly for me.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex</title>
		<link>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-542</link>
		<dc:creator>Alex</dc:creator>
		<pubDate>Fri, 11 Sep 2009 01:26:42 +0000</pubDate>
		<guid>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-542</guid>
		<description>Thanks for the _BIND_TO_CURRENT_VCLIBS_VERSION tip!</description>
		<content:encoded><![CDATA[<p>Thanks for the _BIND_TO_CURRENT_VCLIBS_VERSION tip!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Svetoslav Kyuchukov</title>
		<link>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-479</link>
		<dc:creator>Svetoslav Kyuchukov</dc:creator>
		<pubDate>Fri, 21 Aug 2009 11:28:26 +0000</pubDate>
		<guid>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-479</guid>
		<description>Hello Jochen,

Thanks for the useful article. The described technique work also fine for deploying of debug versions, by working with corresponding debug folders and manifest files:
(Microsoft.VC90.DebugCRT, Microsoft.VC90.DebugCRT.manifest, etc.)
Currently I work on a VS2008 solution that contain 4 executables and 18 dlls, and deploying debugs is a practical (for Testers, PMs, etc. purposes).

And further, even the Common Control Dll (comctl32.dll) can be deployed locally, skipping the WinSxS. This can be done with the following steps:

1. Create a folder "Microsoft.Windows.Common-Controls" in deployment exe folder, for example
MyApp\exe\Microsoft.Windows.Common-Controls

2. copy comctl32.dll file from C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.0.0_x-ww_1382d70a folder
into MyApp/exe/Microsoft.Windows.Common-Controls folder

3. copy x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.0.0_x-ww_1382d70a.Manifest file from C:\WINDOWS\WinSxS\Manifests folder
into MyApp/exe/Microsoft.Windows.Common-Controls folder

4. rename x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.0.0_x-ww_1382d70a.Manifest to Microsoft.Windows.Common-Controls.Manifest

5. remove publicKeyToken from this new manifest (Microsoft.Windows.Common-Controls.Manifest)

6. in all dlls and exes manifests remove publicKeyToken from the section described "Microsoft.Windows.Common-Controls".

Now comctl32.dll is deployed locally, and WinSxS is bypassed.


Best regards,
Svetoslav Kyuchukov

Eurorisksystems Ltd.
Varna, BG</description>
		<content:encoded><![CDATA[<p>Hello Jochen,</p>
<p>Thanks for the useful article. The described technique work also fine for deploying of debug versions, by working with corresponding debug folders and manifest files:<br />
(Microsoft.VC90.DebugCRT, Microsoft.VC90.DebugCRT.manifest, etc.)<br />
Currently I work on a VS2008 solution that contain 4 executables and 18 dlls, and deploying debugs is a practical (for Testers, PMs, etc. purposes).</p>
<p>And further, even the Common Control Dll (comctl32.dll) can be deployed locally, skipping the WinSxS. This can be done with the following steps:</p>
<p>1. Create a folder &#8220;Microsoft.Windows.Common-Controls&#8221; in deployment exe folder, for example<br />
MyApp\exe\Microsoft.Windows.Common-Controls</p>
<p>2. copy comctl32.dll file from C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.0.0_x-ww_1382d70a folder<br />
into MyApp/exe/Microsoft.Windows.Common-Controls folder</p>
<p>3. copy x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.0.0_x-ww_1382d70a.Manifest file from C:\WINDOWS\WinSxS\Manifests folder<br />
into MyApp/exe/Microsoft.Windows.Common-Controls folder</p>
<p>4. rename x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.0.0_x-ww_1382d70a.Manifest to Microsoft.Windows.Common-Controls.Manifest</p>
<p>5. remove publicKeyToken from this new manifest (Microsoft.Windows.Common-Controls.Manifest)</p>
<p>6. in all dlls and exes manifests remove publicKeyToken from the section described &#8220;Microsoft.Windows.Common-Controls&#8221;.</p>
<p>Now comctl32.dll is deployed locally, and WinSxS is bypassed.</p>
<p>Best regards,<br />
Svetoslav Kyuchukov</p>
<p>Eurorisksystems Ltd.<br />
Varna, BG</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chuck</title>
		<link>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-474</link>
		<dc:creator>Chuck</dc:creator>
		<pubDate>Wed, 19 Aug 2009 13:11:50 +0000</pubDate>
		<guid>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-474</guid>
		<description>Figured it out...It's a long story. If anyone wants to hear it, let me know.</description>
		<content:encoded><![CDATA[<p>Figured it out&#8230;It&#8217;s a long story. If anyone wants to hear it, let me know.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chuck</title>
		<link>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-470</link>
		<dc:creator>Chuck</dc:creator>
		<pubDate>Tue, 18 Aug 2009 15:56:54 +0000</pubDate>
		<guid>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-470</guid>
		<description>I have updated my dlls and manifest files to the new version, 9.0.30729.4148 and my exe won't run. I have opened my .exe file and it is looking for old version (9.0.30729.1). I found the ***.exe.intermediate.manifest in the Release dir. It says old version. I can't figure out what creates ***.exe.intermediate.manifest since it is created during the build.</description>
		<content:encoded><![CDATA[<p>I have updated my dlls and manifest files to the new version, 9.0.30729.4148 and my exe won&#8217;t run. I have opened my .exe file and it is looking for old version (9.0.30729.1). I found the ***.exe.intermediate.manifest in the Release dir. It says old version. I can&#8217;t figure out what creates ***.exe.intermediate.manifest since it is created during the build.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jkalmbach</title>
		<link>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-454</link>
		<dc:creator>jkalmbach</dc:creator>
		<pubDate>Thu, 06 Aug 2009 14:13:04 +0000</pubDate>
		<guid>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-454</guid>
		<description>No, this is not possible. 
The easiest way is to use static linking:
http://blog.kalmbach-software.de/2008/03/03/screencast-statically-link-to-the-c-runtime-to-prevent-vcredist-and-overcome-application-configuration-problems/</description>
		<content:encoded><![CDATA[<p>No, this is not possible.<br />
The easiest way is to use static linking:<br />
<a href="http://blog.kalmbach-software.de/2008/03/03/screencast-statically-link-to-the-c-runtime-to-prevent-vcredist-and-overcome-application-configuration-problems/" rel="nofollow">http://blog.kalmbach-software.de/2008/03/03/screencast-statically-link-to-the-c-runtime-to-prevent-vcredist-and-overcome-application-configuration-problems/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michiel</title>
		<link>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-453</link>
		<dc:creator>Michiel</dc:creator>
		<pubDate>Thu, 06 Aug 2009 14:04:09 +0000</pubDate>
		<guid>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-453</guid>
		<description>Would it be possible to link to the VC80 libraries within VC2008 ? 
We have a lot of systems around with the 2005 redist already installed. We would like to develop using VC2008 but when we update our software we don't like to install a lot of new dependencies.
Thx</description>
		<content:encoded><![CDATA[<p>Would it be possible to link to the VC80 libraries within VC2008 ?<br />
We have a lot of systems around with the 2005 redist already installed. We would like to develop using VC2008 but when we update our software we don&#8217;t like to install a lot of new dependencies.<br />
Thx</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jkalmbach</title>
		<link>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-309</link>
		<dc:creator>jkalmbach</dc:creator>
		<pubDate>Tue, 02 Jun 2009 16:00:16 +0000</pubDate>
		<guid>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-309</guid>
		<description>Yes. There are the same steps... expect the version numbers are different; you need to look at your applications-manifest to lookup the correct version number.</description>
		<content:encoded><![CDATA[<p>Yes. There are the same steps&#8230; expect the version numbers are different; you need to look at your applications-manifest to lookup the correct version number.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ezmail</title>
		<link>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-308</link>
		<dc:creator>Ezmail</dc:creator>
		<pubDate>Tue, 02 Jun 2009 15:59:42 +0000</pubDate>
		<guid>http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/#comment-308</guid>
		<description>Hi.. Thanks for the information.. Currently I have the same problem, but I use VC 2005. Is that same steps?</description>
		<content:encoded><![CDATA[<p>Hi.. Thanks for the information.. Currently I have the same problem, but I use VC 2005. Is that same steps?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

