<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>8.0.50727</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{E8C995C3-FF81-491B-A3B7-9D7C753BDDC3}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AssemblyName>vs2008-stomp-test</AssemblyName>
    <RootNamespace>Apache.NMS.Stomp.Test</RootNamespace>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug</OutputPath>
    <DefineConstants>DEBUG</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <ConsolePause>false</ConsolePause>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>none</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Release</OutputPath>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <ConsolePause>false</ConsolePause>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Xml" />
    <Reference Include="System.Data" />
    <Reference Include="nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>lib\NUnit\mono-2.0\nunit.framework.dll</HintPath>
    </Reference>
    <Reference Include="nunit.framework.extensions, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>lib\NUnit\mono-2.0\nunit.framework.extensions.dll</HintPath>
    </Reference>
    <Reference Include="Apache.NMS.Test, Version=1.3.0.1797, Culture=neutral, PublicKeyToken=82756feee3957618">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>lib\Apache.NMS\mono-2.0\Apache.NMS.Test.dll</HintPath>
    </Reference>
    <Reference Include="Apache.NMS, Version=1.3.0.1797, Culture=neutral, PublicKeyToken=82756feee3957618">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>lib\Apache.NMS\mono-2.0\Apache.NMS.dll</HintPath>
    </Reference>
  </ItemGroup>
  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
  <ItemGroup>
    <ProjectReference Include="vs2008-stomp.csproj">
      <Project>{AA51947C-1370-44DC-8692-1C8EFC5945F7}</Project>
      <Name>vs2008-stomp</Name>
    </ProjectReference>
  </ItemGroup>
  <ItemGroup>
    <None Include="nmsprovider-test.config" />
    <None Include="LICENSE.txt" />
    <None Include="keyfile\NMSKey.snk" />
  </ItemGroup>
  <ProjectExtensions>
    <MonoDevelop>
      <Properties>
        <Policies>
          <TextStylePolicy FileWidth="120" TabWidth="4" TabsToSpaces="True" NoTabsAfterNonTabs="False" RemoveTrailingWhitespace="True" EolMarker="Native" />
          <StandardHeader Text="/*&#xA; * Licensed to the Apache Software Foundation (ASF) under one or more&#xA; * contributor license agreements.  See the NOTICE file distributed with&#xA; * this work for additional information regarding copyright ownership.&#xA; * The ASF licenses this file to You under the Apache License, Version 2.0&#xA; * (the &quot;License&quot;); you may not use this file except in compliance with&#xA; * the License.  You may obtain a copy of the License at&#xA; *&#xA; *     http://www.apache.org/licenses/LICENSE-2.0&#xA; *&#xA; * Unless required by applicable law or agreed to in writing, software&#xA; * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,&#xA; * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&#xA; * See the License for the specific language governing permissions and&#xA; * limitations under the License.&#xA; */&#xA;" inheritsSet="MITX11License" />
        </Policies>
      </Properties>
    </MonoDevelop>
  </ProjectExtensions>
  <ItemGroup>
    <Compile Include="src\test\csharp\StompHelperTest.cs" />
  </ItemGroup>
</Project>