VS在没有构建事件的情况下复制依赖的dll

时间:2013-01-22 10:43:02

标签: c# visual-studio visual-studio-2008 c++-cli dependencies

我想在Visual Studio中有一些奇怪的预构建行为,我想弄清楚。

单个Visual Studio 2008解决方案包含:

  • 原生c ++库项目
  • 托管的c ++ / cli库项目(本机项目的包装器)
  • 一个c#控制台项目(使用cli包装器)

托管c ++ / cli项目依赖于本机c ++项目,
并且c#项目依赖于c ++ / cli项目。 依赖项都是针对项目的,而不是单个的dll。

在调试模式下一切正常。如果我执行主c#项目,则检查所有相关项目的更改,重新编译,并将本机dll复制到相应的输出目录。

在发布模式下,不会自动复制本机dll。

我知道我可以手动定义一个后期构建事件来复制dll,但为什么它会在调试模式下自动复制?任何项目中都没有定义构建前或构建后事件。

什么黑魔法使它在调试模式下自动工作但不在发布模式下工作?


(齿顶)

以下是调试模式的构建日志的摘录:

2>------ Neues Erstellen gestartet: Projekt: CppManaged, Konfiguration: Debug Win32 ------
2>Die Zwischen- und Ausgabedateien für das Projekt "CppManaged" mit der Konfiguration "Debug|Win32" werden gelöscht.
2>Kopieren von "c:\LocalProjects\mysolution\UnmanagedCpp\Debug\unmanaged.dll" in das Zielverzeichnis...
2>Kopieren von "c:\LocalProjects\mysolution\UnmanagedCpp\Debug\unmanaged.pdb" in das Zielverzeichnis...
2>Kompilieren...
2>Stdafx.cpp
2>Kompilieren...
...

这是发布模式的相同日志:

2>------ Neues Erstellen gestartet: Projekt: CppManaged, Konfiguration: Release Win32 ------
2>Die Zwischen- und Ausgabedateien für das Projekt "CppManaged" mit der Konfiguration "Release|Win32" werden gelöscht.
2>Kompilieren...
2>Stdafx.cpp
2>Kompilieren...
...

在调试模式下,dll和pdb文件被复制,但没有为此定义预建或事后生成事件。

0 个答案:

没有答案