[VS2008] Gebruiken preprocessor in pre-build event

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • martennis
  • Registratie: Juli 2005
  • Laatst online: 07-07 10:36
Voor een .net compact framework project heb ik een soort AppSettings (zie hier) nodig, waarbij de settings kunnen verschillen per Build Configuration.

Nu was mijn idee om een dergelijk Settings.xml in mijn project te maken en door middel van de Conditional compilation symbols in de build configuraties de goede settings te laten staan door middel van de preprocessor directives, zodat ik ongeveer het volgende krijg:

<?xml ... ?>
<config>
<settings>
#if ontwikkel
<setting key="omgeving" value="ontwikkel" />
#elif test
<setting key="omgeving" value="test" />
#elif live
<setting key="omgeving" value="live" />
#endif
</settings>
</config>

Het probleem nu is dat de preprocessor alleen de code bestanden parsed en de xml laat staan.
Nu is mijn vraag: waar kan ik de executable vinden van die preprocessor zodat ik deze in mijn pre-build kan gebruiken? Of misschien hebben jullie een geheel ander idee om dit probleem op te lossen?

bvd!

Acties:
  • 0 Henk 'm!

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Waarom gebruik je niet gewoon
C#:
1
2
3
4
5
6
#if ontwikkel
Properties.Settings.Default.Omgeving = "ontwikkel";
#elif test
Properties.Settings.Default.Omgeving = "test";
#endif
Properties.Settings.Default.Save();

Settings.xml blijft dan ongewijzigd. Je kunt e.e.a. bijvoorbeeld vanuit Main() zetten.

Dat de preprocessor instructies in de XML niet werken is op zich vrij logisch omdat XML alleen content is en niet door de (pre)compiler gaat.

Zie ook: http://msdn.microsoft.com/en-us/library/aa730869(VS.80).aspx

[ Voor 12% gewijzigd door Niemand_Anders op 15-07-2009 12:13 . Reden: Toevoeging link en 'default' settings base ]

If it isn't broken, fix it until it is..


Acties:
  • 0 Henk 'm!

  • martennis
  • Registratie: Juli 2005
  • Laatst online: 07-07 10:36
Probleem is dat ik geen Properties.Settings heb in het Compact Framework. Opzich zou het wel in de Properties.Resources kunnen, waar het niet dat deze readonly is.

Wat wel kan is een constante string in de (static) Program class..

[ Voor 5% gewijzigd door martennis op 15-07-2009 12:17 ]


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22:02
Je zou met een custom build actie een xml bestand kunnen kopieren naar je debug/release directory.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Ik zou inderdaad gewoon meerdere config files maken, en een custom build actie de juiste laten kopieren. Je hoeft dan je code niet afhankelijk te maken van verschillende build configuraties, maar bereikt toch precies wat je wilt.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • martennis
  • Registratie: Juli 2005
  • Laatst online: 07-07 10:36
Dat is wel een goede. Ga ik even naar kijken. Bedankt!
Pagina: 1