VS 复制没有生成事件的依赖 dll
本文关键字:事件 依赖 dll 复制 VS | 更新日期: 2023-09-27 17:55:12
我在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 文件,但没有为此定义生成前或生成后事件。
通过 Build -> Configuration Manager 检查构建配置。
从"活动解决方案"配置中选择"发布"。
应在生成和发布(生成列)中选择所有项目。