积极答复者
Microsoft.VC80.CRT.manifest中如何更改版本号

问题
-
我使用VS.NET 2005 编译了几十个EXE文件.用到了Microsoft.VC80.CRT.manifest文件,他指定了3个DLL文件
但 是后来我的编译机器安装了微软新的补丁,DLL更新了 Microsoft.VC80.CRT.manifest文件的版本号也提高了.
之后我更 改了十几个EXE文件中的一个EXE文件.
结果这个EXE文件的Microsoft.VC80.CRT.manifest版本号和之前编译的几十 个EXE的版本号都不一样了导致这个EXE没法正常运行.
我现在知道更新的DLL的名字.想把它替换回旧的版本.但是使用VS.NET编译出的东 西还是标示着高版本的Microsoft.VC80.CRT.manifest.
请问我应该如何操作才能把VS.NET指定的 Microsoft.VC80.CRT.manifest 文件版本降低.让新编译的EXE可以和之前编译的EXE共用一个Microsoft.VC80.CRT.manifest文件呢?
谢谢
Langrisser
答案
-
再加一个assembly啊
也可以用代码自动生成,参考http://stackoverflow.com/questions/110249/building-and-deploying-dll-on-windows-sxs-manifests-and-all-that-jazz
The following is signature, not part of post
Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
Visual C++ MVP- 已标记为答案 Aland LiModerator 2010年6月6日 15:21
全部回复
-
不是随你的程序发布CRT么?你原来的CRT怎么发布到计算机上的?
The following is signature, not part of post
Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
Visual C++ MVP -
不能共用两个CRT?CRT可以共存的
The following is signature, not part of post
Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
Visual C++ MVP -
一个目录下只能有一个 Microsoft.VC80.CRT.manifest 阿这个manifest里面标示了 crt的版本吧? 难道说一个 Microsoft.VC80.CRT.manifest 里面可以写两个版本么?
比如这句 : “<assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.762" processorArchitecture="amd64" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>”
一个Microsoft.VC80.CRT.manifest 只能有一个吧?
Langrisser -
可以有两个,只要DLL不把一个CRT的对象当作另外一个CRt的就可以。
The following is signature, not part of post
Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
Visual C++ MVP -
请问应该如何写 这个 manifest呢?
我现在的manifest是这样写的:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<noInheritable></noInheritable>
<assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.762" processorArchitecture="amd64" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
<file name="msvcr80.dll" hash="***" hashalg="SHA1"><*******>
<file name="msvcp80.dll" hash="***" hashalg="SHA1"><*******>
<file name="msvcm80.dll" hash="***" hashalg="SHA1"><*******>
</assembly>请问如何给这一个manifest中写入两个crt的版本呢?谢谢
Langrisser -
再加一个assembly啊
也可以用代码自动生成,参考http://stackoverflow.com/questions/110249/building-and-deploying-dll-on-windows-sxs-manifests-and-all-that-jazz
The following is signature, not part of post
Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
Visual C++ MVP- 已标记为答案 Aland LiModerator 2010年6月6日 15:21