使用 web.config 转换时的可替换令牌_?

Posted

技术标签:

【中文标题】使用 web.config 转换时的可替换令牌_?【英文标题】:ReplacableToken_ when using web.config transform? 【发布时间】:2011-04-07 11:44:03 【问题描述】:

我有一个带有 2 个转换的 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_ 到底是什么?

我有另一个项目,它在那里没有问题。

【问题讨论】:

【参考方案1】:

如果您像我一样在尝试使用命令行中的 msbuild 自动化构建过程时遇到此问题,可以在此博客条目中找到正确答案:

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

具体来说,需要设置的参数是:

/p:AutoParameterizationWebConfigConnectionStrings=False

当您发布到文件系统时,这很可能是 VS 代表您所做的事情

【讨论】:

正是我想要的! 耶,有问题,找到我自己的答案! 为了胜利而使用晦涩的命令行开关!感谢您发布除了链接之外的实际设置。这确实应该被标记为解决方案。 死链接。至少您在答案中包含了设置:) 终于有答案了!!你拯救了我的一天(或夜晚)!【参考方案2】:

如果您想使用 Visual Studio 2010 进行构建,请将以下行添加到 .csproj 中的配置 PropertyGroup:

<AutoParameterizationWebConfigConnectionStrings>False</AutoParameterizationWebConfigConnectionStrings>

更多细节在这里: How to get rid of "$(ReplacableToken...)" in web.config completely

【讨论】:

+1 这就是允许您单击“构建部署包”以获取转换后的 web.config 的原因。

以上是关于使用 web.config 转换时的可替换令牌_?的主要内容,如果未能解决你的问题,请参考以下文章

部署时的 web.config 转换未构建

在使用web.config转换时,在web.config文件中获取此连接字符串ReplacableToken_?

使用 Web.Config 转换的高级任务

web.config 转换 - 从连接字符串部分删除注释

多个用户同时读取密钥时的 web.config 问题

在构建 Web 应用程序后使用 Visual Studio2010 web.config 转换