我想以编程方式修改我的app.config文件以设置应使用哪个服务文件端点。在运行时执行此操作的最佳方法是什么?以供参考:
<endpoint address="http://mydomain/MyService.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IASRService" contract="ASRService.IASRService" name="WSHttpBinding_IASRService"> <identity> <dns value="localhost" /> </identity> </endpoint>
我认为您想要的是在运行时换出一个版本的配置文件,如果这样,请创建一个配置文件的副本(也给它一个相关的扩展名,如.Debug或.Release),该副本应具有正确的地址(为您提供)调试版本和运行时版本),并创建一个后构建步骤,该步骤将根据构建类型复制正确的文件。
这是我过去使用过的postbuild事件的示例,该事件使用正确的版本(调试/运行时)覆盖输出文件
copy "$(ProjectDir)ServiceReferences.ClientConfig.$(ConfigurationName)" "$(ProjectDir)ServiceReferences.ClientConfig" /Y
其中:$(ProjectDir)是配置文件所在的项目目录$(ConfigurationName)是活动配置构建类型
编辑: 请参阅Marc的答案以获取有关如何以编程方式执行此操作的详细说明。