2012-12-18 41 views
3

我对基于Windows的开发很新颖 - 实际上这是我的第一个项目。如何删除激活上下文生成失败 - 相关程序集 - Microsoft.VC90.DebugCRT

我有一个基于Windows的项目,使用Visual Studio 2008编译成dll文件。 我想删除VS2008上的依赖项,并通过我们在工作时使用的Makefile构建系统进行编译。 汇编工作。

然而,当我运行产生的DLL(我的意思是运行加载生成的DLL测试程序),我得到一个错误 - “应用程序无法正常启动 - 0xc0150002)” 我检查了事件日志 - 和我看到了这篇文章标题中提到的信息。

使然说 - 1)我应该重新启动机器 - 没有工作 2)在机器上安装VS2008上我运行该dll - 不是一个真正的可行的选择 3)加载DLL的应用(这只是一个测试应用程序)也可以通过VS2008进行编译 - 也应该通过构建系统进行编译。

我检查了一切都是32位的。

所以我的问题是 - 有没有一个标志,我失踪处理这个依赖大会的错误? 我问的原因是 - 之前的dll(通过VS2008构建的)可以在没有任何问题的情况下运行 - 因此我想我可能会缺少一些标记/编译选项。

对不起,这个模糊的新手问题。我甚至会很感激,如果有人能指出我的来源阅读,以获得更多的细节。

谢谢!

+1

您将不得不将DLL的发布版本部署到另一台机器,您无法获得安装的CRT的调试版本。 –

+1

互联网上的各种消息来源都表示,使用私有程序集(在您的组织内部,不向第三方再分发)运行调试版本是可能的,但由于Microsoft的一系列严重的技术性决胜决定,似乎并不可行,保佑他们尖尖的头脑。 –

回答

1

VS2008解决方案可以设置为“调试”模式而不是“发布”模式,因此当您构建DLL时,您将获得调试版本,因此要求调试依赖关系。 尝试在VS2008中设置解决方案来构建发布版本,并查看该DLL是否提供相同的错误。

+0

我与供应商提供的DLL集有同样的问题,这为我解决了它。 –