ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Visual Studio build event command line 使用方法

2022-01-20 22:59:44  阅读:231  来源: 互联网

标签:plugin Visual command build line TargetName event


一、修改一个工程生成的主文件的扩展名。

说明:一个工程,如果设置输出类型为class library,则编译链接后生成的主文件默认的扩展名为.dll。如果有需要要将扩展名改为其他,如.plugin,那么如何设置呢?

问题:在VS2008中,C#类型的工程的属性中并没有设置输出文件名称这一项。。。

解决:在Build Events标签的Pre-build events command line 和 Post-build event command line中分别如下设置:

    Pre-build event command line :if exist $(TargetName).plugin del $(TargetName).plugin
    Post-build event command line:ren $(TargetName)$(TargetExt) $(TargetName).plugin

说明:1)Pre-build event command line 和Post-build event command line真的非常有用非常灵活,它们分别提供了在编译链接前和编译链接后的用户接口,可以供用户方便的定制这两个时间段的操作。
2)Pre-build event command line 和Post-build event command line中的输入内容遵循DOS的语法规则——实际上,它们就是两个批处理文件。
3)可以看到有个Macros按钮,展开可以看到很多的宏,这些宏仅仅是一些提示,提供工程相关的对象的名称。
4)可以在编译时的OutPut窗口中看到Pre-build event command line 和Post-build event command line中批处理命令的执行语句,它们也确实是在当前工程编译之前和编译之后执行的。
5)if exist $(TargetName).plugin del $(TargetName).plugin:首先在编译前将之前可能存在的.plugin文件删除,如果不删除,编译后执行的重命名操作会报错(提示有一个重名文件存在);ren $(TargetName)$(TargetExt) $(TargetName).plugin完成后缀名的修改。其中,$(TargetName)就是通过Macros按钮的提示找到的宏,它的意思就是主输出文件的文件名,$(TargetExt)是默认的扩展名,这里面是.dll。

copy file

xcopy $(ProjectDir)Output $(TargetDir) /Y /E //复制项目根目录文件至debug目录

copy "$(TargetDir)$(TargetName).lib" ..\lib\deploy\$(TargetName).lib
编译完成后将一个.lib 文件拷贝到指定目录


Post-Build Event command line
在vs2003 和2005中都支持了Build Events, 但是2003只支持单行的命令,而2005可以支持多行命令.

要想在2003中执行多行命令,只能把命令写在一个批处理文件中,然后通过调用批处理来执行.

1.在Solution explorer中用context meun查看project的property.

2.选择Build Events,可以看到Pre-build 和Post-build event command line,以及运行Post-build event 的条件

二、用法收集

1.build完后修改build产物的名字(后缀),并覆盖已有的同名文件.

copy $(TargetFileName) $(TargetName).XXX y

2. 调用外部命令或批处理:

call "C:\Program Files\XXX.exe"

3. 条件判断:

IF NOT $(ConfigurationName) == Release GOTO end

    call "C:\Program Files\XXX.exe" $(ProjectDir)$(TargetName).cvp

:end

4.web project 自动部署

copy     $(TargetDir)*.*     //MyServer/MyService/bin
copy     $(ProjectDir)*.ascx     //MyServer/MyService

5. copy from one path to the other path

Copy "$(ProjectDir)pri.bin" "$(SolutionDir)$(SolutionName)\$(OutDir)"

copy  pri.bin(file name) from $(ProjectDir) to $(SolutionDir)$(SolutionName)\$(OutDir)

三、Macro收集

$(DevEnvDir)

$(ProjectDir)

$(BuiltOuputPath)

$(ConfigurationName)

$(TargetName)  不含扩展名

$(TargetFileName)  包含扩展名

标签:plugin,Visual,command,build,line,TargetName,event
来源: https://blog.csdn.net/jyfu2_12/article/details/122611798

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有