Question: I would like to release to distinct flavours of my app and would like to indicate this in the application name displayed on the phone. As far as I know for Silverlight Phone Apps the name is solely determined by WMAppManifest.xml. Therefore I would like to modify the application title at build time based on my Build Configuration. Any suggestions?

Answer: 
You can use the pre-build step (Project Properties -> Build Events -> Pre-Build event command line) in the project properties with conditional command-lines to achieve this.

Having files for each version and then copying over the default to replace the data there. You can also set up your icons to use this same system! :)

```
if $(ConfigurationName) == Phone_Free_Debug (
  copy /Y $(ProjectDir)Properties\WMAppManifest_Free.xml $(ProjectDir)Properties\WMAppManifest.xml 
  copy /Y $(ProjectDir)173x173icon_Free.png $(ProjectDir)173x173icon.png
  copy /Y $(ProjectDir)200x200icon_Free.png $(ProjectDir)200x200icon.png
)
if $(ConfigurationName) == Phone_Free_Release  (
  copy /Y $(ProjectDir)Properties\WMAppManifest_Free.xml $(ProjectDir)Properties\WMAppManifest.xml 
  copy /Y $(ProjectDir)173x173icon_Free.png $(ProjectDir)173x173icon.png
  copy /Y $(ProjectDir)200x200icon_Free.png $(ProjectDir)200x200icon.png
)

if $(ConfigurationName) == Phone_Debug  (
  copy /Y $(ProjectDir)Properties\WMAppManifest_Paid.xml $(ProjectDir)Properties\WMAppManifest.xml 
  copy /Y $(ProjectDir)173x173icon_Paid.png $(ProjectDir)173x173icon.png
  copy /Y $(ProjectDir)200x200icon_Paid.png $(ProjectDir)200x200icon.png
)
if $(ConfigurationName) == Phone_Release  (
  copy /Y $(ProjectDir)Properties\WMAppManifest_Paid.xml $(ProjectDir)Properties\WMAppManifest.xml 
  copy /Y $(ProjectDir)173x173icon_Paid.png $(ProjectDir)173x173icon.png
  copy /Y $(ProjectDir)200x200icon_Paid.png $(ProjectDir)200x200icon.png
)

```
I know this is an old thread now, but came across it as I was looking to do something similar and the accepted answer was spot on for me. I just wanted to add in a suggestion for a modification to the batch file part of it, in case it helps anyone else. I would have commented on the accepted answer but lack the reputation to so far, so hope no-one minds me adding it as a separate answer..!

If you're version-controlling your solution (e.g. in TFS) your WMAppManifest might be write-protected, unless you specifically remembered to check it out prior to build. If it is, the batch file won't be able to overwrite it, but you won't get any notification of it and the build will proceed, meaning you may fail to notice it didn't update per your build configuration. To address this, add the following to the end of the batch file (after :END):

```
if %errorlevel% neq 0 exit /b %errorlevel%

```

If the batch file fails, the build will stop, alerting you to the issue. 

Also, don't create the batch file in Visual Studio! It'll save in UTF-8 encoding (I think) and you may get errors when Windows tries to shell it. Create it in notepad to ensure it saves in ASCII. If you save it with the wrong encoding and it won't run, the above amend will catch that as well.