部署C#项目并在安装时添加web服务引用

部署C#项目并在安装时添加web服务引用,c#,.net,web-services,windows-installer,setup-deployment,C#,.net,Web Services,Windows Installer,Setup Deployment,我有一个需求,在这个需求中,应用程序将引用一个web服务。对于每个新的客户端安装,我需要通过在VSS中打开项目并重新添加引用来手动更新引用 我可以将添加引用作为安装项目的一部分,还是可以通过C#中的代码添加/更新web服务引用 我没有创建安装或msi项目的经验。如果有人也能给我指出一个好的教程,那就太棒了 只是对服务的澄清没有改变,服务将托管在不同的mahcine上,所以每次URI都会改变。 应用程序配置中的代码段: 我需要通过代码或安装项目更新端点和servicePrincipalName

我有一个需求,在这个需求中,应用程序将引用一个web服务。对于每个新的客户端安装,我需要通过在VSS中打开项目并重新添加引用来手动更新引用

我可以将添加引用作为安装项目的一部分,还是可以通过C#中的代码添加/更新web服务引用

我没有创建安装或msi项目的经验。如果有人也能给我指出一个好的教程,那就太棒了

只是对服务的澄清没有改变,服务将托管在不同的mahcine上,所以每次URI都会改变。

应用程序配置中的代码段: 我需要通过代码或安装项目更新端点和servicePrincipalName

  <endpoint address="net.tcp://rntn1099:8201/AX/Services/APVendInvoice"
  binding="netTcpBinding" bindingConfiguration="NetTcpBinding_VendVendInvoiceService"
contract="VendInvoiceService.VendVendInvoiceService"     name="NetTcpBinding_VendVendInvoiceService"><identity>  < servicePrincipalName value="host/RNTN1099.corp.xyz.com" />
这个要求听起来很奇怪。为什么要更新引用?如果服务改变了它的接口,你的客户端就不能工作了。所以我假设你的问题是,你想在不同的url下访问相同的服务?!如果是:您不必更新引用。您可以在不更新引用的情况下配置服务URl。

我从未听说这是一个实际的需求。我从一些人那里听说过,他们不知道您可以在运行时选择服务的URL

更新服务引用时,实际上是在更改客户端的代码。这至少意味着您对客户机的所有测试都应该在引用更新之后进行(这样您就可以测试客户机使用的代码)

使用“添加服务引用”时,在底部输入名称空间。它将与应用程序的默认名称空间相结合,成为创建多个类的名称空间。例如,如果默认名称空间是“MyWebApp”,并且在“添加服务引用”中使用“RemoteService”作为名称空间,则名称空间将是
MyWebApp.RemoteService
。您可以在Visual Studio中使用“视图->对象浏览器”来检查此命名空间的内容


现在,如果服务名为“OrderService”,那么将有一个名为OrderServiceClient的类。它有几个构造函数。其中一个构造函数同时接受配置名称和URL。另一个接受配置名称和
端点地址
。你应该使用其中之一。

为什么要更新引用?或者甚至可以手动更新引用到Project,然后我应该考虑哪些文件来更新引用URL。它是SOAP服务。因为每个客户端的服务都托管在不同的服务器上machine@Huzaifa:更新服务的URL不需要更新引用。您只需更改运行时使用的url即可。如何更新url?在codeYes中,每次URI发生更改时,服务都将托管在不同的服务器上。