如何安装VC库?
一个看似简单,其实一点都不简单的问题。我一直以为放在应用程序的目录下是最好的,可以避免Dll Hell,其实不然!
这篇文章“ Why does VC8 install libraries to WinSxS?”做了非常好的解释!原来微软也走过了很多的弯路。
VC6里,为了更新的方便,建议放在System32下。
VC7里,考虑到Dll Hell,建议放到应用程序的目录下。
VC8里,建议放到系统目录WinSxS下以保证更新方便,并使用Manifest支持不同版本Dll的共存。
总结一下就是,VC6和VC7库都最好安装到System32目录下。在2K系统里,VC8也安装到System32目录下。在XP以后的系统里,则安装到WinSxS目录下。安装VC8库的时候,建议使用Merge Module来安装,以正确的安装到WinSxS目录下。否则如果放在本地目录的话,记得把manifes文件也拷贝过来。
VC8库的安装可不那么简单,有很多技巧,有人还为此写了工具。
Bootstrapper for the VC++ 2005 Redists
不过又说SP1之后,问题没有那么复杂了,但是还是要了解得更多才好。
Visual C++ Application: How to use manifests and re-distributable assemblies?
Side by Side Assembly看起来是好东西,但是问题也不少,除了问题很难调试。
Diagnosing SideBySide failures
这一切都是我始料未及的,本来我只是想知道Windows目录下的WinSxS到底是什么回事的,搞到现在我还是没有找到WinSxS的微软官方文档。倒是意外的发现了一个微软的工具IExpress,可以用来制作自解压程序,找类似的免费工具很久了。
一个看似简单,其实一点都不简单的问题。我一直以为放在应用程序的目录下是最好的,可以避免Dll Hell,其实不然!
这篇文章“ Why does VC8 install libraries to WinSxS?”做了非常好的解释!原来微软也走过了很多的弯路。
VC6里,为了更新的方便,建议放在System32下。
VC7里,考虑到Dll Hell,建议放到应用程序的目录下。
VC8里,建议放到系统目录WinSxS下以保证更新方便,并使用Manifest支持不同版本Dll的共存。
总结一下就是,VC6和VC7库都最好安装到System32目录下。在2K系统里,VC8也安装到System32目录下。在XP以后的系统里,则安装到WinSxS目录下。安装VC8库的时候,建议使用Merge Module来安装,以正确的安装到WinSxS目录下。否则如果放在本地目录的话,记得把manifes文件也拷贝过来。
VC8库的安装可不那么简单,有很多技巧,有人还为此写了工具。
Bootstrapper for the VC++ 2005 Redists
不过又说SP1之后,问题没有那么复杂了,但是还是要了解得更多才好。
Visual C++ Application: How to use manifests and re-distributable assemblies?
Side by Side Assembly看起来是好东西,但是问题也不少,除了问题很难调试。
Diagnosing SideBySide failures
这一切都是我始料未及的,本来我只是想知道Windows目录下的WinSxS到底是什么回事的,搞到现在我还是没有找到WinSxS的微软官方文档。倒是意外的发现了一个微软的工具IExpress,可以用来制作自解压程序,找类似的免费工具很久了。