是否可以在编译时更改Web引用URL

时间:2014-07-01 10:21:36

标签: c# visual-studio-2010 web-services cruisecontrol.net

我们目前有一个使用网络服务的应用程序。我们的DEV,UAT和LIVE环境的Web服务URL是不同的,因为Web服务与不同的数据库通信(我没有这样设计)。

我希望能够从一个源代码库构建所有三个版本。目前,我需要在Visual Studio中手动编辑Web引用URL。什么是好的是在编译时以某种方式指定Web引用URL。我想也许我可以使用预构建钩子或其他东西来改变Web引用URL,但不知道如何做到这一点,假设它是可能的。

我们的构建是从CruiseControl.NET触发的,只是为了给您全面的了解。

2 个答案:

答案 0 :(得分:1)

你能用不同的构建配置吗?

我现在没有一个简单的网络参考示例,但它会出现在.csproj文件中。您可以使用以下语法在csproj文件中有条件地包含注释:

  <Choose>
    <When Condition=" '$(Configuration)'=='Release' ">

         <!-- add the reference, web reference etc node here -->

    </When>
  </Choose>

您必须手动编辑.csproj文件才能执行此操作

答案 1 :(得分:0)

你是如何触发这些构建的?力。更改网址。力。更改网址。力?如果是这样,请使用cruisecontrol参数选择您想要的URL。将该选择发送到您使用的任何构建任务,例如Nant。在Nant中,使用所需的URL和构建编辑代码文件。您必须从Nant进行一些文件编辑才能更改网址。

如果您每次都想要所有三个版本,那么您就不需要参数了。第一个构建将触发另外两个,并且不同的URL将在构建任务中的某处进行硬编码。

我之前在Nant中使用过C#脚本来编辑特定构建风格的文件。

相关问题