﻿<?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>{E1EBF822-19E9-4DE9-B7D9-D530220B1F43}</ProjectGuid>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <RootNameSpace>NPanday.Plugin.SysRef</RootNameSpace>
    <AssemblyName>NPanday.Plugin.SysRef</AssemblyName>
    <BaseIntermediateOutputPath>..\..\..\target\obj\</BaseIntermediateOutputPath>
    <OutputType>Library</OutputType>
    <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
  </PropertyGroup>
  <PropertyGroup>
    <OutputPath>..\..\..\target\</OutputPath>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <OutputPath>..\..\..\target\</OutputPath>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="NPanday.Model.Pom, Version=1.5.0.0, Culture=neutral, PublicKeyToken=4b435f4d76e2f0e6, processorArchitecture=MSIL">
      <HintPath>..\..\..\..\..\..\dotnet\assemblies\NPanday.Model.Pom\target\NPanday.Model.Pom.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="SysRefMojo.cs" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\..\..\..\..\..\dotnet\assemblies\NPanday.Artifact\src\main\csharp\NPanday.Artifact.csproj">
      <Project>{701803D4-90F5-44D7-919D-4844FEB7F936}</Project>
      <Name>NPanday.Artifact</Name>
    </ProjectReference>
    <ProjectReference Include="..\..\..\..\..\..\dotnet\assemblies\NPanday.Plugin\src\main\csharp\NPanday.Plugin.csproj">
      <Project>{B760D54F-22AC-43E7-A0A6-DE313D4663AF}</Project>
      <Name>NPanday.Plugin</Name>
    </ProjectReference>
  </ItemGroup>
  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
</Project>