在发布模式下发布,使用调试配置发布

时间:2014-03-03 16:46:25

标签: wpf configuration release visual-studio-express

我有这个奇怪的问题,我似乎无法弄明白。我开发了这个WPF应用程序,它有2个配置文件,一个用于Debug,另一个用于Release。当我在调试模式下运行应用程序时,它连接到dev数据库,因为它应该和它在Release中连接到prod数据库并运行正常。但是,当我在发布模式下发布应用程序时,我将启动它运行的可执行文件,就好像它处于调试模式,并建立了与dev数据库的连接。

我将此代码放在post build事件命令行中:

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

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

当我在两种模式下进行调试时,它是如何工作的,但是当我在发布模式下发布它使用Debug配置信息时?任何帮助将不胜感激。

更新

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

要验证的一件事是您选择'发布'在向导中,不仅仅是在visual studio中。下面的图片显示了两者。

enter image description here

否则,您的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)" />

最可能的错误是名称部分(添加名称=&#34; connectionName&#34; ...)有拼写错误,并且与web.config文件中的名称不匹配。