title: What does this WCF error mean: "Custom tool warning: Cannot import wsdl:portType"
body: <p>I created a WCF service library project in my solution, and have service references to this. I use the services from a class library, so I have references from my WPF application project in addition to the class library. Services are set up straight forward - only changed to get async service functions. </p>
  
  <p>Everything was working fine - until I wanted to update my service references. It failed, so I eventually rolled back and retried, but it failed even then! So - updating the service references fails without doing any changes to it. Why?! </p>
  
  <p>The error I get is this one: </p>
  
  <pre><code>Custom tool error: Failed to generate code for the service reference 
  'MyServiceReference'.  Please check other error and warning messages for details.   
  </code></pre>
  
  <p>The warning gives more information: </p>
  
  <pre><code>Custom tool warning: Cannot import wsdl:portType
  Detail: An exception was thrown while running a WSDL import extension: 
  System.ServiceModel.Description.DataContractSerializerMessageContractImporter
  Error: List of referenced types contains more than one type with data contract name 'Patient' in  
  namespace 'http://schemas.datacontract.org/2004/07/MyApp.Model'. Need to exclude all but one of the 
  following types. Only matching types can be valid references: 
  "MyApp.Dashboard.MyServiceReference.Patient, Medski.Dashboard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" (matching)
  "MyApp.Model.Patient, MyApp.Model, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" (matching)
  XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='ISomeService']
  </code></pre>
  
  <p>There are two similar warnings too saying: </p>
  
  <pre><code>Custom tool warning: Cannot import wsdl:binding
  Detail: There was an error importing a wsdl:portType that the wsdl:binding is dependent on.
  XPath to wsdl:portType: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='ISomeService']
  XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='WSHttpBinding_ISomeService']  
  </code></pre>
  
  <p>And the same for: </p>
  
  <pre><code>Custom tool warning: Cannot import wsdl:port .. 
  </code></pre>
  
  <p>I find this all confusing.. I don't have a Patient class on the client side Dashboard except the one I got through the service reference. So what does it mean? And why does it suddenly show? Remember: I didn't even change anything! </p>
  
  <p>Now, the solution to this was found <a href="http://www.marcusoft.net/2009/01/custom-tool-warning-cannot-import.html" rel="noreferrer">here</a>, but without an explanation to what this means. So; in the "Configure service reference" for the service I uncheck the "Reuse types in the referenced assemblies" checkbox. Rebuilding now it all works fine without problems. But what did I really change? Will this make an impact on my application? And when should one uncheck this? I do want to reuse the types I've set up DataContract on, but no more. Will I still get access to those without this checked? </p>