Solved

Creating Visual Studio 2005 Macros

Posted on 2006-10-23
5
1,074 Views
Last Modified: 2010-08-05
I'd think that this should be simple but I can't seem to find any documentation on how to do this. There are some samples for relatively sophisticated macros. I know that I can record macros as well. However, I need to create some path macros for VS 2005 that I can use in my build process but I don't see how to record just a path this way.

When you look at project properties and edit (for instance) the Command Line in the Post-Build Events you can click on the "Macros>>" button and get a selection of macros that are used in the command line, like $(InputPath). Most of these look like pretty simple replacements for inserting pathnames or module names, etc.

I use this to copy my build files to the actual deployment directory after building, for example:

C:\Program Files\Client\ClientApp\Components (for release builds)

C:\Program Files\Client\Debug\ClientApp\Components (for debug builds)

However, right now I have to hard-code these paths into the command line. I would like to create my own macros, specifically for these deployment directory path names, to use in my post-build command line. I need macros for the  something like "DeployDir" or "DebugDeployDir" that could be used instead of the hard-coded paths -- like $(DeployDir). It would be perfect if the macro itself could differentiate between debug and release builds itself and modify the path variable.

And I would need to distribute these macros to all of our developers working on the project. Are these macros (like InputName, InputPath, IntDir, etc.) recorded in a file somewhere that I could look at?

This is pretty urgent, as well.

Thanks.
0
Comment
Question by:jimwasson
5 Comments
 
LVL 48

Accepted Solution

by:
AlexFM earned 500 total points
ID: 17794011
I would try to solve this problem using environment variables and batch files. Consider the following post-build command:

CopyFiles.bat $(ConfigurationName)

Inside of CopyFiles.bat you can test first parameter (Debug or Release) and copy files to one of two output directories using environment variables, for example, %DebugDeploymentDir% and %ReleaseDeploymentDir%. To distribute evvironment variables to all developer computers you can make .reg file which adds these variables to the Registry.
0
 
LVL 7

Author Comment

by:jimwasson
ID: 17795744
That's a good suggestion Alex. I may have to do that if I can't figure out how to build and use the VS macros. I really do need to use a macro that I can make somewhat cleverer, though. My project includes about 10 executables and maybe 30 dlls which get deployed into about 8 to 10 subdirectories. I may end up having to drastically simplify the deployment structure, though.
0

Featured Post

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

The following diagram presents a diamond class hierarchy: As depicted, diamond inheritance denotes when two classes (e.g., CDerived1 and CDerived2), separately extending a common base class (e.g., CBase), are sub classed simultaneously by a fourt…
In Easy String Encryption Using CryptoAPI in C++ (http://www.experts-exchange.com/viewArticle.jsp?aid=1193) I described how to encrypt text and recommended that the encrypted text be stored as a series of hexadecimal digits -- because cyphertext may…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
Illustrator's Shape Builder tool will let you combine shapes visually and interactively. This video shows the Mac version, but the tool works the same way in Windows. To follow along with this video, you can draw your own shapes or download the file…

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now