VS2010 debug / release.config不能正常工作

时间:2011-09-20 13:08:36

标签: visual-studio-2010 web-config

我的web.debug.configweb.release.config文件遇到了一些问题。

更具体地说,我的网页只会使用默认的web.config文件,并完全忽略debugrelease个文件。 这不仅发生在我本地运行项目时,而且当我将它发布到IIS服务器时。

我正在使用Visual Studio 2010 Ultimate(没有Service Pack)。

以下是配置文件:

web.config

<?xml version="1.0"?>

<configuration>
    <connectionStrings>
        <add name="MyConn" connectionString="SomeConnectionString"
            providerName="System.Data.SqlClient"/>
    </connectionStrings>
</configuration>

web.debug.configweb.release.config

<?xml version="1.0"?>

<configuration xmlns:xtd="http://schemas.microsoft.com/XML-Document-Transform">
    <connectionStrings>
        <add name="MyConn" connectionString="SomeOtherConnectionString"
            providerName="System.Data.SqlClient"
            xtd:Transform="Replace"
            xtd:Locator="Match(name)"/>
    </connectionStrings>
</configuration>

正如我之前提到的,网站使用web.config文件中的连接字符串,而不使用web.release.config中的连接字符串。

另一个有趣的一点是,在我发布项目的物理文件夹中,存在所有三个config文件;每个都与VS解决方案中出现的完全相同。

建议,有人吗?

2 个答案:

答案 0 :(得分:4)

您需要运行转换。如果您只将3 web.config放在您的文件夹中,它将无法工作。您可以运行它,它将转换您的web.config

MSBuild.exe Project.csproj /T:TransformWebConfig /P:Configuration=Release

然后,您将在构建时在obj文件夹中创建一个名为TransformWebConfig的文件夹。转换后的web.config将在此。

您还可以查看这篇文章,他创建了一个构建目标来自动实现这一目标。

http://vishaljoshi.blogspot.com/2010/05/applying-xdt-magic-to-appconfig.html

答案 1 :(得分:3)

我弄清楚我做错了什么。

我没有使用网站应用,而是使用网站项目

(两者之间的区别在于 Project 实际上并不包含.proj文件。多么具有讽刺意味。)

既然我已经意识到实际的问题,那么事实证明我并不是第一个... 以下是使用解决方案解决方案的上一篇文章的链接:

How do I do Web.config Transformations with Visual Studio Website Projects?