歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Visual Studio 生成事件命令

Visual Studio 生成事件命令

日期:2017/3/1 9:10:09   编辑:Linux編程

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)Resource\zh-CN\GoodSoft.ZSM.MS.DAL.dll $(ProjectDir)..\Bin\zh-CN\
xcopy /r /y $(ProjectDir)Resource\en-US\GoodSoft.ZSM.MS.DAL.dll $(ProjectDir)..\Bin\en-US\
xcopy /r /y $(ProjectDir)Resource\GoodSoft.ZSM.MS.DAL.dll $(ProjectDir)..\Bin
•對編譯出的.dll,.lib,.pdb等文件進行復制copy並更改擴展名為.bytes

copy "$(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 Files\Lib"
這樣編譯成功後會將生成的文件拷貝到D:\Program Files\Lib
注意:
如果項目無任何改動,“生成”是不會編譯的,所以當運行生成後事件選中“生成更新項目輸出時”,
不會被執行,但“重新生成”會無條件的輸出,並觸發事件

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:\inetpub\wwwroot。 $(MSBuildProjectName) 項目的基名稱。

$(MSBuildProjectExtension) 項目的文件擴展名。它包括文件擴展名前面的“.”。

$(PlatformName) 當前目標平台的名稱(例如,“AnyCPU”)。

$(OutputPath) 生成的主輸出文件的路徑名(定義為驅動器 + 路徑 + 基名稱 + 文件擴展名)。

$(OutputType) 項目的輸出類型。對於數據庫項目,此類型為“database”。

$(DBProduct) 目標數據庫項目的 Microsoft SQL Server 版本。此結果將為 SQL Server 2010或 SQL Server 2016。

$(TargetDatabase) 目標數據庫的名稱。

$(TargetConnectionString) 用於連接到目標數據庫當前駐留(或將駐留)的服務器的連接字符串。

Copyright © Linux教程網 All Rights Reserved