First commit

This commit is contained in:
ScottIsAFool
2013-11-29 07:22:28 +00:00
commit 70c92d595f
19 changed files with 1424 additions and 0 deletions
+22
View File
@@ -0,0 +1,22 @@
# Auto detect text files and perform LF normalization
* text=auto
# Custom for Visual Studio
*.cs diff=csharp
*.sln merge=union
*.csproj merge=union
*.vbproj merge=union
*.fsproj merge=union
*.dbproj merge=union
# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
+216
View File
@@ -0,0 +1,216 @@
#################
## Eclipse
#################
*.pydevproject
.project
.metadata
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.classpath
.settings/
.loadpath
# External tool builders
.externalToolBuilders/
# Locally stored "Eclipse launch configurations"
*.launch
# CDT-specific
.cproject
# PDT-specific
.buildpath
#################
## Visual Studio
#################
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.sln.docstates
# Build results
[Dd]ebug/
[Rr]elease/
x64/
build/
[Bb]in/
[Oo]bj/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
*_i.c
*_p.c
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.log
*.scc
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile
# Visual Studio profiler
*.psess
*.vsp
*.vspx
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
*.ncrunch*
.*crunch*.local.xml
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.Publish.xml
*.pubxml
# NuGet Packages Directory
## TODO: If you have NuGet Package Restore enabled, uncomment the next line
packages/
*.nupkg
# Windows Azure Build Output
csx
*.build.csdef
# Windows Store app package directory
AppPackages/
# Others
sql/
*.Cache
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.[Pp]ublish.xml
*.pfx
*.publishsettings
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file to a newer
# Visual Studio version. Backup files are not needed, because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
App_Data/*.mdf
App_Data/*.ldf
#############
## Windows detritus
#############
# Windows image file caches
Thumbs.db
ehthumbs.db
# Folder config file
Desktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Mac crap
.DS_Store
#############
## Python
#############
*.py[co]
# Packages
*.egg
*.egg-info
dist/
build/
eggs/
parts/
var/
sdist/
develop-eggs/
.installed.cfg
# Installer logs
pip-log.txt
# Unit test / coverage reports
.coverage
.tox
#Translations
*.mo
#Mr Developer
.mr.developer.cfg
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
</configuration>
BIN
View File
Binary file not shown.
+136
View File
@@ -0,0 +1,136 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">$(MSBuildProjectDirectory)\..\</SolutionDir>
<!-- Enable the restore command to run before builds -->
<RestorePackages Condition=" '$(RestorePackages)' == '' ">false</RestorePackages>
<!-- Property that enables building a package from a project -->
<BuildPackage Condition=" '$(BuildPackage)' == '' ">false</BuildPackage>
<!-- Determines if package restore consent is required to restore packages -->
<RequireRestoreConsent Condition=" '$(RequireRestoreConsent)' != 'false' ">true</RequireRestoreConsent>
<!-- Download NuGet.exe if it does not already exist -->
<DownloadNuGetExe Condition=" '$(DownloadNuGetExe)' == '' ">false</DownloadNuGetExe>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageSources)' == '' ">
<!-- Package sources used to restore packages. By default, registered sources under %APPDATA%\NuGet\NuGet.Config will be used -->
<!-- The official NuGet package source (https://www.nuget.org/api/v2/) will be excluded if package sources are specified and it does not appear in the list -->
<!--
<PackageSource Include="https://www.nuget.org/api/v2/" />
<PackageSource Include="https://my-nuget-source/nuget/" />
-->
</ItemGroup>
<PropertyGroup Condition=" '$(OS)' == 'Windows_NT'">
<!-- Windows specific commands -->
<NuGetToolsPath>$([System.IO.Path]::Combine($(SolutionDir), ".nuget"))</NuGetToolsPath>
<PackagesConfig>$([System.IO.Path]::Combine($(ProjectDir), "packages.config"))</PackagesConfig>
</PropertyGroup>
<PropertyGroup Condition=" '$(OS)' != 'Windows_NT'">
<!-- We need to launch nuget.exe with the mono command if we're not on windows -->
<NuGetToolsPath>$(SolutionDir).nuget</NuGetToolsPath>
<PackagesConfig>packages.config</PackagesConfig>
</PropertyGroup>
<PropertyGroup>
<!-- NuGet command -->
<NuGetExePath Condition=" '$(NuGetExePath)' == '' ">$(NuGetToolsPath)\NuGet.exe</NuGetExePath>
<PackageSources Condition=" $(PackageSources) == '' ">@(PackageSource)</PackageSources>
<NuGetCommand Condition=" '$(OS)' == 'Windows_NT'">"$(NuGetExePath)"</NuGetCommand>
<NuGetCommand Condition=" '$(OS)' != 'Windows_NT' ">mono --runtime=v4.0.30319 $(NuGetExePath)</NuGetCommand>
<PackageOutputDir Condition="$(PackageOutputDir) == ''">$(TargetDir.Trim('\\'))</PackageOutputDir>
<RequireConsentSwitch Condition=" $(RequireRestoreConsent) == 'true' ">-RequireConsent</RequireConsentSwitch>
<NonInteractiveSwitch Condition=" '$(VisualStudioVersion)' != '' AND '$(OS)' == 'Windows_NT' ">-NonInteractive</NonInteractiveSwitch>
<PaddedSolutionDir Condition=" '$(OS)' == 'Windows_NT'">"$(SolutionDir) "</PaddedSolutionDir>
<PaddedSolutionDir Condition=" '$(OS)' != 'Windows_NT' ">"$(SolutionDir)"</PaddedSolutionDir>
<!-- Commands -->
<RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(NonInteractiveSwitch) $(RequireConsentSwitch) -solutionDir $(PaddedSolutionDir)</RestoreCommand>
<BuildCommand>$(NuGetCommand) pack "$(ProjectPath)" -Properties "Configuration=$(Configuration);Platform=$(Platform)" $(NonInteractiveSwitch) -OutputDirectory "$(PackageOutputDir)" -symbols</BuildCommand>
<!-- We need to ensure packages are restored prior to assembly resolve -->
<BuildDependsOn Condition="$(RestorePackages) == 'true'">
RestorePackages;
$(BuildDependsOn);
</BuildDependsOn>
<!-- Make the build depend on restore packages -->
<BuildDependsOn Condition="$(BuildPackage) == 'true'">
$(BuildDependsOn);
BuildPackage;
</BuildDependsOn>
</PropertyGroup>
<Target Name="CheckPrerequisites">
<!-- Raise an error if we're unable to locate nuget.exe -->
<Error Condition="'$(DownloadNuGetExe)' != 'true' AND !Exists('$(NuGetExePath)')" Text="Unable to locate '$(NuGetExePath)'" />
<!--
Take advantage of MsBuild's build dependency tracking to make sure that we only ever download nuget.exe once.
This effectively acts as a lock that makes sure that the download operation will only happen once and all
parallel builds will have to wait for it to complete.
-->
<MsBuild Targets="_DownloadNuGet" Projects="$(MSBuildThisFileFullPath)" Properties="Configuration=NOT_IMPORTANT;DownloadNuGetExe=$(DownloadNuGetExe)" />
</Target>
<Target Name="_DownloadNuGet">
<DownloadNuGet OutputFilename="$(NuGetExePath)" Condition=" '$(DownloadNuGetExe)' == 'true' AND !Exists('$(NuGetExePath)')" />
</Target>
<Target Name="RestorePackages" DependsOnTargets="CheckPrerequisites">
<Exec Command="$(RestoreCommand)"
Condition="'$(OS)' != 'Windows_NT' And Exists('$(PackagesConfig)')" />
<Exec Command="$(RestoreCommand)"
LogStandardErrorAsError="true"
Condition="'$(OS)' == 'Windows_NT' And Exists('$(PackagesConfig)')" />
</Target>
<Target Name="BuildPackage" DependsOnTargets="CheckPrerequisites">
<Exec Command="$(BuildCommand)"
Condition=" '$(OS)' != 'Windows_NT' " />
<Exec Command="$(BuildCommand)"
LogStandardErrorAsError="true"
Condition=" '$(OS)' == 'Windows_NT' " />
</Target>
<UsingTask TaskName="DownloadNuGet" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<OutputFilename ParameterType="System.String" Required="true" />
</ParameterGroup>
<Task>
<Reference Include="System.Core" />
<Using Namespace="System" />
<Using Namespace="System.IO" />
<Using Namespace="System.Net" />
<Using Namespace="Microsoft.Build.Framework" />
<Using Namespace="Microsoft.Build.Utilities" />
<Code Type="Fragment" Language="cs">
<![CDATA[
try {
OutputFilename = Path.GetFullPath(OutputFilename);
Log.LogMessage("Downloading latest version of NuGet.exe...");
WebClient webClient = new WebClient();
webClient.DownloadFile("https://www.nuget.org/nuget.exe", OutputFilename);
return true;
}
catch (Exception ex) {
Log.LogErrorFromException(ex);
return false;
}
]]>
</Code>
</Task>
</UsingTask>
</Project>
+47
View File
@@ -0,0 +1,47 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.21005.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PocketWP", "PocketWP\PocketWP.csproj", "{52C281B4-A54E-4FD6-B4AF-9CEB8D0A7115}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{08716B21-1C68-4BCF-8E35-3FAA718C9076}"
ProjectSection(SolutionItems) = preProject
.nuget\NuGet.Config = .nuget\NuGet.Config
.nuget\NuGet.exe = .nuget\NuGet.exe
.nuget\NuGet.targets = .nuget\NuGet.targets
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{BDECA2FF-74C2-4921-9ED0-3DBB479979F5}"
ProjectSection(SolutionItems) = preProject
nuspec.2010.7.xsd = nuspec.2010.7.xsd
nuspec.2011.8.xsd = nuspec.2011.8.xsd
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|ARM = Debug|ARM
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|ARM = Release|ARM
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{52C281B4-A54E-4FD6-B4AF-9CEB8D0A7115}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{52C281B4-A54E-4FD6-B4AF-9CEB8D0A7115}.Debug|Any CPU.Build.0 = Debug|Any CPU
{52C281B4-A54E-4FD6-B4AF-9CEB8D0A7115}.Debug|ARM.ActiveCfg = Debug|ARM
{52C281B4-A54E-4FD6-B4AF-9CEB8D0A7115}.Debug|ARM.Build.0 = Debug|ARM
{52C281B4-A54E-4FD6-B4AF-9CEB8D0A7115}.Debug|x86.ActiveCfg = Debug|x86
{52C281B4-A54E-4FD6-B4AF-9CEB8D0A7115}.Debug|x86.Build.0 = Debug|x86
{52C281B4-A54E-4FD6-B4AF-9CEB8D0A7115}.Release|Any CPU.ActiveCfg = Release|Any CPU
{52C281B4-A54E-4FD6-B4AF-9CEB8D0A7115}.Release|Any CPU.Build.0 = Release|Any CPU
{52C281B4-A54E-4FD6-B4AF-9CEB8D0A7115}.Release|ARM.ActiveCfg = Release|ARM
{52C281B4-A54E-4FD6-B4AF-9CEB8D0A7115}.Release|ARM.Build.0 = Release|ARM
{52C281B4-A54E-4FD6-B4AF-9CEB8D0A7115}.Release|x86.ActiveCfg = Release|x86
{52C281B4-A54E-4FD6-B4AF-9CEB8D0A7115}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
+8
View File
@@ -0,0 +1,8 @@
namespace PocketWP
{
public enum AddType
{
Single,
Multiple
}
}
+79
View File
@@ -0,0 +1,79 @@
using System.Collections.Generic;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
using System.Text;
using PropertyChanged;
namespace PocketWP
{
[ImplementPropertyChanged]
[DataContract]
public class ExternalPocketItem
{
/// <summary>
/// Gets or sets the URI.
/// </summary>
/// <value>
/// The URI.
/// </value>
[DataMember]
public string Uri { get; set; }
/// <summary>
/// Gets or sets the tags.
/// </summary>
/// <value>
/// The tags.
/// </value>
[DataMember]
public string Tags { get; set; }
/// <summary>
/// Gets or sets the title.
/// </summary>
/// <value>
/// The title.
/// </value>
[DataMember]
public string Title { get; set; }
/// <summary>
/// Gets or sets the tweet identifier.
/// </summary>
/// <value>
/// The tweet identifier.
/// </value>
[DataMember]
public string TweetId { get; set; }
/// <summary>
/// Gets or sets the callback URI for your app if you want to be called back after adding.
/// </summary>
/// <value>
/// The callback URI.
/// </value>
public string CallbackUri { get; set; }
[DataMember]
public AddType Type { get; internal set; }
[DataMember]
public List<string> Urls { get; set; }
[IgnoreDataMember]
public string[] TagsArray
{
get
{
return string.IsNullOrEmpty(Tags) ? null : Tags.Split(',');
}
}
public string ToEscapedJson()
{
var serialiser = new DataContractJsonSerializer(typeof(ExternalPocketItem));
using (var stream = new MemoryStream())
{
serialiser.WriteObject(stream, this);
var json = Encoding.UTF8.GetString(stream.ToArray(), 0, (int)stream.Length);
return System.Uri.EscapeDataString(json);
}
}
}
}
+89
View File
@@ -0,0 +1,89 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Choose>
<When Condition="$(NCrunchOriginalSolutionDir) != '' And $(NCrunchOriginalSolutionDir) != '*Undefined*'">
<PropertyGroup>
<FodySolutionDir>$(NCrunchOriginalSolutionDir)</FodySolutionDir>
</PropertyGroup>
</When>
<When Condition="$(SolutionDir) != '' And $(SolutionDir) != '*Undefined*'">
<PropertyGroup>
<FodySolutionDir>$(SolutionDir)</FodySolutionDir>
</PropertyGroup>
</When>
<When Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">
<PropertyGroup>
<FodySolutionDir>$(MSBuildProjectDirectory)\..\</FodySolutionDir>
</PropertyGroup>
</When>
</Choose>
<Choose>
<When Condition="$(KeyOriginatorFile) != '' And $(KeyOriginatorFile) != '*Undefined*'">
<PropertyGroup>
<FodyKeyFilePath>$(KeyOriginatorFile)</FodyKeyFilePath>
</PropertyGroup>
</When>
<When Condition="$(AssemblyOriginatorKeyFile) != '' And $(AssemblyOriginatorKeyFile) != '*Undefined*'">
<PropertyGroup>
<FodyKeyFilePath>$(AssemblyOriginatorKeyFile)</FodyKeyFilePath>
</PropertyGroup>
</When>
<Otherwise >
<PropertyGroup>
<FodyKeyFilePath></FodyKeyFilePath>
</PropertyGroup>
</Otherwise>
</Choose>
<PropertyGroup>
<IntermediateDir>$(ProjectDir)$(IntermediateOutputPath)</IntermediateDir>
<FodyMessageImportance Condition="$(FodyMessageImportance) == '' Or $(FodyMessageImportance) == '*Undefined*'">Low</FodyMessageImportance>
<FodySignAssembly Condition="$(FodySignAssembly) == '' Or $(FodySignAssembly) == '*Undefined*'">$(SignAssembly)</FodySignAssembly>
<FodyPath Condition="$(FodyPath) == '' Or $(FodyPath) == '*Undefined*'">$(MSBuildThisFileDirectory)</FodyPath>
</PropertyGroup>
<UsingTask
TaskName="Fody.WeavingTask"
AssemblyFile="$(FodyPath)\Fody.dll" />
<Target
AfterTargets="AfterCompile"
Name="WinFodyTarget"
Condition=" '$(OS)' == 'Windows_NT'">
<Fody.WeavingTask
AssemblyPath="@(IntermediateAssembly)"
IntermediateDir="$(IntermediateDir)"
KeyFilePath="$(FodyKeyFilePath)"
MessageImportance="$(FodyMessageImportance)"
ProjectDirectory="$(ProjectDir)"
SolutionDir="$(FodySolutionDir)"
References="@(ReferencePath)"
SignAssembly="$(FodySignAssembly)"
ReferenceCopyLocalPaths="@(ReferenceCopyLocalPaths)"
DefineConstants="$(DefineConstants)"
/>
</Target>
<Target
AfterTargets="AfterBuild"
Name="NonWinFodyTarget"
Condition=" '$(OS)' != 'Windows_NT'">
<Fody.WeavingTask
AssemblyPath="$(TargetPath)"
IntermediateDir="$(IntermediateDir)"
KeyFilePath="$(FodyKeyFilePath)"
MessageImportance="$(FodyMessageImportance)"
ProjectDirectory="$(ProjectDir)"
SolutionDir="$(FodySolutionDir)"
References="@(ReferencePath)"
SignAssembly="$(FodySignAssembly)"
ReferenceCopyLocalPaths="$(ReferenceCopyLocalPaths)"
DefineConstants="$(DefineConstants)"
/>
</Target>
<!--Support for ncrunch-->
<ItemGroup>
<None Include="$(FodyPath)\*.*" />
</ItemGroup>
</Project>
+4
View File
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Weavers>
<PropertyChanged />
</Weavers>
+120
View File
@@ -0,0 +1,120 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Runtime.Serialization.Json;
using System.Text;
namespace PocketWP
{
public static class PocketHelper
{
private const string PocketScheme = "pocket:";
private const string PocketUrl = PocketScheme + "Add?item=";
/// <summary>
/// Adds a single item to Pocket
/// </summary>
/// <param name="uri">The URI.</param>
/// <param name="tags">The tags.</param>
/// <param name="title">The title.</param>
/// <param name="tweetId">The tweet identifier.</param>
/// <param name="callbackUri">The callback URI for your app if you want to be called back after adding.</param>
public static void AddItemToPocket(Uri uri, string tags = null, string title = null, string tweetId = null, string callbackUri = null)
{
AddItemToPocket(uri.ToString(), tags, title, tweetId, callbackUri);
}
/// <summary>
/// Adds a single item to Pocket
/// </summary>
/// <param name="uri">The URI.</param>
/// <param name="tags">The tags.</param>
/// <param name="title">The title.</param>
/// <param name="tweetId">The tweet identifier.</param>
/// <param name="callbackUri">The callback URI for your app if you want to be called back after adding.</param>
public static void AddItemToPocket(string uri, string tags = null, string title = null, string tweetId = null, string callbackUri = null)
{
AddToPocket(new ExternalPocketItem
{
Uri = uri,
Tags = tags,
Title = title,
TweetId = tweetId,
CallbackUri = callbackUri,
Type = AddType.Single
});
}
/// <summary>
/// Adds multiple items to Pocket
/// </summary>
/// <param name="urls">The URIs.</param>
/// <param name="tags">The tags.</param>
/// <param name="callbackUri">The callback URI for your app if you want to be called back after adding.</param>
public static void AddItemsToPocket(List<string> urls, string tags = null, string callbackUri = null)
{
AddToPocket(new ExternalPocketItem
{
Urls = urls,
Tags = tags,
CallbackUri = callbackUri,
Type = AddType.Multiple
});
}
/// <summary>
/// Buries my nut.
/// </summary>
/// <param name="item">The item.</param>
/// <exception cref="System.ArgumentNullException">item;Your nut can't be null</exception>
private static async void AddToPocket(ExternalPocketItem item)
{
if (item == null)
{
throw new ArgumentNullException("item", "Your item can't be null");
}
var url = PocketUrl + item.ToEscapedJson();
await Windows.System.Launcher.LaunchUriAsync(new Uri(url));
}
/// <summary>
/// Determines whether the specified URI has nuts.
/// </summary>
/// <param name="uri">The URI.</param>
/// <returns>True if nut is present</returns>
public static bool HasPocketItem(Uri uri)
{
// /Protocol?encodedLaunchUri=squirrel%3AAddNut%3Fnut%3D
return uri.ToString().Contains(HttpUtility.UrlEncode(PocketUrl));
}
/// <summary>
/// Retrieves the nut.
/// </summary>
/// <param name="uri">The URI.</param>
/// <returns>The deserialised nut</returns>
public static ExternalPocketItem RetrievePocketItem(Uri uri)
{
var pocketUri = uri.ToString().Replace("/Protocol?encodedLaunchUri=", string.Empty);
pocketUri = Uri.UnescapeDataString(pocketUri).Replace(PocketUrl, string.Empty);
var itemJson = Uri.UnescapeDataString(pocketUri);
try
{
var serializer = new DataContractJsonSerializer(typeof(ExternalPocketItem));
using (var reader = new MemoryStream(Encoding.UTF8.GetBytes(itemJson)))
{
return (ExternalPocketItem)serializer.ReadObject(reader);
}
}
catch
{
return null;
}
}
}
}
+130
View File
@@ -0,0 +1,130 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>10.0.20506</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{52C281B4-A54E-4FD6-B4AF-9CEB8D0A7115}</ProjectGuid>
<ProjectTypeGuids>{C089C8C0-30E0-4E22-80C0-CE093F111A43};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>PocketWP</RootNamespace>
<AssemblyName>PocketWP</AssemblyName>
<TargetFrameworkIdentifier>WindowsPhone</TargetFrameworkIdentifier>
<TargetFrameworkVersion>v8.0</TargetFrameworkVersion>
<SilverlightVersion>$(TargetFrameworkVersion)</SilverlightVersion>
<SilverlightApplication>false</SilverlightApplication>
<ValidateXaml>true</ValidateXaml>
<MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion>
<ThrowErrorsInValidation>true</ThrowErrorsInValidation>
<FodyPath>..\packages\Fody.1.18.0.0</FodyPath>
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
<RestorePackages>true</RestorePackages>
<NuSpecFile>PocketWP.nuspec</NuSpecFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>Bin\Debug</OutputPath>
<DefineConstants>DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE</DefineConstants>
<NoStdLib>true</NoStdLib>
<NoConfig>true</NoConfig>
<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;SILVERLIGHT;WINDOWS_PHONE</DefineConstants>
<NoStdLib>true</NoStdLib>
<NoConfig>true</NoConfig>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>Bin\x86\Debug</OutputPath>
<DefineConstants>DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE</DefineConstants>
<NoStdLib>true</NoStdLib>
<NoConfig>true</NoConfig>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>Bin\x86\Release</OutputPath>
<DefineConstants>TRACE;SILVERLIGHT;WINDOWS_PHONE</DefineConstants>
<NoStdLib>true</NoStdLib>
<NoConfig>true</NoConfig>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|ARM' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>Bin\ARM\Debug</OutputPath>
<DefineConstants>DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE</DefineConstants>
<NoStdLib>true</NoStdLib>
<NoConfig>true</NoConfig>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|ARM' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>Bin\ARM\Release</OutputPath>
<DefineConstants>TRACE;SILVERLIGHT;WINDOWS_PHONE</DefineConstants>
<NoStdLib>true</NoStdLib>
<NoConfig>true</NoConfig>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Compile Include="AddType.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="PocketHelper.cs" />
<Compile Include="ExternalPocketItem.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="FodyWeavers.xml" />
</ItemGroup>
<ItemGroup>
<None Include="Fody.targets" />
<None Include="nuspec.2010.7.xsd">
<SubType>Designer</SubType>
</None>
<None Include="nuspec.2011.8.xsd">
<SubType>Designer</SubType>
</None>
<None Include="packages.config" />
<None Include="PocketWP.nuspec" />
</ItemGroup>
<ItemGroup>
<Reference Include="PropertyChanged">
<HintPath>..\packages\PropertyChanged.Fody.1.42.0.0\Lib\portable-net4+sl4+wp7+win8+MonoAndroid16+MonoTouch40\PropertyChanged.dll</HintPath>
<Private>False</Private>
</Reference>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\$(TargetFrameworkIdentifier)\$(TargetFrameworkVersion)\Microsoft.$(TargetFrameworkIdentifier).$(TargetFrameworkVersion).Overrides.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\$(TargetFrameworkIdentifier)\$(TargetFrameworkVersion)\Microsoft.$(TargetFrameworkIdentifier).CSharp.targets" />
<ProjectExtensions />
<Import Project="Fody.targets" />
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<PropertyGroup>
<PostBuildEvent>"$(SolutionDir).nuget\nuget.exe" pack "$(ProjectPath)" -OutputDirectory ./../../../</PostBuildEvent>
</PropertyGroup>
<!-- 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>
+27
View File
@@ -0,0 +1,27 @@
<?xml version="1.0"?>
<!--
This tokenized .nuspec manifest file is targeting the latest NuGet namespace,
which ensures you can benefit from the latest packaging features.
If desired, you can change the XML-namespace and target the original XSD.
To do so, replace the current package declaration by the following:
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
Run "nuget.exe pack <project>" to build a nuget package for this project
using this tokenized nuspec file.
-->
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<version>$version$</version>
<authors>ScottIsAFool</authors>
<owners />
<id>PocketWP</id>
<title />
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<projectUrl>https://github.com/ScottIsAFool/PocketWP</projectUrl>
<description>A helper file for those wanting to send items to a Pocket client on Windows Phone, as well as those building Pocket clients for Windows Phone in order to manage the shared uri scheme</description>
</metadata>
<files />
</package>
+37
View File
@@ -0,0 +1,37 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Resources;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("PocketWP")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("PocketWP")]
[assembly: AssemblyCopyright("Copyright © 2013")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("52c281b4-a54e-4fd6-b4af-9ceb8d0a7115")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: NeutralResourcesLanguageAttribute("en-US")]
+84
View File
@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="nuspec"
targetNamespace="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"
elementFormDefault="qualified"
xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"
xmlns:mstns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:element name="package">
<xs:complexType>
<xs:sequence>
<xs:element name="metadata" maxOccurs="1" minOccurs="1">
<xs:complexType>
<xs:all>
<xs:element name="id" maxOccurs="1" minOccurs="1" type="xs:string" />
<xs:element name="version" maxOccurs="1" minOccurs="1" type="xs:string" />
<xs:element name="title" maxOccurs="1" minOccurs="0" type="xs:string" />
<xs:element name="authors" maxOccurs="1" minOccurs="1" type="xs:string" />
<xs:element name="owners" maxOccurs="1" minOccurs="0" type="xs:string" />
<xs:element name="licenseUrl" maxOccurs="1" minOccurs="0" type="xs:anyURI" />
<xs:element name="projectUrl" maxOccurs="1" minOccurs="0" type="xs:anyURI" />
<xs:element name="iconUrl" maxOccurs="1" minOccurs="0" type="xs:anyURI" />
<xs:element name="requireLicenseAcceptance" maxOccurs="1" minOccurs="0" type="xs:boolean" />
<xs:element name="description" maxOccurs="1" minOccurs="1" type="xs:string" />
<xs:element name="summary" maxOccurs="1" minOccurs="0" type="xs:string" />
<xs:element name="releaseNotes" maxOccurs="1" minOccurs="0" type="xs:string" />
<xs:element name="copyright" maxOccurs="1" minOccurs="0" type="xs:string" />
<xs:element name="language" maxOccurs="1" minOccurs="0" type="xs:string" default="en-US" />
<xs:element name="tags" maxOccurs="1" minOccurs="0" type="xs:string" />
<xs:element name="dependencies" maxOccurs="1" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="dependency" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attribute name="version" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="frameworkAssemblies" maxOccurs="1" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="frameworkAssembly" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="assemblyName" type="xs:string" use="required" />
<xs:attribute name="targetFramework" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="references" maxOccurs="1" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="reference" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="file" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="files" minOccurs="0" maxOccurs="1" nillable="true">
<xs:complexType>
<xs:sequence>
<xs:element name="file" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="src" use="required" type="xs:string" />
<xs:attribute name="target" use="optional" type="xs:string" />
<xs:attribute name="exclude" use="optional" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
+165
View File
@@ -0,0 +1,165 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="nuspec"
targetNamespace="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"
elementFormDefault="qualified"
xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"
xmlns:mstns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:element name="package">
<xs:complexType>
<xs:sequence>
<xs:element name="metadata"
maxOccurs="1"
minOccurs="1">
<xs:complexType>
<xs:all>
<xs:element name="id"
maxOccurs="1"
minOccurs="1"
type="xs:string" />
<xs:element name="version"
maxOccurs="1"
minOccurs="1"
type="xs:string" />
<xs:element name="title"
maxOccurs="1"
minOccurs="0"
type="xs:string" />
<xs:element name="authors"
maxOccurs="1"
minOccurs="1"
type="xs:string" />
<xs:element name="owners"
maxOccurs="1"
minOccurs="0"
type="xs:string" />
<xs:element name="licenseUrl"
maxOccurs="1"
minOccurs="0"
type="xs:anyURI" />
<xs:element name="projectUrl"
maxOccurs="1"
minOccurs="0"
type="xs:anyURI" />
<xs:element name="iconUrl"
maxOccurs="1"
minOccurs="0"
type="xs:anyURI" />
<xs:element name="requireLicenseAcceptance"
maxOccurs="1"
minOccurs="0"
type="xs:boolean" />
<xs:element name="description"
maxOccurs="1"
minOccurs="1"
type="xs:string" />
<xs:element name="summary"
maxOccurs="1"
minOccurs="0"
type="xs:string" />
<xs:element name="releaseNotes"
maxOccurs="1"
minOccurs="0"
type="xs:string" />
<xs:element name="copyright"
maxOccurs="1"
minOccurs="0"
type="xs:string" />
<xs:element name="language"
maxOccurs="1"
minOccurs="0"
type="xs:string"
default="en-US" />
<xs:element name="tags"
maxOccurs="1"
minOccurs="0"
type="xs:string" />
<xs:element name="dependencies"
maxOccurs="1"
minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="dependency"
minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id"
type="xs:string"
use="required" />
<xs:attribute name="version"
type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="frameworkAssemblies"
maxOccurs="1"
minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="frameworkAssembly"
minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="assemblyName"
type="xs:string"
use="required" />
<xs:attribute name="targetFramework"
type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="references"
maxOccurs="1"
minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="reference"
minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="file"
type="xs:string"
use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="files"
minOccurs="0"
maxOccurs="1"
nillable="true">
<xs:complexType>
<xs:sequence>
<xs:element name="file"
minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="src"
use="required"
type="xs:string" />
<xs:attribute name="target"
use="optional"
type="xs:string" />
<xs:attribute name="exclude"
use="optional"
type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
+5
View File
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Fody" version="1.18.0.0" targetFramework="wp80" />
<package id="PropertyChanged.Fody" version="1.42.0.0" targetFramework="wp80" />
</packages>
+84
View File
@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="nuspec"
targetNamespace="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"
elementFormDefault="qualified"
xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"
xmlns:mstns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:element name="package">
<xs:complexType>
<xs:sequence>
<xs:element name="metadata" maxOccurs="1" minOccurs="1">
<xs:complexType>
<xs:all>
<xs:element name="id" maxOccurs="1" minOccurs="1" type="xs:string" />
<xs:element name="version" maxOccurs="1" minOccurs="1" type="xs:string" />
<xs:element name="title" maxOccurs="1" minOccurs="0" type="xs:string" />
<xs:element name="authors" maxOccurs="1" minOccurs="1" type="xs:string" />
<xs:element name="owners" maxOccurs="1" minOccurs="0" type="xs:string" />
<xs:element name="licenseUrl" maxOccurs="1" minOccurs="0" type="xs:anyURI" />
<xs:element name="projectUrl" maxOccurs="1" minOccurs="0" type="xs:anyURI" />
<xs:element name="iconUrl" maxOccurs="1" minOccurs="0" type="xs:anyURI" />
<xs:element name="requireLicenseAcceptance" maxOccurs="1" minOccurs="0" type="xs:boolean" />
<xs:element name="description" maxOccurs="1" minOccurs="1" type="xs:string" />
<xs:element name="summary" maxOccurs="1" minOccurs="0" type="xs:string" />
<xs:element name="releaseNotes" maxOccurs="1" minOccurs="0" type="xs:string" />
<xs:element name="copyright" maxOccurs="1" minOccurs="0" type="xs:string" />
<xs:element name="language" maxOccurs="1" minOccurs="0" type="xs:string" default="en-US" />
<xs:element name="tags" maxOccurs="1" minOccurs="0" type="xs:string" />
<xs:element name="dependencies" maxOccurs="1" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="dependency" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attribute name="version" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="frameworkAssemblies" maxOccurs="1" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="frameworkAssembly" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="assemblyName" type="xs:string" use="required" />
<xs:attribute name="targetFramework" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="references" maxOccurs="1" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="reference" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="file" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="files" minOccurs="0" maxOccurs="1" nillable="true">
<xs:complexType>
<xs:sequence>
<xs:element name="file" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="src" use="required" type="xs:string" />
<xs:attribute name="target" use="optional" type="xs:string" />
<xs:attribute name="exclude" use="optional" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
+165
View File
@@ -0,0 +1,165 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="nuspec"
targetNamespace="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"
elementFormDefault="qualified"
xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"
xmlns:mstns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:element name="package">
<xs:complexType>
<xs:sequence>
<xs:element name="metadata"
maxOccurs="1"
minOccurs="1">
<xs:complexType>
<xs:all>
<xs:element name="id"
maxOccurs="1"
minOccurs="1"
type="xs:string" />
<xs:element name="version"
maxOccurs="1"
minOccurs="1"
type="xs:string" />
<xs:element name="title"
maxOccurs="1"
minOccurs="0"
type="xs:string" />
<xs:element name="authors"
maxOccurs="1"
minOccurs="1"
type="xs:string" />
<xs:element name="owners"
maxOccurs="1"
minOccurs="0"
type="xs:string" />
<xs:element name="licenseUrl"
maxOccurs="1"
minOccurs="0"
type="xs:anyURI" />
<xs:element name="projectUrl"
maxOccurs="1"
minOccurs="0"
type="xs:anyURI" />
<xs:element name="iconUrl"
maxOccurs="1"
minOccurs="0"
type="xs:anyURI" />
<xs:element name="requireLicenseAcceptance"
maxOccurs="1"
minOccurs="0"
type="xs:boolean" />
<xs:element name="description"
maxOccurs="1"
minOccurs="1"
type="xs:string" />
<xs:element name="summary"
maxOccurs="1"
minOccurs="0"
type="xs:string" />
<xs:element name="releaseNotes"
maxOccurs="1"
minOccurs="0"
type="xs:string" />
<xs:element name="copyright"
maxOccurs="1"
minOccurs="0"
type="xs:string" />
<xs:element name="language"
maxOccurs="1"
minOccurs="0"
type="xs:string"
default="en-US" />
<xs:element name="tags"
maxOccurs="1"
minOccurs="0"
type="xs:string" />
<xs:element name="dependencies"
maxOccurs="1"
minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="dependency"
minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id"
type="xs:string"
use="required" />
<xs:attribute name="version"
type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="frameworkAssemblies"
maxOccurs="1"
minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="frameworkAssembly"
minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="assemblyName"
type="xs:string"
use="required" />
<xs:attribute name="targetFramework"
type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="references"
maxOccurs="1"
minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="reference"
minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="file"
type="xs:string"
use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="files"
minOccurs="0"
maxOccurs="1"
nillable="true">
<xs:complexType>
<xs:sequence>
<xs:element name="file"
minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="src"
use="required"
type="xs:string" />
<xs:attribute name="target"
use="optional"
type="xs:string" />
<xs:attribute name="exclude"
use="optional"
type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>