在调试过程中,我在调试机器上添加了一堆指向服务的服务引用。有什么方法可以根据配置自动重新生成服务引用?当我准备发布时,我真的宁愿不必经过并将它们全部指向发布服务器,然后当我需要调试时再返回并再次更改它们等。根据配置更新服务参考地址?
Basicaly,I want以下(自动完成):
在调试过程中,我在调试机器上添加了一堆指向服务的服务引用。有什么方法可以根据配置自动重新生成服务引用?当我准备发布时,我真的宁愿不必经过并将它们全部指向发布服务器,然后当我需要调试时再返回并再次更改它们等。根据配置更新服务参考地址?
Basicaly,I want以下(自动完成):
有没有办法做一个条件编译进行配置。我在一些项目中使用的一件事是在代码中使用#if语句来更新配置中的服务引用。一些类似下面的代码:
static void Main() {
TestClient client = new TestClient();
UpdateAddress(client.Endpoint);
}
static void UpdateAddress(ServiceEndpoint endpoint) {
string address = endpoint.Address.Uri.ToString();
int svcIndex = address.IndexOf(".svc");
int serviceIndex = address.LastIndexOf("/", svcIndex);
address = address.Substring(serviceIndex);
#if DEBUG
address = "http://localhost/App" + address;
#else
address = "http://myserver" + address;
#endif
endpoint.Address = new EndpointAddress(address);
}
另一件事,这是我没有做过,但我认为是可能的,是看的MSBuild目标。 IIRC你可以从msbuild执行任意命令,所以你可以使用一个自定义的目标取决于构建配置,并运行一些命令,它会更新你的配置文件。
嗯......我想,如果我这样做的条件IF语句来选择的位置也没什么关系,只要我保持的消息相同,不改变调试和发布之间的事情。 – michael 2011-05-25 19:12:35