2012-07-11 57 views
0

我浏览过StackOverflow,但找不到任何实际的解决方案,似乎有这样一个简单的解决方案:我有一堆在VS2005中开发的.Net项目或VS2008,我将它们导入VS2010。其中之一是一个C++项目,目前的目标是框架4.0(不是我自己选择的)。我们的一位客户在运行此应用程序时遇到问题,缺少MSVCP100D.dll。我检查了这个线程what is MSVCP100D.dll?和最被接受的答案很简单:让客户端安装Microsoft Visual C++ 2010 Redistributable Package。但是,客户端固执地不去安装它,我知道他们安装了Microsoft Visual C++ 2008 Redistributable。所以,如果我的结论是正确的,并且MSVCP100D.dll是VS2010的新成员,那么我可以只针对以前的框架版本,在VS2010中重建项目,我很乐意。问题是:我怎样才能获得VC++目标框架?我可以找到几条改变C#和VB项目的指南,但没有一条关于VC++。任何指针?降低Visual C++ 2010框架目标

编辑:对于那些建议我在发布模式下编译它的人:我是!有人指出,“D”代表调试,这很奇怪。

+0

你确实看到这是该库的调试版本(**不能** [合法]重新分配)? – 2012-07-11 19:40:34

+0

你有没有试过在* release *模式下编译你的程序? MSVCP100D.DLL是运行时库的* debug *版本。这在您所连接问题的接受答案中有解释。 – 2012-07-11 19:40:56

+0

好吧,我改变了平台工具集,确保我在发布模式下进行编译(虽然我很确定之前)并将它发送出去(当你在你的机器中安装了所有东西时,测试缺乏依赖关系还是挺有用的)。我会尽快回复支持部门的反馈 – makoshichi 2012-07-11 20:02:23

回答

1

实际上,您正在使用运行时的调试版本(即“D”)。你尝试编译一个非调试版本吗?

另一种考虑的可能是静态链接到运行时库。你的程序会更大,但不会有DLL依赖。

+0

感谢您提供有关“D”的信息,尽管我很确定我将它编译为发布模式。另外,静态链接.dll并不是很重要,因为它可能会导致某种“链式依赖性反应”^^ – makoshichi 2012-07-11 20:04:04