Merge pull request #3 from xpaulbettsx/mode-selektor

Add class to detect whether we're in various runtime environments
This commit is contained in:
Paul Betts 2013-06-30 15:31:53 -07:00
Родитель 93405f2345 cac7630344
Коммит ae9fc66b8e
13 изменённых файлов: 324 добавлений и 168 удалений

Просмотреть файл

@ -1,58 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.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>{252CE1C2-027A-4445-A3C2-E4D6C80A935A}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Splat</RootNamespace>
<AssemblyName>Splat</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\Net45\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\Net45\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="Splat-Portable.csproj">
<Project>{0ec8dba1-d745-4ee5-993a-6026440ec3bf}</Project>
<Name>Splat-Portable</Name>
</ProjectReference>
</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>

Просмотреть файл

@ -1,49 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.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>
<MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{0EC8DBA1-D745-4EE5-993A-6026440EC3BF}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Splat_Portable</RootNamespace>
<AssemblyName>Splat_Portable</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<TargetFrameworkProfile>Profile78</TargetFrameworkProfile>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</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>
<!-- A reference to the entire .NET Framework is automatically included -->
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.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>

Просмотреть файл

@ -7,9 +7,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Splat-wp8", "Splat\Splat-wp
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Splat-NetCore45", "Splat\Splat-NetCore45.csproj", "{18DCE642-06B7-4092-B8F4-30A675DA6929}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Splat-Net45", "Splat-Net45.csproj", "{252CE1C2-027A-4445-A3C2-E4D6C80A935A}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Splat-Net45", "Splat\Splat-Net45.csproj", "{252CE1C2-027A-4445-A3C2-E4D6C80A935A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Splat-Portable", "Splat-Portable.csproj", "{0EC8DBA1-D745-4EE5-993A-6026440EC3BF}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Splat-Portable", "Splat\Splat-Portable.csproj", "{0EC8DBA1-D745-4EE5-993A-6026440EC3BF}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution

72
Splat/ModeDetector.cs Normal file
Просмотреть файл

@ -0,0 +1,72 @@
using System;
namespace Splat
{
public interface IModeDetector
{
bool? InUnitTestRunner();
bool? InDesignMode();
}
public static class ModeDetector
{
static IModeDetector current { get; set; }
public static void OverrideModeDetector(IModeDetector modeDetector)
{
current = modeDetector;
}
public static bool InUnitTestRunner()
{
var ret = default(bool?);
if (current != null) {
ret = current.InUnitTestRunner();
if (ret != null) return ret.Value;
}
// We have no sane platform-independent way to detect a unit test
// runner :-/
return false;
}
static bool? cachedInDesignModeResult;
public static bool InDesignMode()
{
var ret = default(bool?);
if (current != null) {
ret = current.InDesignMode();
if (ret != null) return ret.Value;
}
if (cachedInDesignModeResult != null) return cachedInDesignModeResult.Value;
// Check Silverlight / WP8 Design Mode
var type = Type.GetType("System.ComponentModel.DesignerProperties, System.Windows, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", false);
if (type != null) {
var mInfo = type.GetMethod("GetIsInDesignMode");
var dependencyObject = Type.GetType("System.Windows.Controls.Border, System.Windows, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", false);
if (dependencyObject != null) {
cachedInDesignModeResult = (bool)mInfo.Invoke(null, new object[] { Activator.CreateInstance(dependencyObject) });
}
} else if((type = Type.GetType("System.ComponentModel.DesignerProperties, PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", false)) != null) {
// loaded the assembly, could be .net
var mInfo = type.GetMethod("GetIsInDesignMode");
Type dependencyObject = Type.GetType("System.Windows.DependencyObject, WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", false);
if (dependencyObject != null) {
cachedInDesignModeResult = (bool)mInfo.Invoke(null, new object[] { Activator.CreateInstance(dependencyObject) });
}
} else if ((type = Type.GetType("Windows.ApplicationModel.DesignMode, Windows, ContentType=WindowsRuntime", false)) != null) {
// check WinRT next
cachedInDesignModeResult = (bool)type.GetProperty("DesignModeEnabled").GetMethod.Invoke(null, null);
} else {
cachedInDesignModeResult = false;
}
return cachedInDesignModeResult.GetValueOrDefault();
}
}
}

Просмотреть файл

@ -0,0 +1,82 @@
using System;
using System.IO;
using System.Reflection;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
#if SILVERLIGHT
using System.Windows;
#elif NETFX_CORE
using Windows.ApplicationModel;
#endif
namespace Splat
{
public class PlatformModeDetector : IModeDetector
{
public bool? InUnitTestRunner()
{
var testAssemblies = new[] {
"CSUNIT",
"NUNIT",
"XUNIT",
"MBUNIT",
"PEX.",
"NBEHAVE",
};
try {
return searchForAssembly(testAssemblies);
} catch (Exception) {
return null;
}
}
public bool? InDesignMode()
{
#if SILVERLIGHT
if (Application.Current.RootVisual != null) {
return System.ComponentModel.DesignerProperties.GetIsInDesignMode(Application.Current.RootVisual);
}
#elif NETFX_CORE
return DesignMode.DesignModeEnabled;
#else
var designEnvironments = new[] {
"BLEND.EXE",
"XDESPROC.EXE",
};
var entry = Assembly.GetEntryAssembly();
if (entry != null) {
var exeName = (new FileInfo(entry.Location)).Name.ToUpperInvariant();
if (designEnvironments.Any(x => x.Contains(exeName))) {
return true;
}
}
#endif
return false;
}
static bool searchForAssembly(IEnumerable<string> assemblyList)
{
#if SILVERLIGHT
return Deployment.Current.Parts.Any(x => assemblyList.Any(name => x.Source.ToUpperInvariant().Contains(name)));
#elif NETFX_CORE
var depPackages = Package.Current.Dependencies.Select(x => x.Id.FullName);
if (depPackages.Any(x => assemblyList.Any(name => x.ToUpperInvariant().Contains(name)))) return true;
var fileTask = Task.Factory.StartNew(async () => {
var files = await Package.Current.InstalledLocation.GetFilesAsync();
return files.Select(x => x.Path).ToArray();
}, TaskCreationOptions.HideScheduler).Unwrap();
return fileTask.Result.Any(x => assemblyList.Any(name => x.ToUpperInvariant().Contains(name)));
#else
return AppDomain.CurrentDomain.GetAssemblies()
.Any(x => assemblyList.Any(name => x.FullName.ToUpperInvariant().Contains(name)));
#endif
}
}
}

96
Splat/ReflectionStubs.cs Normal file
Просмотреть файл

@ -0,0 +1,96 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace Splat
{
internal enum BindingFlags
{
Public = 1,
NonPublic = 1 << 1,
Instance = 1 << 2,
Static = 1 << 3,
FlattenHierarchy = 1 << 4
}
internal static class ReflectionStubs
{
public static FieldInfo GetField(this Type This, string name, BindingFlags flags = default(BindingFlags))
{
var ti = This.GetTypeInfo();
var ret = ti.GetDeclaredField(name);
if (ret != null || !flags.HasFlag(BindingFlags.FlattenHierarchy) || ti.BaseType == null) return ret;
return ti.BaseType.GetField(name, flags);
}
public static MethodInfo GetMethod(this Type This, string name, BindingFlags flags = default(BindingFlags))
{
var ti = This.GetTypeInfo();
var ret = ti.GetDeclaredMethod(name);
if (ret != null || !flags.HasFlag(BindingFlags.FlattenHierarchy) || ti.BaseType == null) return ret;
return ti.BaseType.GetMethod(name, flags);
}
public static PropertyInfo GetProperty(this Type This, string name, BindingFlags flags = default(BindingFlags))
{
var ti = This.GetTypeInfo();
var ret = ti.GetDeclaredProperty(name);
if (ret != null || !flags.HasFlag(BindingFlags.FlattenHierarchy) || ti.BaseType == null) return ret;
return ti.BaseType.GetProperty(name, flags);
}
public static EventInfo GetEvent(this Type This, string name, BindingFlags flags = default(BindingFlags))
{
var ti = This.GetTypeInfo();
var ret = ti.GetDeclaredEvent(name);
if (ret != null || !flags.HasFlag(BindingFlags.FlattenHierarchy) || ti.BaseType == null) return ret;
return ti.BaseType.GetEvent(name, flags);
}
public static IEnumerable<PropertyInfo> GetProperties(this Type This, BindingFlags flags = default(BindingFlags))
{
return This.GetTypeInfo().DeclaredProperties;
}
public static IEnumerable<FieldInfo> GetFields(this Type This, BindingFlags flags = default(BindingFlags))
{
return This.GetTypeInfo().DeclaredFields;
}
public static MethodInfo GetMethod(this Type This, string methodName, Type[] paramTypes, BindingFlags flags = default(BindingFlags))
{
var ti = This.GetTypeInfo();
var ret = ti.GetDeclaredMethods(methodName)
.FirstOrDefault(x =>
{
return paramTypes.Zip(x.GetParameters().Select(y => y.ParameterType), (l, r) => l == r).All(y => y != false);
});
if (ret != null || !flags.HasFlag(BindingFlags.FlattenHierarchy) || ti.BaseType == null) return ret;
return ti.BaseType.GetMethod(methodName, paramTypes, flags);
}
public static IEnumerable<MethodInfo> GetMethods(this Type This)
{
return This.GetTypeInfo().DeclaredMethods;
}
public static IEnumerable<object> GetCustomAttributes(this Type This, Type attributeType, bool inherit)
{
return This.GetTypeInfo().GetCustomAttributes(attributeType, inherit);
}
public static bool IsAssignableFrom(this Type This, Type anotherType)
{
return This.GetTypeInfo().IsAssignableFrom(anotherType.GetTypeInfo());
}
}
}

4
Splat/Resources/Resource.designer.cs сгенерированный
Просмотреть файл

@ -9,9 +9,9 @@
// </autogenerated>
// ------------------------------------------------------------------------------
[assembly: Android.Runtime.ResourceDesignerAttribute("Splatmonodroid.Resource", IsApplication=false)]
[assembly: Android.Runtime.ResourceDesignerAttribute("Splat.Resource", IsApplication=false)]
namespace Splatmonodroid
namespace Splat
{

Просмотреть файл

@ -39,8 +39,8 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="PlatformModeDetector.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Xaml\Bitmaps.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="Splat-Portable.csproj">

Просмотреть файл

@ -101,15 +101,15 @@
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<!-- A reference to the entire .Net Framework and Windows SDK are automatically included -->
<ProjectReference Include="..\Splat-Portable.csproj">
<Compile Include="PlatformModeDetector.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="Splat-Portable.csproj">
<Project>{0ec8dba1-d745-4ee5-993a-6026440ec3bf}</Project>
<Name>Splat-Portable</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.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.

Просмотреть файл

@ -1,50 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.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>
<MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{0EC8DBA1-D745-4EE5-993A-6026440EC3BF}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Splat_Portable</RootNamespace>
<AssemblyName>Splat_Portable</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<TargetFrameworkProfile>Profile78</TargetFrameworkProfile>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</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>
<!-- A reference to the entire .NET Framework is automatically included -->
</ItemGroup>
<ItemGroup>
<Compile Include="Bitmaps.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.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>
-->
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.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>
<MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{0EC8DBA1-D745-4EE5-993A-6026440EC3BF}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Splat</RootNamespace>
<AssemblyName>Splat.Portable</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<TargetFrameworkProfile>Profile78</TargetFrameworkProfile>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\Portable\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\Portable\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<!-- A reference to the entire .NET Framework is automatically included -->
<Folder Include="Properties\" />
</ItemGroup>
<ItemGroup>
<Compile Include="ModeDetector.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="ReflectionStubs.cs" />
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.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>

Просмотреть файл

@ -44,6 +44,8 @@
</ItemGroup>
<ItemGroup>
<Compile Include="Resources\Resource.designer.cs" />
<Compile Include="ModeDetector.cs" />
<Compile Include="PlatformModeDetector.cs" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\AboutResources.txt" />
@ -52,4 +54,7 @@
<AndroidResource Include="Resources\values\Strings.xml" />
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Novell\Novell.MonoDroid.CSharp.targets" />
<ItemGroup>
<Folder Include="BigKidsCLR\" />
</ItemGroup>
</Project>

Просмотреть файл

@ -40,4 +40,8 @@
<Folder Include="Resources\" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
</Project>
<ItemGroup>
<Compile Include="ModeDetector.cs" />
<Compile Include="PlatformModeDetector.cs" />
</ItemGroup>
</Project>

Просмотреть файл

@ -83,10 +83,11 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Compile Include="PlatformModeDetector.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Splat-Portable.csproj">
<ProjectReference Include="Splat-Portable.csproj">
<Project>{0EC8DBA1-D745-4EE5-993A-6026440EC3BF}</Project>
<Name>Splat-Portable</Name>
</ProjectReference>