When building an app, it is often deployed in different environments (test, dev, prod), and therefore the endpoint addresses are changing. As the ServiceReferences.ClientCon
After reading sLedgem's post, and some googling, I found the perfect solution to make ServiceReferences act like web.config.
First off: Create the different files manually;
ServiceReferences.Debug.ClientConfig
ServiceReferences.Release.ClientConfig
You can add your own as well if you have more than the two default configurations in Visual Studio.
Second: Add the file dependency in the Project.csproj file (Open the project file in a text editor):
Always
ServiceReferences.ClientConfig
ServiceReferences.ClientConfig
Now, when you reload the project, you will see that ServiceReferences.Release.ClientConfig is expandable in the Solution Explorer, and when you expand it, you will see the Release and Debug file.
Third: Add the Transformation rules to the Project file just before the closing
(again, open it in a text editor)
$(TargetFileName).ClientConfig
What it does is to look in the corresponding servicereferences file, depending on your configuration, and copy / replace code using the same TransformXML library that web.config uses.
Example:
in my ServiceReferences.ClientConfig i have the following code:
ServiceReferences.Release.ClientConfig:
As you can see, the endpoint will be replaced, and the match is done on the name attribute.
If you have any questions, let me know :)