如何在 DEBUG 和 RELEASE 模式之间切换 Settings.settings?

Posted

技术标签:

【中文标题】如何在 DEBUG 和 RELEASE 模式之间切换 Settings.settings?【英文标题】:How Can I Switch Settings.settings between DEBUG and RELEASE mode? 【发布时间】:2014-12-01 04:18:06 【问题描述】:

我在 Project/Properties/Settings.settings 中有一个 URL,更具体地说,是一个 Web 服务 URL。它是在我添加 Web 服务引用时由 Visual Studio 添加的。

DEBUG 和 RELEASE 模式的 url 应该不同,我如何设置 Visual Studio 以便它在 DEBUG/RELEASE 下使用正确的 url 构建?

PS:我不想手动修改 Settings.settings,因为 Visual Studio 不建议这样做。

【问题讨论】:

【参考方案1】:

您的设置文件中可以同时包含这两个网址。然后您可以根据当前模式访问特定设置:

#if DEBUG
    string myUrl = Properties.Settings.Default.DebugUrl;
#else
    string myUrl = Properties.Settings.Default.ReleaseUrl;
#endif

【讨论】:

不幸的是,就我而言,这段代码也是由 Visual Studio 自动生成的。我在做:右键我的项目-添加服务参考-高级-添加网络参考。 在大多数情况下,我为“服务客户端层”创建单独的项目。那么你就不必再处理这个问题了。您始终可以使用您的应用程序设置,自动生成的值将不再在运行时使用。【参考方案2】:

我找到了解决办法:

继承自 SoapHttpClientProtocol 的自动生成代理类有一个属性“Url”,您可以将其设置为将 Web 服务指向另一个位置。因此,我可以将 Web 服务链接保存在配置文件中,并将其获取到新创建的代理客户端对象上的“Url”:

string serviceUrl = ConfigurationManager.AppSettings["URL"];
QisWebServiceClient qis = new QisWebServiceClient();
qis.Url = serviceUrl;

【讨论】:

以上是关于如何在 DEBUG 和 RELEASE 模式之间切换 Settings.settings?的主要内容,如果未能解决你的问题,请参考以下文章

Flutter中如何判断当前运行模式是Debug还是Release

Flutter中如何判断当前运行模式是Debug还是Release

Flutter中如何判断当前运行模式是Debug还是Release

Flutter中如何判断当前运行模式是Debug还是Release

如何在 Debug 和 Release 版本中同时安装 Dcmtk

如何判断代码运行在DEBUG还是RELEASE模式下