我有一个使用 Visual Studio 2010 用非托管 C++ 编写的驱动程序。在 64 位 Windows 7 上编译 DLL 时,构建后步骤是:
echo Copying $(TargetFileName) to the OS's 64-bit system folder ...
xcopy $(TargetPath) $(SystemRoot)\System32\. /Y /Q
但是,该 dll 被复制到 $(SystemRoot)\SysWOW64\,这应该只发生在 32 位程序集上。
但!如果我使用 Windows 资源管理器或使用命令 shell 中的 xcopy 将 dll 复制到 System32,则 dll 正确放置在 System32 文件夹中。我究竟做错了什么?是因为 Visual Studio 是一个 32 位程序并且 POST-BUILD 事件是在该 32 位进程的上下文中运行的吗?