J'ai un web.config avec 2 transformations - pour le débogage et la publication.
web.config:
<connectionStrings>
<clear />
<add name="StrName" connectionString="data source=.\sqlexpress;User Id=sa;Password=pass;Database=SocialBot;"
providerName="System.Data.SqlClient" />
</connectionStrings>
Je viens de copier l'exemple donné et de remplacer le nom par StrName. Je me retrouve avec:
<add name="StrName" connectionString="$(ReplacableToken_SocialBotConnectionString-Web.config Connection String_0)"
providerName="System.Data.SqlClient" />
Qu'est-ce que l'enfer est ReplacableToken_?
J'ai un autre projet et ça marche sans problème là-bas.
Si, comme moi, vous rencontrez ce problème en essayant d'automatiser votre processus de génération à l'aide de msbuild à partir de la ligne de commande, la bonne réponse se trouve dans cette entrée de blog:
Plus précisément, le paramètre que vous devez définir est:
/ p: AutoParameterizationWebConfigConnectionStrings = False
C'est probablement ce que VS fait en votre nom lorsque vous publiez sur le système de fichiers
Si vous souhaitez créer avec Visual Studio 2010, ajoutez la ligne suivante à votre PropertyGroup de configuration dans votre .csproj:
<AutoParameterizationWebConfigConnectionStrings>False</AutoParameterizationWebConfigConnectionStrings>
Plus de détails ici: Comment se débarrasser complètement de "$ (ReplacableToken ...)" dans web.config