VS.NET has this great feature that takes an app.config file in the root of a project and copies it to the output of the project at build-time, renaming the file to
However, as you might be able to tell from the description, this is a bit of a hack. Luckily, in VS.NET 2003, the latest version that supports the .NET Framework 1.1 and available in beta version to MSDN subscribers, C# projects allow you to add your shell commands to the pre-build and post-build events during the project build. Access to the project build event settings are available via Project -> Properties -> Common Properties -> Build Events. Figure 1 shows the copying of an app.manifest file to the output directory based on the project name.

Figure 1: VS.NET 2003 C# project
pre-build and post-build event handling
Notice the use of variables in Figure 1:
copy $(ProjectDir)app.manifest $(ProjectDir)$(OutDir)$(ProjectName)$(TargetExt).manifest
You can type these in from memory, or you can press the "..." button to show the event command line editor dialog, as shown in TODO.

Figure 2: Build event command line editor dialog
And as if the event builder dialog wasn't enough, the batch file being executed will be written to the output directory of the project, so you can debug exactly what is being executed if there're any problems.
This was first published in November 2002