我想在Visual Studio中有一些奇怪的预构建行为,我想弄清楚。
单个Visual Studio 2008解决方案包含:
托管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文件被复制,但没有为此定义预建或事后生成事件。