IT:AD:SvcUtil
Summary
The ServiceModel Metadata Utility tool is used to:
* generate service model code from metadata documents and * metadata documents from service model code.
Usage
Syntax:
Examples:
xx
Resources
Options
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>svcutil /?
Microsoft (R) Service Model Metadata Tool
[Microsoft (R) Windows (R) Communication Foundation, Version 4.0.30319.1]
Copyright (c) Microsoft Corporation. All rights reserved.
USES:
- Generate code from running services or static metadata documents.
- Export metadata documents from compiled code.
- Validate compiled service code.
- Download metadata documents from running services.
- Pre-generate serialization code.
-= COMMON OPTIONS =-
Options:
/target:<output type> - The target output for the tool: code, metadata or
xmlSerializer.
/directory:<directory> - Directory to create files in (default: current
directory) (Short Form: /d)
/svcutilConfig:<configFile> - Custom configuration file to use in place of the
app config file. This can be used to register
system.serviceModel extensions without altering
the tool's config file.
/noLogo - Suppress the copyright and banner message.
/help - Display command syntax and options for the tool.
(Short Form: /?)
-= CODE GENERATION =-
Description: svcutil.exe can generate code for service contracts, clients and
data types from metadata documents. These metadata documents can be on disk
or retrieved online. Online retrieval follows either the WS-Metadata
Exchange protocol or the DISCO protocol.
Syntax: svcutil.exe [/t:code] <metadataDocumentPath>* | <url>* | <epr>
<metadataDocumentPath> - The path to a metadata document (wsdl or xsd).
Standard command-line wildcards can be used in the
file path.
<url> - The URL to a service endpoint that provides metadata
or to a metadata document hosted online. For more
information on how these documents are retrieved see
the Metadata Download section.
<epr> - The path to an XML file that contains a WS-Addressing
EndpointReference for a service endpoint that supports
WS-Metadata Exchange. For more information see the
Metadata Download section.
Options:
/out:<file> - The filename for the generated code.
Default: derived from the WSDL definition
name, WSDL service name or targetNamespace
of one of the schemas. (Short Form: /o)
/config:<configFile> - The filename for the generated config
file. Default: output.config
/mergeConfig - Merge the generated config into an
existing file instead of overwriting the
existing file.
/noConfig - Do not generate config
/dataContractOnly - Generate code for Data Contract types
only. Service Contract types will not be
generated. (Short Form: /dconly)
/language:<language> - The programming language to use for
generating code. Provide either a language
name registered in the machine.config file
or provide the fully-qualified name of a
class that inherits from
System.CodeDom.Compiler.CodeDomProvider.
Examples of language names to use are CS
and VB. Default: C#. (Short Form: /l)
/namespace:<string,string> - A mapping from a WSDL or XML Schema
targetNamespace to a CLR namespace. Using
the '*' for the targetNamespace maps all
targetNamespaces without an explicit
mapping to that CLR namespace. Default:
derived from the target namespace of the
schema document for Data Contracts. The
default namespace is used for all other
generated types. (Short Form: /n)
/messageContract - Generate Message Contract types. (Short
Form: /mc)
/enableDataBinding - Implement the System.ComponentModel.INotif
yPropertyChanged interface on all Data
Contract types to enable data binding.
(Short Form: /edb)
/serializable - Generate classes marked with the
Serializable Attribute. (Short Form: /s)
/async - Generate both synchronous and asynchronous
method signatures. Default: generate only
synchronous method signatures. (Short
Form: /a)
/internal - Generate classes that are marked as
internal. Default: generate public
classes. (Short Form: /i)
/reference:<file path> - Reference types in the specified assembly.
When generating clients, use this option
to specify assemblies that might contain
types representing the metadata being
imported. (Short Form: /r)
/collectionType:<type> - A fully-qualified or assembly-qualified
name of the type to use as a collection
data type when code is generated from
schemas. (Short Form: /ct)
/excludeType:<type> - A fully-qualified or assembly-qualified
type name to exclude from referenced
contract types. (Short Form: /et)
/noStdLib - Do not reference standard libraries. By
default mscorlib.dll and
system.servicemodel.dll are referenced.
/serializer:Auto - Automatically select the serializer. This
tries to use the Data Contract serializer
and uses the XmlSerializer if that fails.
(Short Form: /ser)
/serializer:DataContractSerializer - Generate data types that use the Data
Contract Serializer for serialization and
deserialization
/serializer:XmlSerializer - Generate data types that use the
XmlSerializer for serialization and
deserialization
/importXmlTypes - Configure the Data Contract serializer to
import non-Data Contract types as
IXmlSerializable types.
/useSerializerForFaults - This option specifies whether the
serializer specified in the 'serializer'
switch is used for fault contract types.
DataContractSerializer is used for faults
if this switch is not specified. (Short
Form: /fault)
/targetClientVersion:Version30 - Generate code that references
functionality in .NET Framework assemblies
3.0 and before. Use this switch if you are
generating code for clients that use .NET
Framework version 3.0.(Short Form: /tcv)
/targetClientVersion:Version35 - Generate code that references
functionality in .NET Framework assemblies
3.5 and before. Use this switch if you are
generating code for clients that use .NET
Framework version 3.5.(Short Form: /tcv)
/wrapped - Generated code will not unwrap
"parameters" member of
document-wrapped-literal messages.
-= METADATA EXPORT =-
Description: svcutil.exe can export metadata for services, contracts and data
types in compiled assemblies. To export metadata for a service, you must use
the /serviceName option to indicate the service you would like to export. To
export all Data Contract types within an assembly use the /dataContractOnly
option. By default metadata is exported for all Service Contracts in the
input assemblies.
Syntax: svcutil.exe [/t:metadata] [/serviceName:<serviceConfigName>]
[/dataContractOnly] <assemblyPath>*
<assemblyPath> - The path to an assembly that contains services, contracts or
Data Contract types to be exported. Standard command-line
wildcards can be used to provide multiple files as input.
Options:
/serviceName:<serviceConfigName> - The config name of a service to export. If
this option is used, an executable assembly
with an associated config file must be
passed as input. Svcutil will search through
all associated config files for the service
configuration. If the config files contain
any extension types, the assemblies
containing these types must either be in the
GAC or explicitly provided using the /r
option.
/reference:<file path> - Add the specified assembly to the set of
assemblies used for resolving type
references. If you are exporting or
validating a service that uses 3rd-party
extensions (Behaviors, Bindings and
BindingElements) registered in config use
this option to locate extension assemblies
that are not in the GAC. (Short Form: /r)
/dataContractOnly - Operate on Data Contract types only. Service
Contracts will not be processed. (Short
Form: /dconly)
/excludeType:<type> - The fully-qualified or assembly-qualified
name of a type to exclude from export. This
option can be used when exporting metadata
for a service or a set of service contracts
to exclude types from being exported. This
option cannot be used with the /dconly
option. (Short Form: /et)
-= SERVICE VALIDATION =-
Description: Validation is useful to detect errors in service implementations
without hosting the service. You must use the /serviceName option to
indicate the service you would like to validate.
Syntax: svcutil.exe /validate /serviceName:<serviceConfigName> <assemblyPath>*
<assemblyPath> - The path to an assembly containing service types to be
validated. The assembly must have an associated config file to
provide service configuration. Standard command-line wildcards
can be used to provide multiple assemblies.
Options:
/validate - Validate a service implementation. To
validate a service, you must use the
/serviceName option to indicate the service
you would like to validate. If this option
is used, an executable assembly with an
associated config file must be passed as
input. (Short Form: /v)
/serviceName:<serviceConfigName> - The config name of a service to validate. To
validate a service this option must be
provided. Svcutil will search through the
associated config files of all input
assemblies for the service configuration. If
the associated configuration file contain
any extension types, the assemblies
containing these types must either be in the
GAC or explicitly provided using the /r
option.
/reference:<file path> - Add the specified assembly to the set of
assemblies used for resolving type
references. If you are exporting or
validating a service that uses 3rd-party
extensions (Behaviors, Bindings and
BindingElements) registered in config use
this option to locate extension assemblies
that are not in the GAC. (Short Form: /r)
/dataContractOnly - Operate on Data Contract types only. Service
Contracts will not be processed. (Short
Form: /dconly)
/excludeType:<type> - The fully-qualified or assembly-qualified
name of a service type to exclude from
validation. (Short Form: /et)
-= METADATA DOWNLOAD =-
Description: svcutil.exe can be used to download metadata from running services
and save the metadata to local files. To download metadata, you must
explicitly specify the /t:metadata option. Otherwise, client code will be
generated. For http and https URL schemes svcutil.exe will try to retrieve
metadata using WS-Metadata Exchange and DISCO. For all other URL schemes
svcutil.exe will only try WS-Metadata Exchange. By default, svcutil.exe uses
the bindings defined in the
System.ServiceModel.Description.MetadataExchangeBindings class. To configure
the binding used for WS-Metadata Exchange you must define a client endpoint
in config that uses the IMetadataExchange contract. This can be defined
either in svcutil.exe's config file or in another config file specified
using the /svcutilConfig option.
Syntax: svcutil.exe /t:metadata <url>* | <epr>
<url> - The URL to a service endpoint that provides metadata or an URL that
points to a metadata document hosted online.
<epr> - The path to an XML file that contains a WS-Addressing EndpointReference
for a service endpoint that supports WS-Metadata Exchange.
-= XMLSERIALIZER TYPE GENERATION =-
Description: svcutil.exe can pre-generate C# serialization code that is required
for types that can be serialized using the XmlSerializer. svcutil.exe will
only generate code for types used by Service Contracts found in the input
assemblies.
Syntax: svcutil.exe /t:xmlSerializer <assemblyPath>*
<assemblyPath> - The path to an assembly containing Service Contract types.
Serialization types will be generated for all Xml Serializable
types in each contract
Options:
/reference:<file path> - Add the specified assembly to the set of assemblies
used for resolving type references. (Short Form: /r)
/excludeType:<type> - Fully-qualified or assembly-qualified type name to
exclude from export or validation. This option can be
used when exporting metadata for a service or a set of
service contracts to exclude types from being
exported. This option cannot be used with the
/dataContractOnly option. (Short Form: /et)
/out:<file> - Filename for the generated code. This option will be
ignored when multiple assemblies are passed as input
to the tool. Default: derived from the assembly name.
(Short Form: /o)
-= EXAMPLES =-
svcutil http://service/metadataEndpoint
- Generate client code from a running service or online metadata documents.
svcutil *.wsdl *.xsd /language:C#
- Generate client code from local metadata documents.
svcutil /dconly *.xsd /language:VB
- Generate Data Contract types in VisualBasic from local schema documents.
svcutil /t:metadata http://service/metadataEndpoint
- Download metadata documents from running services
svcutil myAssembly.dll
- Generate metadata documents for Service Contracts and associated types in
an assembly
svcutil myServiceHost.exe /serviceName:myServiceName
- Generate metadata documents for a service, and all associated Service
Contracts and data types in an assembly
svcutil myServiceHost.exe /dconly
- Generate metadata documents for data types in an assembly
svcutil /validate /serviceName:myServiceName myServiceHost.exe
- Verify service hosting
svcutil /t:xmlserializer myContractLibrary.exe
- Generate serialization types for XmlSerializer types used by any Service
Contracts in the assembly