Showing posts with label Batch Process. Show all posts
Showing posts with label Batch Process. Show all posts

Tuesday, April 17, 2012

How to use Pre-build and Post-build Events in Visual Studio?



Many of you might aware about Build Events feature of Visual Studio. In this post i will explain little bit about Pre-build and Post-build events and their usage.

Sometimes you might need to execute some additional tasks just before and after building your Visual Studio solution. So for this Visual Studio provides nice way to do that using Build Events. You can specify commands inside pre-build and post-build command line. You can find build events tab inside project properties.


As mentioned in above image, you can specify almost all DOS commands inside pre-build and post-build event as per your requirement. Post-build event gives you more control over Pre-build command line execution. You can decide when to execute post-build event from given three options displayed in above image.

Let’s try to understand with simple example.



On successful build I want to copy my executable to some specific folder on my local drive. So in above example I have used xcopy command to copy files from one directory to another. In above example I have used ‘$(ProjectDir)’ macro which will gives me the current project directory. There are more macros available to use for various purposes see below image. These macros can be used to specify location of project or solution, project name, extension, output directory, configuration name etc.



You can use this feature in many scenarios like processing or executing batch file, copy assemblies to specific location, generate resources file using tool like resgen.exe etc. This is really nice and useful feature provided by visual studio.

Hope you liked this small tip. Please leave your feedback in comments section.


See Also – 

Monday, April 9, 2012

How to build Solution or Project from command line (Batch File)?


Sometimes you might need to build multiple solutions or complex project in particular sequence. In such case you can build your project or solutions using command line or batch file. In this post I will explain simple way to build project or solution using command line tool or creating batch file.

Devenv allows you to build your solution or project using command line. It also allows related multiple operations such as clean solution, rebuild solution or deploy solution etc. To execute commands, you need to open Visual Studio command prompt available inside visual studio tools under all programs of start menu. You can find multiple options available with devenv using below command.

Devenv /?

Let’s start with simple example which builds solution using command prompt.

Devenv  TestConsoleApplication.sln /Build Debug



The above command builds TestConsoleApplication solution in Debug configuration mode. To build this solution with Release mode you just need to write Release instead of Debug in above code.

Similarly you can clean and rebuild solution using below code.

Devenv  TestConsoleApplication.sln /Clean

Devenv  TestConsoleApplication.sln /Rebuild Debug

We can also build specific project with project build configuration along with solution.

Devenv  TestConsoleApplication.sln /Build Debug /Project TestConsoleApplication/TestConsoleApplication.csproj /ProjectConfig Debug


Below command opens solution from command prompt and runs the application. If any exception occurred while running application it will log the same in MyErrorLog.txt file.

Devenv /Run TestConsoleApplication.sln /out D:/Temp/MyErrorLog.txt

The above command runs the application and log exception if any into separate file mentioned with /out switch.

We can also reset Visual Studio’s setting using below line of code. This is nice and great feature which can be useful when something is missing from IDE or IDE is not working property. This will restore back all the default settings of Visual Studio’s IDE.

Devenv /ResetSettings

MSBuild.exe

For build related task, it is recommended by Microsoft to use Msbuild.exe. Msbuild.exe builds project or solution with specified options. You can find multiple options using below help command.

msbuild.exe /?

To build solution using msbuild you can use below line of code.

MSBuild TestConsoleApplication.sln /p:Configuration=Release /p:Platform=”Any CPU”


You can also perform multiple task like Rebuild, Clean etc using MsBuild.

You can also create batch file to build your application. Below is the sample code of batch file to build your application using devenv.

BuildSolution.Bat
@Echo OFF
Echo "Building solution/project file using batch file"
SET PATH=C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\
SET SolutionPath=d:\Temp\TestConsoleApplication\TestConsoleApplication.sln
Echo Start Time - %Time%
Call Devenv %SolutionPath% /Build Debug
Echo End Time - %Time%
Set /p Wait=Build Process Completed...


You can also create batch file to build solution using MSBuild.exe file similar above mentioned batch file with just little change.

BuildSolution.Bat
@Echo OFF
Echo "Building solution/project file using batch file"
SET PATH=C:\Windows\Microsoft.NET\Framework\v4.0.30319\
SET SolutionPath=d:\Temp\TestConsoleApplication\TestConsoleApplication.sln
Echo Start Time - %Time%
MSbuild %SolutionPath% /p:Configuration=Release /p:Platform="Any CPU"
Echo End Time - %Time%
Set /p Wait=Build Process Completed...


See Also -