如何在W7测试机上部署Debug CRT VS2008 msvcr90d.dll? [英] How to deploy Debug CRT VS2008 msvcr90d.dll on W7 test machine?

查看:67
本文介绍了如何在W7测试机上部署Debug CRT VS2008 msvcr90d.dll?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,



首先,发布版本没问题。我需要帮助调试构建在几台测试机器上 - 而不是最终用户机器。



我有一个第三方DLL,它被构建为Debug与VS2008。我的VC ++代码使用它,并在2010或2012年(在W7中)编译。但是要在我的开发机器上构建和运行2012或2010,我还需要安装VS2008,以便调试CRT DLL可用,这样我的第三方DLL就可以加载(作为我的VS2012 Debug应用程序的一部分) 。我很感激我不允许重新分发调试DLL。



我想避免在我的所有开发机器上安装VS2008。所以我需要在这些机器上部署VS 2008版本的msvcr90d.dll。但是我无法做到这一点。我已经阅读了有关清单的各种文章,关于从Microsoft.VC90.DebugCRT.manifest文件中删除公钥(或不是)。我已经尝试将此清单文件添加到我的VS2012项目中,但没有任何作用。我可以链接,但不能运行。



有没有人真正设法在没有安装VS2008的机器上安装调试VS2008 CRT dll msvcr90d.dll ?我不想将它添加到winsxs系统缓存中 - 我只是想要一个并排安装来测试我的应用程序。



谢谢!

Tim。

解决方案

安装VS2008的distributable软件包后,找到dll的发行版并将调试dll添加到同一目录。 [我认为这仍然有效;我以前做过大约VS2003左右。]



请注意,调试dll不是可分发包的一部分,也没有许可分发。微软过去曾经有一篇关于如何在特定机器上调试问题时如何安装调试dll的技术文章,但我无法在任何地方找到它(VS2008可能已经过时/错误)。



在你的问题陈述中另一件麻烦的事情是你似乎在开发代码中混合调试和发布DLL。您应该只使用一个环境或另一个环境,否则您将体验到大量的GPF和BSOD。如果您正在开发代码,例如在不同的DLL中对类进行new / delete,则可能会使堆崩溃。调试和发布版本中的许多结构都有不同的大小。



tl; dr:如果你在应用程序中混合调试/发布DLL,你会遇到麻烦。

我相信如果您将MFC dll和manifest文件复制并粘贴到与需要它的文件(exe或dll)相同的目录中,它将使用它。如果在那里找不到它,它确实需要清单文件。我以前做过这个并且工作正常。


你只需安装一个软件包, Microsoft Visual C ++ 2008 Redistributable Package http://www.microsoft.com/en-us/download/details.aspx?id=29 [ ^ ] 。



您应该能够为其他需要使用的指令集架构找到并安装类似的软件包。



-SA


Hello all,

Firstly, release builds are fine. I need help with Debug builds on a couple of test machines - not end-user machines.

I have a 3rd-party DLL that''s been built as Debug with VS2008. My VC++ code uses this, & compiles in 2010 or 2012 (in W7). However to build & run in 2012 or 2010 on my dev machines, I need to also have VS2008 installed, just so that the Debug CRT DLLs are available, so that my 3rd-party DLL can load (as part of my VS2012 Debug app). I appreciate that I''m not allowed to redistribute the debug DLLs.

I''d like to avoid having to install VS2008 on all my dev machines. So I need to deploy the VS 2008 version of msvcr90d.dll on those machines. However I''ve been unable to do this. I''ve read various articles about manifests, about removing the public-key from the Microsoft.VC90.DebugCRT.manifest file (or not). I''ve tried adding this manifest file to my VS2012 project, but nothing works. I can link, but not run.

Has anyone actually managed to get the debug VS2008 CRT dll msvcr90d.dll installed on a machine that doesn''t have VS2008 installed? I don''t want to add it to the winsxs system cache - I just want a side-by-side install for testing my app.

Thanks!
Tim.

解决方案

After installing the distributable package for VS2008, find the release version of the dll and add the debug dlls to the same directory. [I assume that this still works; I used to do it up to about VS2003 or so.]

Note that the debug dlls are not a part of the distributable package and are not licensed for distribution. Microsoft used to have a tech article on how to install the debug dlls when trying to debug a problem on a specific machine, but I can''t find it anywhere (and it might be obsolete/wrong with VS2008).

One other thing that is troublesome in your problem statement is that you seem to be mixing debug and release DLLs in your development code. You should only use one environment or the other, or you will experience a lot of GPFs and BSODs. If you are developing code where new/delete for a class is done in different DLLs for example, you will potentially mess up your heap. Many structures are different sizes in debug and release versions.

tl;dr: You are looking for trouble if you mix debug/release DLLs in an app.


I believe if you copy and paste the MFC dlls and manifest file onto the same directory as the file which requires it (exe or dll) it will use it. It does require the manifest file otherwise if won''t find them there. I''ve done this before and it works fine.


You need to install only one package, Microsoft Visual C++ 2008 Redistributable Package: http://www.microsoft.com/en-us/download/details.aspx?id=29[^].

You should be able to find and install similar package for others instruction-set architectures you need to use.

—SA


这篇关于如何在W7测试机上部署Debug CRT VS2008 msvcr90d.dll?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆