我有个奇怪的问题我似乎搞不懂。我开发了这个WPF应用程序,它有两个配置文件,一个用于调试,另一个用于发布。当我以Debug模式运行应用程序时,它以它应该的方式连接到dev数据库;在发布时,它连接到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选项卡下,可以在调试和发布之间选择配置。
发布于 2014-03-03 17:21:46
检查发布设置,确保配置设置为Release,而不是Debug。
发布于 2014-08-27 10:05:02
需要验证的一件事是,您在向导中选择了“selecting”,而不仅仅是在visual中。下图显示了这两种情况。

否则,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)" />最可能的错误是名称部分(添加name="connectionName“.)有一个错误并且与您的web.config文件中的名称不匹配。
https://stackoverflow.com/questions/22152360
复制相似问题