以发布模式发布,使用调试配置发布

Posted

技术标签:

【中文标题】以发布模式发布,使用调试配置发布【英文标题】:Publishing in release mode, publishes with debug configuration 【发布时间】:2014-03-03 16:46:25 【问题描述】:

我遇到了一个我似乎无法弄清楚的奇怪问题。我开发了这个 WPF 应用程序,它有 2 个配置文件,一个用于调试,另一个用于发布。当我在调试模式下运行应用程序时,它会按预期连接到 dev 数据库,而在 Release 中,它会连接到 prod 数据库并按预期运行。但是,当我在发布模式下发布应用程序并启动可执行文件时,它就像在调试模式下一样运行,并与开发数据库建立了连接。

我将此代码放在构建后事件命令行中:

if "Debug"=="$(ConfigurationName)" goto :nocopy
del "$(TargetPath).config"
copy "$(ProjectDir)\Release.config" "$(TargetPath).config"

然后将我的 debug.config 文件复制粘贴到我的 release.config 并在我的发布配置中更改我的连接字符串以连接到我的 prod 数据库。

当我在两种模式下调试时,它怎么可能正常工作,但是当我在发布模式下发布时,它使用调试配置信息?任何帮助将不胜感激。

更新

当我发布时,我所做的是右键单击我的项目并选择发布并浏览向导。我检查了项目属性下的发布选项卡,配置显示为灰色并设置为 N/A。但是,在 Debug 选项卡下,可以在 debug 和 release 之间选择配置。

【问题讨论】:

您在使用网络配置转换吗? msdn.microsoft.com/en-us/library/dd465318(v=vs.100).aspx 看上面我给了一些进一步的解释@ColinBacon 【参考方案1】:

检查您的发布设置并确保配置设置为Release 而不是Debug

【讨论】:

我在发布设置中的配置设置为 N/A 并显示为灰色,这与我使用的是 VS 2013 @Colin Bacon 的 Express 版本有关吗跨度> 那么当您创建一个新的发布配置文件时,它不允许您更改设置吗?您能否更新您的问题,提供有关您如何发布@kknaguib 的更多信息【参考方案2】:

需要验证的一点是,您在向导中选择了“发布”,而不仅仅是在 Visual Studio 中。下图显示了两者。

否则,您的 web.release.config 转换可能会出错。您可以从您的 web.release.config 文件中发布该部分吗?看起来是这样的(和往常一样,隐藏数据源、数据库名、用户名和密码):

<connectionStrings>
    <add name="fbConnection"
      connectionString="Data Source=mydatasource;Initial Catalog=myDataBaseName;User ID=MyUserName;Password=myPassword" providerName="System.Data.SqlClient"
      xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
  </connectionStrings>
  <system.web>
    <compilation xdt:Transform="RemoveAttributes(debug)" />

最可能的错误是名称部分 (add name="connectionName" ...) 有错字并且与您的 web.config 文件中的名称不匹配。

【讨论】:

以上是关于以发布模式发布,使用调试配置发布的主要内容,如果未能解决你的问题,请参考以下文章

发布模式下的断点和调试

我们可以使用 conda 获得一个以调试模式构建的 python 环境吗?

以发布模式发布 asp.net web 应用程序

Visual Studio:区分 app.config 以用于调试和发布模式

如何以编程方式更改发布类型?

如何仅使用快捷键在调试或发布模式下切换正在运行的 Xcode 项目?