views:

186

answers:

2

I had a DLL project on one machine, and copied it to another with freshly installed VS2008. The project builds, but I cannot debug it. Dependecy Walker shows that my DLL sees msvcr90d.dll, but msvcp90d.dll does not see the same DLL. But if I open msvcp90d.dll in separate window then msvcr90d.dll is visible to msvcp90d.dll. This is obviously some SxS issue, but I don't know how to resolve it. I tried several proposed fixes found googling:

  • disable incremental linking,
  • remove and then include manifest building
  • remove Settings folder from My Documents\Visual Studio 2008

None of them works. The situation is the same in both Debug and Release builds. Help!

A: 

Have you installed the Service Pack for VS 2008?

Are you sure this is the reason you can't debug? Does your dll use anything in the c++ library (msvcp90d.dll) that is dependent on the C library (msvcr90d.dll)? If nothing is needed, it won't link unneccesary code.

Have you explicitly ignored this library in your linker settings?

Jess
I did install SP1, but that didn't solve the problem. At this time I have more important issues to work on, so my temporary workaround was to switch to another computer for development. My current assumption is that I misiterpreted the problem and that there may be no issue after all, but I will have to verify this in later time. Stay tuned.
Dialecticus
A: 

I copied the latest project to the computer that exibited the problem, and it turns out that there is no issue after all. Dependancy Walker still shows the same yellow icons as before, but the latest project can be debugged just fine. The problem was obviously in my code, possibly function signature mismatch between C# declaration and actual DLL implementation.

Dialecticus