我上的Visual C++ 2008 Express的转换VC++ 6工作区后,建立一个应用程序。建立在自身去成功,但真正的问题我已经是与生成清单,看起来像这样:如何分发C运行时(CRT)库
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level='asInvoker' uiAccess='false' />
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.30729.1' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
</assembly>
我的问题是:
我怎样才能限制清单列出只有一个版本,最好是9.0。 21022.8。这样我可以在应用程序中捆绑必要的C-Run时间依赖关系?
我知道可能的根本原因这个问题是它使用9.0.21022.8和我的VC++速成2008年可能会使用一些9.0.30729.1库相关。这就是为什么两者都列为依赖项。
注:
我下面的方法B)的http://www.codeproject.com/Tips/211756/How-to-Distribute-C-run-time-CRT-Libraries-with-Yo?display=Print其中谈到复制应用程序文件夹内的CRT DLL文件和Microsoft.VCXX.CRT.manifest文件。
你需要解决这个问题。是的,使用相同的编译器设置重建所有库。 –
除了汉斯的评论,值得一读[this](http://www.nuonsoft.com/blog/2008/10/29/binding-to-the-most-recent-visual-studio-libraries/),它告诉你有一点关于控制你的代码绑定到的库的版本。 – tinman
感谢@tinman,您发布的链接有助于解决我的问题。 – amit