跳到主要内容

Visual Studio 生成后事件使用VBP LM 命令行

简介

通过VS宏来编辑生成前、后事件命令行,来执行个性化编译操作。

例如:在集成SDK做二次开发时,可以通过生成后事件将动态库等文件拷贝到程序默认生成目录下,且对默认生成的应用程序文件,可以修改其名称等,以达到自动打包版本等目的

本文档演示通过vs 生成后事件结合vbp LM 命令行实现程序编译完成自动加壳的步骤。

使用流程

1. 获取ssp文件

第一次使用命令行加壳需要先将程序编译完成,使用拖入加壳工具中填写许可信息然后保存配置文件。后续只要配置文件和被加壳程序在同一路径下,或者命令行使用-x 选项指ssp文件即可。如果许可选项不发生改动则不需要重新程序ssp 文件.

1702884377640

1702884404380

2. 在vs工程属性中添加vbp lm 命令行

打开项目后右键工程选择属性

1702884553178

在生成后事件命令行填写加壳命令行

"C:\Program Files (x86)\senseshield\sdk\Tool\VirboxProtect\bin\virboxprotector_con.exe" $(TargetDir)GetLicenseInfo.exe -c local -p 12345678

命令行格式为
<virboxprotector_con.exe 所在路径> <加壳后程序输出路径> -c local -p <控制锁pin码>
如果ssp 文件和被加壳的程序不在相同路径下需要使用 -x 指定ssp 文件
<virboxprotector_con.exe 所在路径> <加壳后程序输出路径> -c local -p <控制锁pin码> -x <dir\xxx.ssp>
如果使用云账号的方式
<virboxprotector_con.exe 所在路径> <加壳后程序输出路径> -c cloud -u <账号> -p <密码> -x <dir\xxx.ssp>

1702885355924

点击生成,观察输出窗口

1702885757072

为方便开发者编写,可以使用任何宏来指定文件位置,或在存在多种选择的情况下获取输入文件的实际名称。 这些宏不区分大小写。

说明
$(ConfigurationName)当前项目配置的名称,例如,“调试”。
$(OutDir)相对于项目目录的输出文件目录的路径。 这解析为输出目录属性的值。 它包括尾部反斜杠“\”。
$(DevEnvDir)Visual Studio 的安装目录(使用驱动器和路径进行定义);包括尾部反斜杠“\”。
$(PlatformName)当前目标平台的名称。 例如,“AnyCPU”。
$(ProjectDir)项目的目录(使用驱动器和路径进行定义);包括尾部反斜杠“\”。
$(ProjectPath)项目的绝对路径名称(使用驱动器、路径、基名称和文件扩展名进行定义)。
$(ProjectName)项目的基名称。
$(ProjectFileName)项目的文件名称(使用基名称和文件扩展名进行定义)。
$(ProjectExt)项目的文件扩展名。 文件扩展名之前包括“.”。
$(SolutionDir)解决方案的目录(使用驱动器和路径进行定义);包括尾部反斜杠“\”。
$(SolutionPath)解决方案的绝对路径(使用驱动器、路径、基名称和文件扩展名进行定义)。
$(SolutionName)解决方案的基名称。
$(SolutionFileName)解决方案的文件名称(使用基名称和文件扩展名进行定义)。
$(SolutionExt)解决方案的文件扩展名。 文件扩展名之前包括“.”。
$(TargetDir)生成的主输出文件的目录(使用驱动器和路径进行定义)。 它包括尾部反斜杠“\”。
$(TargetPath)生成的主输出文件的绝对路径名称(使用驱动器、路径、基名称和文件扩展名进行定义)。
$(TargetName)生成的主输出文件的基名称。
$(TargetFileName)生成的主输出文件的文件名称(使用基名称和文件扩展名进行定义)。
$(TargetExt)生成的主输出文件的文件扩展名。 文件扩展名之前包括“.”。

更多DOC命令可参考[《Windows命令》]](https://learn.microsoft.com/zh-cn/windows-server/administration/windows-commands/windows-commands)