Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在构建中在开发、测试和生产服务之间切换的正确方法_C#_.net_Xml_Web Services_Development Environment - Fatal编程技术网

C# 在构建中在开发、测试和生产服务之间切换的正确方法

C# 在构建中在开发、测试和生产服务之间切换的正确方法,c#,.net,xml,web-services,development-environment,C#,.net,Xml,Web Services,Development Environment,我有一个客户端应用程序(WPF),可以访问我的web服务 在dev中运行时,我希望访问这些web服务的dev版本。在测试环境中运行时,我希望访问服务的测试版本。就像生产的智慧 既然这些值都在我的app.config文件中,那么在它们之间切换的最佳方式是什么?在构建应用程序时是否要切换?可能是处理此问题的一种方法,也可能是在VisualStudio中使用选项,因为存在调试和发布构建模式 有几次我不得不做类似的事情,我更喜欢调整客户机上的hosts文件,这样我就可以在开发、测试和生产中使用相同的DN

我有一个客户端应用程序(WPF),可以访问我的web服务

在dev中运行时,我希望访问这些web服务的dev版本。在测试环境中运行时,我希望访问服务的测试版本。就像生产的智慧


既然这些值都在我的app.config文件中,那么在它们之间切换的最佳方式是什么?

在构建应用程序时是否要切换?可能是处理此问题的一种方法,也可能是在VisualStudio中使用选项,因为存在调试和发布构建模式


有几次我不得不做类似的事情,我更喜欢调整客户机上的hosts文件,这样我就可以在开发、测试和生产中使用相同的DNS。我不确定这在您的情况下是否实用。

我通常维护3个单独的配置文件,并在安装时手动切换它们。Scott Hanselman对如何使用构建模式以及预构建事件在各种配置之间自动切换进行了深入的研究。作为一种替代方法,我列出了要做的事情,因此我无法告诉您它在实践中的效果如何。

另一种单一的配置文件方式是按照以下方式进行:

<add key="Service-DEV" value="serviceUrl"/>
<add key="Service-UAT" value="serviceUrl"/>
<add key="Service-PROD" value="serviceUrl"/>

如果你的应用程序知道它在哪个环境下运行,你就可以选择你需要的环境

不过由你决定。我还使用了多配置方法和部署脚本,将正确的文件部署到请求的可部署环境中