Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Version-control: svcmap, disco, xsd, wsdl, svcinfo and datasource files

We have a webservice named, let's say Foo.

So there is a Foo.svc file and a code behind Foo.svc.cs.

We add a silverlight project and wish to use the Foo.svc services so we add a Service Reference and call it's namespace FooBar.

This creates the following files :

  • Reference.cs
  • Reference.svcmap
  • Foo.xsd
  • Foo.disco
  • configuration.svcinfo
  • Foo.wsdl
  • Also various *.datasource files.

Over time we update the Foo.svc and add more Web Services (methods and interfaces) and the number of files in the FooBar directory is growing.

I have 26 Foo(nn).xsd files in this directory - where nn = 1 to 26.

My configuration.svcinfo is upto configuration91.svcinfo.

My question is this? Do any of these files need to be version controlled? Can they all be deleted each time you do a build \ deploy (as long as you do an update service reference)?

like image 331
David Gray Wright Avatar asked Mar 15 '10 02:03

David Gray Wright


1 Answers

The Reference.svcmap file is practically the definition of the service reference. It contains the different settings as well as source links. Reference.svcmap should definitely be source controlled because it is actually THE service reference in the sense of project items.

Reference.cs contains the generated contracts and proxy against which your code is compiled. Whether to source control or not to source control the file is up to you. Generally, this is part of the project code and should be source controlled, but being auto-generated it can sometimes lead to accidental breaking check-ins.

All of the other files are TEMPORARY files used when generating the contract and proxy code. Together they form the sum of the metadata exposed by the service which includes service contracts (*.wsdl), data contracts (*.xsd) and configuration information (*.svcinfo).

like image 125
Tamir Daniely Avatar answered Sep 23 '22 13:09

Tamir Daniely