如何自动更新WCF服务引用

Whi*_*uit 1 asp.net wcf mercurial visual-studio

我的解决方案包含以下项目

  • A(WCF服务)
  • B(WCF服务)
  • foo(参考文献A)
  • 栏(参考文献B)

如果我对 A 进行更改,我们必须更新 foo 中的服务引用。

我们现在必须执行此操作的方法是在 Visual Studio 中手动启动 A 和 B,方法是转到“调试 | 调试”| 。Start New Instance 以便 Cassini 启动服务(http://localhost:59445/A.svc),然后转到 foo 并更新服务引用。

我想找到一种方法(最好是命令行驱动)来自动更新 foo 和 bar 中的服务引用。必须有一种比手动执行此操作更好的方法。

建议?

编辑:我希望得到一些“你做错了!” 评论。我需要这样做的原因是因为我们偶尔会向服务添加新功能,从而更改合同。但更大的原因是我们正在使用 DVCS (mercurial),更糟糕的是,我们正在从一个在 VS2008 中运行的分支合并到另一个运行 VS2010 的分支中。每次这样的合并都会搞砸 VS2010 服务引用,而且更新服务引用要容易得多。我们现在必须手动完成此操作。自动完成会好得多。

tom*_*ern 5

如果可以的话,您应该完全取消服务参考。只需创建对服务契约 DLL 的二进制引用,然后在客户端上使用 ChannelFactory 动态创建通道(示例参见此处)。

然后,如果您的服务合同发生变化,您只需更新此程序集引用。