Macros for Build Commands and Properties

//z 2012-5-17 12:35:17 PM IS2120@CSDN
Pre:
IF NOT EXIST $(IntDir)..\..\lib mkdir $(IntDir)..\..\lib
Post:
copy $(IntDir)$(ProjectName).lib $(IntDir)..\..\lib
upx.exe $(OutDir)../xxx.dll

//z 2012-5-17 12:47:52 PM IS2120@CSDN
Add a call statement before all post-build commands that run .bat files. For example,call C:\MyFile.bat orcall C:\MyFile.bat call C:\MyFile2.bat.
Pre-build events do not run if the project is up to date and no build is triggered.

You can use a MSBuild task on your csproj, like that.

Edit your csproj file

  <Target Name="AfterBuild">
    <Copy SourceFiles="$(OutputPath)yourfiles" DestinationFolder="$(YourVariable)" ContinueOnError="true" />
  </Target>

You can use these macros anywhere in a project's Property Pages dialog box where strings are accepted. These macros are not case sensitive.

Macro Description

$(RemoteMachine)

Set to the value of the Remote Machine property on the Debug property page. SeeChanging Project Settings for a C/C++ Debug Configuration for more information.

$(References)

A semicolon delimited list of references added to the project.

$(ConfigurationName)

The name of the current project configuration (for example, "Debug").

$(PlatformName)

The name of current project platform (for example, "Win32").

$(Inherit)

Specifies the order in which inherited properties appear in the command line composed by the project build system. By default, inherited properties appear at the end of the current property.1

$(NoInherit)

Causes any properties that would otherwise be inherited, to not be inherited. To also prevent evaluation at the sibling level, use$(StopEvaluating). The use of$(NoInherit) causes any occurrences of$(Inherit) to be ignored for the same property.1

$(StopEvaluating)

Immediately stops the evaluation of a macro in the evaluation chain. Any values that appear after$(StopEvaluating) will not appear in the evaluated value of the macro. If$(StopEvaluating) precedes$(Inherit), the inherited value at the current location in the evaluation chain will not be concatenated to the macro value.$(StopEvaluating) is a superset of the functionality of$(NoInherit).

$(ParentName)

Name of the item containing this project item. This will be the parent folder name, or project name.

$(RootNameSpace)

The namespace, if any, containing the application.

$(IntDir)

Path to the directory specified for intermediate files relative to the project directory. This resolves to the value for theIntermediate Directory property.

$(OutDir)

Path to the output file directory, relative to the project directory. This resolves to the value for theOutput Directory property.

$(DevEnvDir)

The installation directory of Visual Studio .NET (defined as drive + path); includes the trailing backslash '\'.

$(InputDir)

The directory of the input file (defined as drive + path); includes the trailing backslash '\'. If the project is the input, then this macro is equivalent to $(ProjectDir).

$(InputPath)

The absolute path name of the input file (defined as drive + path + base name + file extension). If the project is the input, then this macro is equivalent to $(ProjectPath).

$(InputName)

The base name of the input file. If the project is the input, then this macro is equivalent to $(ProjectName).

$(InputFileName)

The file name of the input file (defined as base name + file extension). If the project is the input, then this macro is equivalent to $(ProjectFileName).

$(InputExt)

The file extension of the input file. It includes the '.' before the file extension. If the project is the input, then this macro is equivalent to $(ProjectExt).

$(ProjectDir)

The directory of the project (defined as drive + path); includes the trailing backslash '\'.

$(ProjectPath)

The absolute path name of the project (defined as drive + path + base name + file extension).

$(ProjectName)

The base name of the project.

$(ProjectFileName)

The file name of the project (defined as base name + file extension).

$(ProjectExt)

The file extension of the project. It includes the '.' before the file extension.

$(SolutionDir)

The directory of the solution (defined as drive + path); includes the trailing backslash '\'.

$(SolutionPath)

The absolute path name of the solution (defined as drive + path + base name + file extension).

$(SolutionName)

The base name of the solution.

$(SolutionFileName)

The file name of the solution (defined as base name + file extension).

$(SolutionExt)

The file extension of the solution. It includes the '.' before the file extension.

$(TargetDir)

The directory of the primary output file for the build (defined as drive + path); includes the trailing backslash '\'.

$(TargetPath)

The absolute path name of the primary output file for the build (defined as drive + path + base name + file extension).

$(TargetName)

The base name of the primary output file for the build.

$(TargetFileName)

The file name of the primary output file for the build (defined as base name + file extension).

$(TargetExt)

The file extension of the primary output file for the build. It includes the '.' before the file extension.

$(VSInstallDir)

The directory into which you installed Visual Studio .NET.

$(VCInstallDir)

The directory into which you installed Visual C++ .NET.

$(FrameworkDir)

The directory into which the .NET Framework was installed.

$(FrameworkVersion)

The version of the .NET Framework used by Visual Studio. Combined with $(FrameworkDir), the full path to the version of the .NET Framework use by Visual Studio.

$(FrameworkSDKDir)

The directory into which you installed the .NET Framework SDK. The .NET Framework SDK could have been installed as part of Visual Studio .NET or separately.

$(WebDeployPath)

The relative path from the web deployment root to where the project outputs belong. Returns the same value asRelativePath.

$(WebDeployRoot)

The absolute path to the location of <localhost>. For example, c:\inetpub\wwwroot.

$(SafeParentName)

The name of the immediate parent in valid name format. For example, a form is the parent of a .resx file.

$(SafeInputName)

The name of the file as a valid class name, minus file extension.

$(SafeRootNamespace)

The namespace name in which the project wizards will add code. This namespace name will only contain characters that would be permitted in a valid C++ identifier.

$(FxCopDir)

The path to the fxcop.cmd file. The fxcop.cmd file is not installed with all Visual C++ editions.

1. Use the Command Line Property Page for the property to see how properties are inherited. SeeSpecifying Project Settings with Property Pages for more information on property inheritance. SeeUsing $(Inherit) and $(NoInherit) for usage examples.


posted @ 2011-09-14 00:15  BiG5  阅读(142)  评论(0编辑  收藏  举报