Hint: This questions has many duplicates, but none of the solutions works for me.
What I have is a web service and a client, both having references to a shared assembly "DataModel". I'm creating the service proxy using the "Add service reference..." dialog and select "Reuse types in all referenced assemblies", but still it creates new types instead of reusing mine.
svcutil.exe /reference
yields the same resultI'm at wit's end somehow. Are there any other solutions?
EDIT: I should add that I just reset my project to earlier commits, and whichever commit I use, still the same problem. And I know it worked with earlier commits!
Referencing the shared assembly before adding the service reference does not work
You would need to do this, or at least update the service reference after adding the reference.
Deleting and re-adding the service reference (or the shared assembly reference) did not help
and you shouldn't need to do this, but I would've tried it too.
In order for the 'reuse' to work both projects (client and service) need to be using the same version of the assembly. You're referencing the project, which is good - I've encountered this before when referencing the assembly directly because of different versions.
Here's some other things to try
bin
folder, check the assembly version / build date.If all else fails, the best way to force the same object on both sides is to remove the 'service reference' proxy altogether and use the ChannelFactory method. See Simpler Explanation of How to Make Call WCF Service without Adding Service Ref and VS2010 Advantages of Add Service Reference over direct ClientBase<>. This is my preferred WCF pattern because it removes the need to 'Update service reference...', and removes all that generated proxy code.