Visual C++ 使用解决方案来管理项目,项目之间还可能有依赖关系,设置适合自己的解决方案目录结构,便于代码的管理、程序的发布。
源代码文件目录示意图
说明:
1、工程分为两类:测试工程(用于单元测试),同步工程(用于实际项目)。一般是现在测试工程中通过了再加入到同步工程。两类工程公用第三方库和MyProject.vsprops的用户配置文件;
2、一个完整的工程目标文件应该包含:Bin、Data(可选)、Doc、Dll(可选)。当然调试信息文件pdb、ilk也在bin目录下。其他编译文件、链接文件会被指定到TempFiles目录下。
3、使用时,先将MyProject.vsprops包含到工程的属性管理器(包含Debug和Release)中,然后按照下图配置(当 指定新的“输出目录”和“中间目录”之后,其他宏如$(InputDir)、$(OutputDir)的具体值也会改变)
工程配置示意图
<?xml version="1.0" encoding="gb2312"?>
<VisualStudioPropertySheet
ProjectType="Visual C++"
Version="8.00"
Name="MyProject"
>
<UserMacro
Name="ThirdLib"
Value="D:\Workspace\Projects\SyncProject\ThirdLib"
/>
<UserMacro
Name="TempFilePath"
Value="D:\Workspace\TempFiles"
/>
<UserMacro
Name="Bin"
Value="D:\Workspace\Projects\Bin\$(SolutionName)\$(ProjectName)_$(ConfigurationName)\"
/>
<UserMacro
Name="BinConfiguration"
Value="$(TempFilePath)\$(SolutionName)\$(ProjectName)\$(ConfigurationName)\"
/>
</VisualStudioPropertySheet>
——————————————————————————
2013年8月22日 更新:vs系列里不同的属性配置文件可能会不一样,如果导入时提示不能识别,可自行根据上述key与value的关系添加。
2013年8月26日 更新:生成后事件:
2013年8月26日 更新:生成后事件:
copy "$(TargetDir)*.dll" "..\..\bin\" //整个文件夹拷贝
copy "$(TargetDir)$(TargetFileName)" "..\..\bin\$(TargetFileName)" //单文件拷贝
参考资料:
1、 Visual C++ 设置适合自己的解决方案目录结构
2、 研发规范-VC
3、 vs生成后事件命令 (生成同时执行拷贝命令)