C# VS生成后事件命令行

01—前言

Visual Studio中,可以在项目-》属性-》生成事件-》生成后事件命令行(O):

中设置项目生成后执行的脚本,从而实现项目文件生产后的自动部署。如下图所示:.

C# VS生成后事件命令行

02—自动部署

      在大型的项目开发中,往往个人只承担一部分内容的开发,我们可能生成的只是一堆动态链接库(DLL),这些类库文件无法单独启动调试,而只有嵌入到公司项目的部署路径中才可以运行,这样需要我们每次生成后都得手动copy生成文件到公司项目的部署路径,这样调试起来就不太方便,这时候如果我们借助生成后事件命令行就可以省略上述步骤实现生产时自动部署。

   如我的项目生产目录在:

   D:\搜狗高速下载\mycode\Caliburn测试\bin\Debug

C# VS生成后事件命令行

我希望将所有生产的文件包括子文件都在生成时自动移动到路径:

D:\Chat\TEST下

我们只需要添加如下脚本:

xcopy $(ProjectDir)$(OutDir)*.* D:\Chat\TEST\ /y/e

这样每次我们的项目点击了生产菜单后,生产的项目就被自动拷贝到了目标路径下,省去了不必要的手动操作。

03—脚本解释

  • (ProjectDir)$(OutDir)*.* 表示项目输出路径下生成的所有文件,不加*.*也一样;

  • D:\Chat\TEST\   这个是我要部署的路径,此路径不存在,也会自动创建;

  • xcopy  复制文件;

  • /y/e    如果只复制文件用/y,如果同时需要复制生产目录下子文件夹的信息则再加上/e

除此之外还有如下常用的指令:

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