|
MSBuild автоматизация компиляции с изменением констант в проекте
|
|||
---|---|---|---|
#18+
Здравствуйте! Есть задача компилировать проект VS2010 , где каждый получаемый на выходе ехе-шник отличается значением набора констант. Константы прописываются в настройках проекта Settings , обращения в коде к которым(C#) следующего типа: Код: c# 1.
Проблема: так как значения этих параметром лежат в xml файлах в папке с проектом, то я перед вызовом MSBuild меняю их, всё компилируется, НО после компиляции в папке появляются 3 файла: ехе-шник,*.pdb и *.exe.config, и если запустить ехе-шник, то всё выглядит как надо, но если удалить *.pdb и *.exe.config, то ехе-шник запустится с теми параметрами, которые были установлены в VS2010. Так как распространяется только ехе-файл, то получается, что при компиляции константы не были изменены на нужные, а просто берутся из внешнего файла с настройками(то есть из *.exe.config). Вопрос: как менять константы перед компиляцией или может я вообще не в том направлении копаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2015, 13:19 |
|
MSBuild автоматизация компиляции с изменением констант в проекте
|
|||
---|---|---|---|
#18+
Greedy, моментально напрашивается вопрос - что мешает распространять exe и и exe.config? В этом случае можно менять файл конфигурации уже после компиляции не трогая код. Если хочется чтобы параметры жили внутри exe-шника, то следует выбрать другой механизм. Например, embedded ресурсы. В этом случае их правда нельзя будет изменить в течение работы программы. Но ты говыришь о константах что наводит на мысль что менять их нет необходимости. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2015, 23:29 |
|
MSBuild автоматизация компиляции с изменением констант в проекте
|
|||
---|---|---|---|
#18+
Одна из причин нежелания использовать конфигурационный файл - это легкость его модификации сторонними лицами, что нежелательно. Даже учитывая тот момент, что эти пользовательские параметры все равно сохраняются где-то на диске при первом изменении любых других параметров(не констант), то этот файл всё же сложнее найти для неискушенного пользователя. По большому счету можно вообще в своем классе прописать эти константы(исключив сохранение в каком-либо конфиге на диске), но это не решит вопроса, как перед компиляцией менять эти константы!! Было бы вообще шикарно, если бы каким-либо образом используя рефлексию, например, затягивать ехе-шник, менять константы, и затем сохранять. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2015, 08:53 |
|
|
start [/forum/topic.php?fid=20&msg=38897868&tid=1401821]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 368ms |
total: | 501ms |
0 / 0 |