我有这个奇怪的问题,我似乎无法弄明白。我开发了这个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之间选择配置。
答案 0 :(得分:0)
检查您的发布设置并确保配置设置为Release
而不是Debug
答案 1 :(得分:0)
要验证的一件事是您选择'发布'在向导中,不仅仅是在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)" />
最可能的错误是名称部分(添加名称=&#34; connectionName&#34; ...)有拼写错误,并且与web.config文件中的名称不匹配。