首页 / 操作系统 / Linux / Visual Studio 生成事件命令
Visual Studio在生成项目工程前后,有时我们需要做一些特殊的操作,比如:拷贝生成的dll到指定目标下面等。结合VS可以添加预先生成事件和后期生成事件,采用命令或bat批处理。1、Visual Studio生成事件命令
•预先生成事件命令行,示例:cd $(ProjectDir)Resource
BuildResource.bat
•后期生成事件命令行,示例:xcopy /r /y $(TargetPath) $(ProjectDir)..Bin
xcopy /r /y $(TargetDir)$(TargetName).dll $(ProjectDir)..Bin
xcopy /r /y $(TargetPath) $(ProjectDir)..Release
xcopy /r /y $(TargetDir)$(TargetName).dll $(ProjectDir)..Release
xcopy /r /y $(ProjectDir)Resourcezh-CNGoodSoft.ZSM.MS.DAL.dll $(ProjectDir)..Binzh-CN
xcopy /r /y $(ProjectDir)Resourceen-USGoodSoft.ZSM.MS.DAL.dll $(ProjectDir)..Binen-US
xcopy /r /y $(ProjectDir)ResourceGoodSoft.ZSM.MS.DAL.dll $(ProjectDir)..Bin
•对编译出的.dll,.lib,.pdb等文件进行复制copy并更改扩展名为.bytescopy "$(TargetDir)$(ProjectName).*" "$(SolutionDir)otherDir$(ProjectName).*.bytes"
•xcopy "TargetDir" "SolutionDir"示例:
xcopy "$(TargetDir)*.dll" "$(ProjectDir)..Lib*.dll" /D /F /K /R /Y
在VS的项目属性“生成事件”标签页中添加“生成后事件命令行”, copy $(TargetDir) "D:Program FilesLib"
这样编译成功后会将生成的文件拷贝到D:Program FilesLib
注意:
如果项目无任何改动,“生成”是不会编译的,所以当运行生成后事件选中“生成更新项目输出时”,
不会被执行,但“重新生成”会无条件的输出,并触发事件2、部分宏列表宏说明$(ProjectDir) 项目的目录(定义为驱动器 + 路径);包括尾随反斜杠“”。$(ProjectPath) 项目的绝对路径名称(定义为驱动器 + 路径 + 基名称 + 文件扩展名)。$(ProjectName) 项目的基名称。$(ProjectFileName) 项目的文件名称(定义为基名称 + 文件扩展名)。$(ProjectExt) 项目的文件扩展名。 文件扩展名之前包括“.”。$(SolutionDir) 解决方案的目录(定义为驱动器 + 路径);包括尾随反斜杠“”。$(SolutionPath) 解决方案的绝对路径名称(定义为驱动器 + 路径 + 基名称 + 文件扩展名)。$(SolutionName) 解决方案的基名称。$(SolutionFileName) 解决方案的文件名称(定义为基名称 + 文件扩展名)。$(SolutionExt) 解决方案的文件扩展名。 文件扩展名之前包括“.”。$(TargetDir) 生成的主输出文件的目录(定义为驱动器 + 路径);包括尾随反斜杠 “”。$(TargetPath) 生成的主输出文件的绝对路径名称(定义为驱动器 + 路径 + 基名称 + 文件扩展名)。$(TargetName) 生成的主输出文件的基名称。 $(TargetFileName) 生成的主输出文件的文件名称(定义为基名称 + 文件扩展名)。$(TargetExt) 生成的主输出文件的文件扩展名。 文件扩展名之前包括“.”。 $(Configuration) 当前项目配置的名称(例如“调试”)。$(Platform) 当前项目平台的名称(例如“Win32”)。 $(RootNameSpace) 包含应用程序的命名空间(如果存在)。$(VSInstallDir) 在其中安装了 Visual Studio 的目录。 $(FrameworkDir) 在其中安装了 .NET Framework 的目录。$(FrameworkVersion) Visual Studio 使用的.NET framework 版本。 结合 $(FrameworkDir),Visual Studio 使用的.NET Framework 版本的完整路径。 $(FrameworkSDKDir) 在其中安装了 .NET Framework 的目录。 .NET Framework 可能已作为 Visual Studio 的一部分安装或单独安装。$(WebDeployPath) 从 Web 部署根到项目输出位置的相对路径。 返回与 RelativePath 相同的值。$(WebDeployRoot) <localhost> 的位置的绝对路径。 例如,c:inetpubwwwroot。 $(MSBuildProjectName) 项目的基名称。$(MSBuildProjectExtension) 项目的文件扩展名。它包括文件扩展名前面的“.”。$(PlatformName) 当前目标平台的名称(例如,“AnyCPU”)。$(OutputPath) 生成的主输出文件的路径名(定义为驱动器 + 路径 + 基名称 + 文件扩展名)。$(OutputType) 项目的输出类型。对于数据库项目,此类型为“database”。$(DBProduct) 目标数据库项目的 Microsoft SQL Server 版本。此结果将为 SQL Server 2010或 SQL Server 2016。$(TargetDatabase) 目标数据库的名称。$(TargetConnectionString) 用于连接到目标数据库当前驻留(或将驻留)的服务器的连接字符串。本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-11/136782.htm