VS postbuild事件破坏了DLL

时间:2012-08-27 08:01:33

标签: c++ visual-studio-2010 dll build

我有一个奇怪的问题。 我有一个针对两个DLL的VS2010 C ++解决方案和一个使用这两个DLL的应用程序的不同解决方案。到目前为止,对DLL的更改必须手动将它们复制到应用程序的相应目录中。

我现在介绍了一个post build事件,以便在每次构建时自动复制更改的DLL。

copy $(TargetDir)$(TargetName).lib ..\..\lib\AppDir\$(TargetName).lib
copy $(TargetPath) ..\..\AppBinDir\$(TargetFileName)
copy $(TargetDir)$(TargetName).pdb ..\..\AppBinDir\$(TargetFileName)

当我尝试在构建DLL之后启动应用程序时,我收到“无效图像”错误以及某些内容可能不适合Windows的说明。如果我用DependencyWalker打开DLL,我会收到错误“找不到DOS或PE签名”。

如果我手动复制DLL,一切正常。所以我假设后期构建中的复制操作存在问题。

1 个答案:

答案 0 :(得分:1)

copy $(TargetDir)$(TargetName).pdb ..\..\AppBinDir\$(TargetFileName)

此行使用pdb文件覆盖Dll。可能你想要这样的东西:

copy $(TargetDir)$(TargetName).pdb ..\..\AppBinDir\$(TargetName).pdb