我有一个.NET应用程序,我想在VM上安装以进行远程调试。
该应用程序使用本机VC ++ DLL,通过DLL链接到MFC和MSVC运行时库。
当我运行依赖于VM时,它表示DLL需要以下DLL:
mfc90d.dll
msvcm90d.dll
msvcp90d.dll
msvcr90d.dll
msjava.dll
此外,它报告以下错误:
错误:[dll path]的Side-by-Side配置信息包含错误。 此应用程序无法启动,因为应用程序配置不正确。 重新安装应用程序可能会解决此问题(14001)。
我不想在VM上安装完整的Visual Studio 2008只是为了调试它。
将所需的DLL安装到VM上的最佳方法是什么?
答案 0 :(得分:4)
调试DLL在vc \ Debug_NonRedist子目录中提供。正确部署它们在MSDN Library article中进行了解释。
答案 1 :(得分:3)
在SP1更新后vs2008中存在/是一个错误,其中清单版本未更新。为了解决这个问题,我必须在远程计算机上执行此操作:
编辑Microsoft.VC90.DebugCRT.manifest 更改 版本= “9.0.30729.4148” 至 版本= “9.0.21022.8”
编辑Microsoft.VC90.DebugMFC.manifest
变化 版本= “9.0.30729.4148” 至 版本= “9.0.21022.8”
[更新]在寻找参考资料时我找到了
重要说明:如果使用Visual Studio 2008 SP1执行此操作,请确保将以下内容放在预编译的标头中:
#define _BIND_TO_CURRENT_VCLIBS_VERSION 1
http://qualapps.blogspot.com/2008/07/visual-studio-2008-c-redistributable.html
答案 2 :(得分:0)
可以为VC ++安装调试可再发行文件。微软甚至会把它们交给你。您只需要清除system32目录中找到的那些,因为它们不能简单地将它们复制到另一台机器上。
查看此博客: http://wdy501.blogspot.com/2010/07/dealing-with-visual-studio.html
我使用博客为VS 2012找到调试.dll,并成功将它们复制到另一台机器并运行调试版本。请注意,MS将“debug_nonRedist”文件放在标有“Microsoft Visual Studio 11.0”的目录结构中。这是我找到的CRT调试dll的完整路径:
C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ VC \ redist \ Debug_NonRedist \ x86 \ Microsoft.VC110.DebugCRT
我在使用调试版本时看到的唯一好处是我可以在我的开发计算机上保持调试模式,并快速将代码转到另一台计算机上,以便在稍微不同的环境下进行测试。我认为没有充分的理由在最终版本中使用调试版本。