﻿<?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 xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
  <PropertyGroup>
    <ProjectGuid>{AB99C7DE-1065-452F-A49D-937F1FD18E81}</ProjectGuid>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <RootNameSpace>NPanday.ProjectImporter</RootNameSpace>
    <AssemblyName>NPanday.ProjectImporterEngine-Test</AssemblyName>
    <BaseIntermediateOutputPath>..\..\..\target\obj\</BaseIntermediateOutputPath>
    <OutputType>Library</OutputType>
    <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
    <FileUpgradeFlags>
    </FileUpgradeFlags>
    <OldToolsVersion>2.0</OldToolsVersion>
    <UpgradeBackupLocation />
  </PropertyGroup>
  <PropertyGroup>
    <OutputPath>..\..\..\target\bin\Debug\</OutputPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)' == 'Debug'">
    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
    <OutputPath>..\..\..\target\</OutputPath>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="log4net, Version=1.2.11.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL" />
    <Reference Include="NUnit.Framework">
      <HintPath>C:\Documents and Settings\user\.m2\uac\gac_msil\NUnit.Framework\2.2.8.0__NUnit\NUnit.Framework.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="ImporterTests\AbstractProjectImportTest.cs" />
    <Compile Include="ImporterTests\AbstractAzureImportTest.cs" />
    <Compile Include="ImporterTests\AzureImportSDKVersionTest.cs" />
    <Compile Include="ImporterTests\ComReferenceNormalProjectTest.cs" />
    <Compile Include="ImporterTests\AzureImportOneWebRoleTest.cs" />
    <Compile Include="ImporterTests\AzureImportWorkerRoleTest.cs" />
    <Compile Include="ImporterTests\AzureImportMultipleRolesTest.cs" />
    <Compile Include="ImporterTests\VS2013SolutionTest.cs" />
    <Compile Include="ImporterTests\PortableClassLibraryTest.cs" />
    <Compile Include="ImporterTests\WpfBrowserApplicationTest.cs" />
    <Compile Include="ImporterTests\WebAppWithCultureResTest.cs" />
    <Compile Include="ImporterTests\WindowsExecutableTest.cs" />
    <Compile Include="ImporterTests\EmptySilverlightTest.cs" />
    <Compile Include="ImporterTests\WpfApplicationTest.cs" />
    <Compile Include="ImporterTests\SilverlightTest.cs" />
    <Compile Include="ImporterTests\MVC3ProjectTest.cs" />
    <Compile Include="ImporterTests\MsDeployImportTest.cs" />
    <Compile Include="ImporterTests\Net40GacImportTest.cs" />
    <Compile Include="ImporterTests\EmbeddedResourcesTest.cs" />
    <Compile Include="ImporterTests\FileUtil.cs" />
    <Compile Include="ImporterTests\FlatMultiModuleProjectTest.cs" />
    <Compile Include="ImporterTests\FlatMultiModuleWebApplicationVBTest.cs" />
    <Compile Include="ImporterTests\FlatSingleModuleTest.cs" />
    <Compile Include="ImporterTests\FlatSingleModuleVBTest.cs" />
    <Compile Include="ImporterTests\InterModuleDependency.cs" />
    <Compile Include="ImporterTests\MultipleFolderLevelTest.cs" />
    <Compile Include="ImporterTests\NPandayImporterTest.cs" />
    <Compile Include="ImporterTests\ProjectImporterAssertions.cs" />
    <Compile Include="ImporterTests\ProjectImporterTestFixture.cs" />
    <Compile Include="ImporterTests\SampleVBDependencyTest.cs" />
    <Compile Include="ImporterTests\SampleWebProjectsTest.cs" />
    <Compile Include="ImporterTests\SingleModuleCSharpTest.cs" />
    <Compile Include="ImporterTests\UnsupportedProjectTest.cs" />
    <Compile Include="ImporterTests\WebSiteWithCSharpProjectFile.cs" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\..\..\..\..\NPanday.Artifact\src\main\csharp\NPanday.Artifact.csproj">
      <Project>{701803D4-90F5-44D7-919D-4844FEB7F936}</Project>
      <Name>NPanday.Artifact</Name>
    </ProjectReference>
    <ProjectReference Include="..\..\..\..\..\NPanday.Utils\src\main\csharp\NPanday.Utils.csproj">
      <Project>{CAA4864F-F4C8-4024-8535-8B8C112307CE}</Project>
      <Name>NPanday.Utils</Name>
    </ProjectReference>
    <ProjectReference Include="..\..\main\csharp\NPanday.ProjectImporterEngine.csproj">
      <Project>{91FC215D-C041-4000-8F71-C04A9EEABE55}</Project>
      <Name>NPanday.ProjectImporterEngine</Name>
    </ProjectReference>
  </ItemGroup>
  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
</Project>