C# VS生成后事件命令行

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# VS生成后事件命令行相关的知识,希望对你有一定的参考价值。

 引言部分,总领全篇文章的中心内容。

01

前言

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

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

02


自动部署

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

   如我的项目生产目录在:

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

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

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)                          生成的主输出文件的文件扩展名。它在文件扩展名的前面包括

以上是关于C# VS生成后事件命令行的主要内容,如果未能解决你的问题,请参考以下文章

使用VS的生成事件命令行指令将生成的exe,dll文件复制到指定文件夹中

VS2010:打开cmd后,用csc命令进行编译cs文件,成功生成了exe文件

在 VS2010 中或通过 MsBuild 命令行编译解决方案时生成的代码不同

VS"后生成事件" 菜单的使用

VS2015使用技巧 打开代码片段C#部分

vs写c#时,自动根据控件生成的代码不小心被删除了,窗口设计还在,如何重新自动生成?