<?xml version="1.0" encoding="utf-8"?>

<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{C3D005CD-6C26-49FD-A4D8-08699B66AF6F}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>org.apache.juddi.client</RootNamespace>
    <AssemblyName>juddi-dotnet-client</AssemblyName>
    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <TargetFrameworkProfile />
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <RunCodeAnalysis>true</RunCodeAnalysis>
    <DocumentationFile>bin\Debug\juddi-dotnet-client.XML</DocumentationFile>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.configuration" />
    <Reference Include="System.Runtime.Serialization" />
    <Reference Include="System.Security" />
    <Reference Include="System.ServiceModel" />
    <Reference Include="System.Web.Services" />
    <Reference Include="System.Data" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="bindings\datamodel.cs" />
    <Compile Include="bindings\events.cs" />
    <Compile Include="bindings\ext.cs" />
    <Compile Include="bindings\JUDDIApiService.cs" />
    <Compile Include="bindings\UDDIv2_Service.cs" />
    <Compile Include="org.apache.juddi.jaxb\PrintJUDDI.cs" />
    <Compile Include="org.apache.juddi.jaxb\PrintUDDI.cs" />
    <Compile Include="org.apache.juddi.v3.client.annotations\AnnotationProcessor.cs" />
    <Compile Include="org.apache.juddi.v3.client.annotations\UDDIService.cs" />
    <Compile Include="org.apache.juddi.v3.client.annotations\UDDIServiceBinding.cs" />
    <Compile Include="org.apache.juddi.v3.client.config\BackgroundRegistration.cs" />
    <Compile Include="org.apache.juddi.v3.client.config\ClientConfig.cs" />
    <Compile Include="org.apache.juddi.v3.client.config\Properties.cs" />
    <Compile Include="org.apache.juddi.v3.client.config\Property.cs" />
    <Compile Include="org.apache.juddi.v3.client.config\TokenResolver.cs" />
    <Compile Include="org.apache.juddi.v3.client.config\uddi-client-ext.cs" />
    <Compile Include="org.apache.juddi.v3.client.config\uddi-client.cs" />
    <Compile Include="org.apache.juddi.v3.client.config\UDDIClerk.cs" />
    <Compile Include="org.apache.juddi.v3.client.config\UDDIKeyConvention.cs" />
    <Compile Include="org.apache.juddi.v3.client.config\UDDINode.cs" />
    <Compile Include="org.apache.juddi.v3.client.config\XmlConfiguration.cs" />
    <Compile Include="org.apache.juddi.v3.client.config\XRegistration.cs" />
    <Compile Include="org.apache.juddi.v3.client.cryptor\AES128Cryptor.cs" />
    <Compile Include="org.apache.juddi.v3.client.cryptor\AES256Cryptor.cs" />
    <Compile Include="org.apache.juddi.v3.client.cryptor\AESCryptor.cs" />
    <Compile Include="org.apache.juddi.v3.client.cryptor\Cryptor.cs" />
    <Compile Include="org.apache.juddi.v3.client.cryptor\CryptorFactory.cs" />
    <Compile Include="org.apache.juddi.v3.client.cryptor\DigSigUtil.cs" />
    <Compile Include="org.apache.juddi.v3.client.cryptor\TripleDESCryptor.cs" />
    <Compile Include="org.apache.juddi.v3.client.ext.wsdm\WSDMQosConstants.cs" />
    <Compile Include="org.apache.juddi.v3.client.mapping\Common2UDDI.cs" />
    <Compile Include="org.apache.juddi.v3.client.mapping\easyWsdl.cs" />
    <Compile Include="org.apache.juddi.v3.client.mapping\MapUDDIv2to3.cs" />
    <Compile Include="org.apache.juddi.v3.client.mapping\MapUDDIv3to2.cs" />
    <Compile Include="org.apache.juddi.v3.client.mapping\ServiceRegistrationResponse.cs" />
    <Compile Include="org.apache.juddi.v3.client.mapping\URLLocalizer.cs" />
    <Compile Include="org.apache.juddi.v3.client.mapping\wadl.cs" />
    <Compile Include="org.apache.juddi.v3.client.mapping\WADL2UDDI.cs" />
    <Compile Include="org.apache.juddi.v3.client.mapping\wsdl.cs" />
    <Compile Include="org.apache.juddi.v3.client.mapping\WSDL2UDDI.cs" />
    <Compile Include="org.apache.juddi.v3.client.mapping\XMLSchema.cs" />
    <Compile Include="org.apache.juddi.v3.client.subscription\ISubscriptionCallback.cs" />
    <Compile Include="org.apache.juddi.v3.client.subscription\RegistrationAbortedException.cs" />
    <Compile Include="org.apache.juddi.v3.client.subscription\ServiceAlreadyStartedException.cs" />
    <Compile Include="org.apache.juddi.v3.client.subscription\SubscriptionCallbackListener.cs" />
    <Compile Include="org.apache.juddi.v3.client.subscription\UDDISubscriptionListenerService.cs" />
    <Compile Include="org.apache.juddi.v3.client.subscription\UnableToSignException.cs" />
    <Compile Include="org.apache.juddi.v3.client.subscription\UnexpectedResponseException.cs" />
    <Compile Include="org.apache.juddi.v3.client.transport.wrapper\Inquiry3to2.cs">
      <SubType>Component</SubType>
    </Compile>
    <Compile Include="org.apache.juddi.v3.client.transport.wrapper\Publish3to2.cs" />
    <Compile Include="org.apache.juddi.v3.client.transport.wrapper\Security3to2.cs" />
    <Compile Include="org.apache.juddi.v3.client.transport\AspNetTransport.cs" />
    <Compile Include="org.apache.juddi.v3.client.transport\AspNetv2TranslationTransport.cs" />
    <Compile Include="org.apache.juddi.v3.client.util\TModelInstanceDetailsComparator.cs" />
    <Compile Include="org.apache.juddi.v3.client\ConsoleLogger.cs" />
    <Compile Include="org.apache.juddi.v3.client\EventLogger.cs" />
    <Compile Include="org.apache.juddi.v3.client\FileLogger.cs" />
    <Compile Include="org.apache.juddi.v3.client\Log.cs" />
    <Compile Include="org.apache.juddi.v3.client\LogFactory.cs" />
    <Compile Include="org.apache.juddi.v3.client\LogLevel.cs" />
    <Compile Include="org.apache.juddi.v3.client\Release.cs" />
    <Compile Include="org.apache.juddi.v3.client.transport\Transport.cs" />
    <Compile Include="org.apache.juddi.v3.client.config\UDDIClient.cs" />
    <Compile Include="org.apache.juddi.v3.client.config\UDDIClientContainer.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="bindings\bindings.cs">
      <SubType>Component</SubType>
    </Compile>
    <Compile Include="org.apache.juddi.v3.client\UDDIConstants.cs" />
    <Compile Include="org.apache.juddi.v3.client\UDDIService.cs" />
  </ItemGroup>
  <ItemGroup>
    <WCFMetadata Include="Service References\" />
  </ItemGroup>
  <ItemGroup />
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
</Project>
