首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要洞察如何为C++程序生成清单

需要洞察如何为C++程序生成清单
EN

Stack Overflow用户
提问于 2010-02-09 05:50:36
回答 1查看 1.1K关注 0票数 3

当我运行我构建的可执行文件时,我会得到以下错误:

系统无法执行指定的程序。

我当时的想法是,这是一个依赖问题与一个VC8.0可再发行DLL (msvcr80d.dll等人)。这些DLL的补丁版本影响了我们的程序,我们遇到了一些问题。

当我在Dependency下打开可执行文件时,会显示以下错误:

代码语言:javascript
复制
Error: The Side-by-Side configuration information in "w:\MYPROGRAM.EXE.manifest" 
       contains errors. This application has failed to start because the
       application configuration is incorrect. Reinstalling the application may
       fix this problem (14001).
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export
         function in a delay-load dependent module.

如果为可执行文件打开清单文件,其中包含以下内容:

代码语言:javascript
复制
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.VC80.DebugCRT' version='8.0.50727.762' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.VC80.DebugCRT' version='8.0.50727.4053' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
  </dependency>
</assembly>

它似乎有两个Microsoft.VC80.DebugCRT依赖程序集的副本。

程序集的8.0.50727.4053版本不在我的并排配置中(我相信此版本附带一个未安装的Visual修补程序)。

如果从清单文件中删除此程序集,则可执行文件运行良好。

但是,当我重新构建我的应用程序时,清单将被重新生成,并再次添加额外的依赖项。

是什么导致将此依赖项添加到清单中?我猜想它与另一个DLL有关,而我的应用程序依赖于在另一台具有不同的可再发行DLL集的PC上构建DLL,但我想确认这一点。

更新:

我在这篇博客文章中尝试了很多建议,但没有太多的运气。奇怪的是,当我进行发布构建时生成的清单不包括8.0.50727.4053条目,但Debug构建包含该条目。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-02-09 06:45:23

你是正确的。Visual 2005的安全更新迫使应用程序使用更新版本的C++和SP1 (8.0.50727.4053而不是8.0.50727.762)。因为它可能是兼容的,所以最好使用新的。你应该和你的应用程序一起发布vcredist_x86.exe。

现在,VS C++不扫描依赖项,因此清单是从核心VS生成的(您可以通过项目设置手动控制它)。我认为VS更新是安装在开发PC上的,所以VS反映在清单中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2227065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档