桌面程序项目当中, 当项目比较多,生成目录比较多且有目录之分时,单纯大设置 output path会比较累,这时候我们可以采用设置build events来拷贝dll,
设置样式如下( post-build event command):
if $(ConfigurationName) == Debug,这句话是判断当前的模式是否为debug
$(TargetPath):表示当前项目生成dll文件
$(TargetDir) :表示当前项目生成目录。
$(ProjectDir):表示当前project的目录
if $(ConfigurationName) == Debug (
% 拷贝当前project生成的dll到指定的目录%
xcopy "$(TargetPath)" "$(ProjectDir)..\..\程序debug运行目录\" /i /q /y
% 拷贝当前project生成的.pdb文件到指定的目录%
)
xcopy "$(TargetPath)" "$(ProjectDir)..\..\程序输出目录" /i /q /y
xcopy "$(TargetDir)$(TargetName).pdb" "$(ProjectDir)..\..\程序输出目录" /i /q /y
xcopy "$(TargetDir)$(TargetFileName).config" "$(ProjectDir)..\..\程序输出目录" /i /q /y
%拷贝LibDlls目录下的abc.dll拷贝到运行目录%
xcopy "$(ProjectDir)..\..\LibDlls\abc.dll" "$(ProjectDir)\bin\Debug\" /i /q /y
% copy xx to build folder % --%%表示注释
robocopy "$(ProjectDir)..\..\Modules" "$(ProjectDir)...\Build\Modules" /E /xd ".svn"
--robocopy 拷贝目录所有文件,/xd排除的

当项目结构复杂时,手动配置输出路径可能会变得繁琐。通过设置Build Events(生成事件),可以自动化处理这一问题。在Visual Studio中,可以在post-build event command中设定条件判断,如检查是否为Debug模式。然后利用宏$(TargetPath)、$(TargetDir)和$(ProjectDir),配合xcopy命令将生成的dll、pdb和配置文件复制到指定目录。此外,还能使用robocopy命令复制整个目录及其子目录,同时排除特定文件夹。
1162

被折叠的 条评论
为什么被折叠?



