2014-04-15 2 views
1

Я ищу способ иметь GUID в моем файле web.config, который преобразуется в новый GUID во время публикации.Заменить GUID в web.config во время публикации

Например:

<add key="someGuid" value="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" /> 

и при публикации приложения с помощью MSBuild или Visual Studio опубликует экран, полученный конфигурационный файл, после преобразования, содержит совершенно новый GUID, как:

<add key="someGuid" value="ab15c61ba16d1651a6c89a621d64c4f8" /> 

В принципе, мне нужен новый GUID каждый раз, когда я публикую приложение, но также нуждаюсь в возможности заменить этот GUID по требованию без полной перекомпиляции.

Прежде чем я построю что-то обычай, используя заполнитель и заменяя текст вручную, я хотел посмотреть, есть ли конфигурационное преобразование или встроенная функция MSBuild, которая могла бы помочь.

+0

Вы нашли способ сделать это с XDT превращается в web.config.release? – Rumpelstinsk

+1

@ Rumpelstinsk Я закончил с чем-то обычным вне web.config, который в действительности работал лучше. Я не знаю, есть ли встроенный способ, и поскольку этот вопрос был задан, они проделали много работы с каркасом, поэтому я не знаю, есть ли простой встроенный способ, кроме указанный ответ. –

ответ

2

В MSBuild, вы можете создать новый GUID, как этот

<PropertyGroup> 
    <SomeGuid>$([System.Guid]::NewGuid())</SomeGuid> 
</PropertyGroup> 

И тогда вы можете использовать задачу XmlPoke сделать замену с помощью вновь созданного свойства $ (SomeGuid).

Выдержки из книги в MSBuild Trickery трюки # 9 и # 101