2010-09-02 6 views
66

У меня есть web.config с 2 преобразованиями - для отладки и выпуска.ReplacableToken_ при использовании преобразования web.config?

web.config:

<connectionStrings> 
    <clear /> 
    <add name="StrName" connectionString="data source=.\sqlexpress;User Id=sa;Password=pass;Database=SocialBot;" 
       providerName="System.Data.SqlClient" /> 
</connectionStrings> 

Я просто скопировал пример, приведенный и сменила название с StrName. Я получаю:

<add name="StrName" connectionString="$(ReplacableToken_SocialBotConnectionString-Web.config Connection String_0)" 
       providerName="System.Data.SqlClient" /> 

Что, черт возьми, ReplacableToken_?

У меня есть другой проект, и он работает без проблем.

ответ

109

Если, как я, вы работаете с этой проблемой при попытке автоматизировать процесс сборки с использованием MSBuild из командной строки, правильный ответ можно найти в этой записи в блоге:

http://www.zvolkov.com/clog/2010/05/18/how-to-packagepublish-web-site-project-using-vs2010-and-msbuild/

в частности, параметр, который нужно установить это:

/р: AutoParameterizationWebConfigConnectionStrings = False

Это наиболее вероятно, что VS делает от вашего имени, когда вы публикуете на Файловая система

+4

Ты спасатель , – willem

+2

Именно то, что я искал! –

+2

yay, был вопрос, нашел мой собственный ответ! – zvolkov

23

Если вы хотите построить с Visual Studio 2010, добавьте следующую строку в файл конфигурации PropertyGroup в вашем .csproj:

<AutoParameterizationWebConfigConnectionStrings>False</AutoParameterizationWebConfigConnectionStrings> 

Подробнее здесь: How to get rid of "$(ReplacableToken...)" in web.config completely

+0

+1 Это позволяет вам щелкнуть «Построить пакет развертывания», чтобы получить преобразованный web.config. –