Browse Source

Added the .NET ServiceStack framework

Added the .NET `ServiceStack` framework.

Implemented the JSON, Single DB query (mysql), and Multi DB query
(mysql) tests.

Benchmark has successfully been run using `mono` on a linux host.
Windows support has *not* been tested!

The setup scripts are more or less copied from the existing `aspnet`
framework test project, with minor tweaks to reference framework
specific filenames.
Kevin Pullin 12 years ago
parent
commit
b0cfcb2607
91 changed files with 23112 additions and 0 deletions
  1. 4 0
      servicestack/.gitignore
  2. 66 0
      servicestack/README.md
  3. 0 0
      servicestack/__init__.py
  4. 22 0
      servicestack/benchmark_config
  5. BIN
      servicestack/lib/MySql.Data.6.6.5/MySql.Data.6.6.5.nupkg
  6. 15 0
      servicestack/lib/MySql.Data.6.6.5/MySql.Data.6.6.5.nuspec
  7. BIN
      servicestack/lib/MySql.Data.6.6.5/lib/net20-cf/MySql.Data.cf.dll
  8. BIN
      servicestack/lib/MySql.Data.6.6.5/lib/net20/MySql.Data.dll
  9. BIN
      servicestack/lib/MySql.Data.6.6.5/lib/net40/MySql.Data.dll
  10. BIN
      servicestack/lib/ServiceStack.3.9.46/ServiceStack.3.9.46.nupkg
  11. 28 0
      servicestack/lib/ServiceStack.3.9.46/ServiceStack.3.9.46.nuspec
  12. BIN
      servicestack/lib/ServiceStack.3.9.46/lib/net35/ServiceStack.ServiceInterface.dll
  13. BIN
      servicestack/lib/ServiceStack.3.9.46/lib/net35/ServiceStack.dll
  14. 3682 0
      servicestack/lib/ServiceStack.3.9.46/lib/net35/ServiceStack.xml
  15. BIN
      servicestack/lib/ServiceStack.Common.3.9.46/ServiceStack.Common.3.9.46.nupkg
  16. 28 0
      servicestack/lib/ServiceStack.Common.3.9.46/ServiceStack.Common.3.9.46.nuspec
  17. BIN
      servicestack/lib/ServiceStack.Common.3.9.46/lib/net35/ServiceStack.Common.dll
  18. 970 0
      servicestack/lib/ServiceStack.Common.3.9.46/lib/net35/ServiceStack.Common.xml
  19. BIN
      servicestack/lib/ServiceStack.Common.3.9.46/lib/net35/ServiceStack.Interfaces.dll
  20. 1757 0
      servicestack/lib/ServiceStack.Common.3.9.46/lib/net35/ServiceStack.Interfaces.xml
  21. 3 0
      servicestack/lib/ServiceStack.Common.3.9.46/lib/sl4/README.txt
  22. BIN
      servicestack/lib/ServiceStack.Common.3.9.46/lib/sl4/ServiceStack.Common.dll
  23. 475 0
      servicestack/lib/ServiceStack.Common.3.9.46/lib/sl4/ServiceStack.Common.xml
  24. BIN
      servicestack/lib/ServiceStack.Common.3.9.46/lib/sl4/ServiceStack.Interfaces.dll
  25. 1343 0
      servicestack/lib/ServiceStack.Common.3.9.46/lib/sl4/ServiceStack.Interfaces.xml
  26. 3 0
      servicestack/lib/ServiceStack.Common.3.9.46/lib/sl5/README.txt
  27. BIN
      servicestack/lib/ServiceStack.Common.3.9.46/lib/sl5/ServiceStack.Common.dll
  28. 629 0
      servicestack/lib/ServiceStack.Common.3.9.46/lib/sl5/ServiceStack.Common.xml
  29. BIN
      servicestack/lib/ServiceStack.Common.3.9.46/lib/sl5/ServiceStack.Interfaces.dll
  30. 1400 0
      servicestack/lib/ServiceStack.Common.3.9.46/lib/sl5/ServiceStack.Interfaces.xml
  31. BIN
      servicestack/lib/ServiceStack.OrmLite.MySql.3.9.45/ServiceStack.OrmLite.MySql.3.9.45.nupkg
  32. 24 0
      servicestack/lib/ServiceStack.OrmLite.MySql.3.9.45/ServiceStack.OrmLite.MySql.3.9.45.nuspec
  33. BIN
      servicestack/lib/ServiceStack.OrmLite.MySql.3.9.45/lib/ServiceStack.OrmLite.MySql.dll
  34. BIN
      servicestack/lib/ServiceStack.OrmLite.MySql.3.9.45/lib/ServiceStack.OrmLite.MySql.pdb
  35. BIN
      servicestack/lib/ServiceStack.OrmLite.MySql.3.9.45/lib/ServiceStack.OrmLite.dll
  36. BIN
      servicestack/lib/ServiceStack.OrmLite.MySql.3.9.45/lib/ServiceStack.OrmLite.pdb
  37. BIN
      servicestack/lib/ServiceStack.OrmLite.SqlServer.3.9.45/ServiceStack.OrmLite.SqlServer.3.9.45.nupkg
  38. 22 0
      servicestack/lib/ServiceStack.OrmLite.SqlServer.3.9.45/ServiceStack.OrmLite.SqlServer.3.9.45.nuspec
  39. BIN
      servicestack/lib/ServiceStack.OrmLite.SqlServer.3.9.45/lib/ServiceStack.OrmLite.SqlServer.dll
  40. BIN
      servicestack/lib/ServiceStack.OrmLite.SqlServer.3.9.45/lib/ServiceStack.OrmLite.SqlServer.pdb
  41. BIN
      servicestack/lib/ServiceStack.OrmLite.SqlServer.3.9.45/lib/ServiceStack.OrmLite.dll
  42. BIN
      servicestack/lib/ServiceStack.OrmLite.SqlServer.3.9.45/lib/ServiceStack.OrmLite.pdb
  43. BIN
      servicestack/lib/ServiceStack.Redis.3.9.45/ServiceStack.Redis.3.9.45.nupkg
  44. 22 0
      servicestack/lib/ServiceStack.Redis.3.9.45/ServiceStack.Redis.3.9.45.nuspec
  45. 1355 0
      servicestack/lib/ServiceStack.Redis.3.9.45/lib/net35/ServiceStack.Redis.XML
  46. BIN
      servicestack/lib/ServiceStack.Redis.3.9.45/lib/net35/ServiceStack.Redis.dll
  47. BIN
      servicestack/lib/ServiceStack.Text.3.9.46/ServiceStack.Text.3.9.46.nupkg
  48. 23 0
      servicestack/lib/ServiceStack.Text.3.9.46/ServiceStack.Text.3.9.46.nuspec
  49. 605 0
      servicestack/lib/ServiceStack.Text.3.9.46/lib/net35/ServiceStack.Text.XML
  50. BIN
      servicestack/lib/ServiceStack.Text.3.9.46/lib/net35/ServiceStack.Text.dll
  51. 409 0
      servicestack/lib/ServiceStack.Text.3.9.46/lib/sl4-windowsphone71/ServiceStack.Text.WP.XML
  52. BIN
      servicestack/lib/ServiceStack.Text.3.9.46/lib/sl4-windowsphone71/ServiceStack.Text.WP.dll
  53. BIN
      servicestack/lib/ServiceStack.Text.3.9.46/lib/sl4/ServiceStack.Text.dll
  54. 385 0
      servicestack/lib/ServiceStack.Text.3.9.46/lib/sl4/ServiceStack.Text.xml
  55. BIN
      servicestack/lib/ServiceStack.Text.3.9.46/lib/sl5/ServiceStack.Text.dll
  56. 539 0
      servicestack/lib/ServiceStack.Text.3.9.46/lib/sl5/ServiceStack.Text.xml
  57. 1 0
      servicestack/lib/VisualStudio.MsBuild.11.0/Readme.md
  58. 181 0
      servicestack/lib/VisualStudio.MsBuild.11.0/Web/CollectFiles/Microsoft.Web.Publishing.AllFilesInProjectFolder.targets
  59. 242 0
      servicestack/lib/VisualStudio.MsBuild.11.0/Web/CollectFiles/Microsoft.Web.Publishing.AllFilesInTheProject.targets
  60. 445 0
      servicestack/lib/VisualStudio.MsBuild.11.0/Web/CollectFiles/Microsoft.Web.Publishing.OnlyFilesToRunTheApp.targets
  61. 59 0
      servicestack/lib/VisualStudio.MsBuild.11.0/Web/Deploy/Microsoft.Web.Publishing.Deploy.FPSE.targets
  62. 60 0
      servicestack/lib/VisualStudio.MsBuild.11.0/Web/Deploy/Microsoft.Web.Publishing.Deploy.FTP.targets
  63. 116 0
      servicestack/lib/VisualStudio.MsBuild.11.0/Web/Deploy/Microsoft.Web.Publishing.Deploy.FileSystem.targets
  64. 49 0
      servicestack/lib/VisualStudio.MsBuild.11.0/Web/Deploy/Microsoft.Web.Publishing.Deploy.MsDeploy.targets
  65. 54 0
      servicestack/lib/VisualStudio.MsBuild.11.0/Web/Deploy/Microsoft.Web.Publishing.Deploy.Package.targets
  66. 1192 0
      servicestack/lib/VisualStudio.MsBuild.11.0/Web/Deploy/Microsoft.Web.Publishing.MsDeploy.Common.targets
  67. BIN
      servicestack/lib/VisualStudio.MsBuild.11.0/Web/Microsoft.Web.Publishing.Tasks.dll
  68. 4678 0
      servicestack/lib/VisualStudio.MsBuild.11.0/Web/Microsoft.Web.Publishing.targets
  69. BIN
      servicestack/lib/VisualStudio.MsBuild.11.0/Web/Microsoft.Web.XmlTransform.dll
  70. 530 0
      servicestack/lib/VisualStudio.MsBuild.11.0/Web/Microsoft.WebSite.Publishing.targets
  71. 767 0
      servicestack/lib/VisualStudio.MsBuild.11.0/Web/Transform/Microsoft.Web.Publishing.AspNetCompileMerge.targets
  72. BIN
      servicestack/lib/VisualStudio.MsBuild.11.0/WebApplications/Microsoft.WebApplication.Build.Tasks.Dll
  73. 389 0
      servicestack/lib/VisualStudio.MsBuild.11.0/WebApplications/Microsoft.WebApplication.targets
  74. 4 0
      servicestack/lib/repositories.config
  75. 26 0
      servicestack/nginx.conf
  76. 19 0
      servicestack/setup_iis.ps1
  77. 22 0
      servicestack/setup_iis.py
  78. 39 0
      servicestack/setup_nginx.py
  79. 33 0
      servicestack/setup_xsp.py
  80. 39 0
      servicestack/src/AppHost.cs
  81. 64 0
      servicestack/src/DbService.cs
  82. 1 0
      servicestack/src/Global.asax
  83. 14 0
      servicestack/src/Global.asax.cs
  84. 23 0
      servicestack/src/JsonService.cs
  85. 6 0
      servicestack/src/NuGet.config
  86. 123 0
      servicestack/src/ServiceStackBenchmark.csproj
  87. 25 0
      servicestack/src/ServiceStackBenchmark.sln
  88. 30 0
      servicestack/src/Web.Debug.config
  89. 31 0
      servicestack/src/Web.Release.config
  90. 31 0
      servicestack/src/Web.config
  91. 10 0
      servicestack/src/packages.config

+ 4 - 0
servicestack/.gitignore

@@ -0,0 +1,4 @@
+*.user
+*.suo
+*/bin/*
+*/obj/*

+ 66 - 0
servicestack/README.md

@@ -0,0 +1,66 @@
+# ServiceStack on Mono and Windows
+
+## Tests
+
+### JSON
+
+* `http://localhost:8080/json`
+
+---
+
+### ServiceStack - OrmLite (ORM)
+
+**MySQL**
+
+* `http://localhost:8080/db`
+* `http://localhost:8080/db?queries=10`
+
+## Mono Installation
+
+    sudo apt-get install build-essential autoconf automake libtool zlib1g-dev git
+
+    git clone git://github.com/mono/mono
+    cd mono
+    git checkout mono-3.0.10
+    ./autogen.sh --prefix=/usr/local
+    make get-monolite-latest
+    make EXTERNAL_MCS=${PWD}/mcs/class/lib/monolite/basic.exe
+    sudo make install
+
+    cd ..
+
+    git clone git://github.com/mono/xsp
+    cd xsp
+    git checkout 3.0
+    ./autogen.sh --prefix=/usr/local
+    make
+    sudo make install
+
+## Versions
+
+**Language**
+
+* C# 5.0
+
+**Platforms**
+
+* .NET Framework 4.5 (Windows)
+* Mono 3.0.10 (Linux)
+
+**Web Servers**
+
+* IIS 8 (Windows)
+* nginx 1.4.0 & XSP FastCGI (Linux)
+
+**Web Stack**
+
+* ASP.NET 4.5
+* ServiceStack
+
+**Databases**
+
+* MySQL Connector/Net 6.7.2-beta (custom build)
+
+**Developer Tools**
+
+* Visual Studio 2012 Update 2

+ 0 - 0
servicestack/__init__.py


+ 22 - 0
servicestack/benchmark_config

@@ -0,0 +1,22 @@
+{
+  "framework": "servicestack",
+  "tests": [{
+    "default": {
+      "setup_file": "setup_iis",
+      "os": "nt",
+      "json_url": "/json",
+      "db_url": "/db",
+      "query_url": "/db?queries=",
+      "port": 8080,
+      "sort": 118
+    },
+    "mono": {
+      "setup_file": "setup_nginx",
+      "json_url": "/json",
+      "db_url": "/db",
+      "query_url": "/db?queries=",
+      "port": 8080,
+      "sort": 119
+    }
+  }]
+}

BIN
servicestack/lib/MySql.Data.6.6.5/MySql.Data.6.6.5.nupkg


+ 15 - 0
servicestack/lib/MySql.Data.6.6.5/MySql.Data.6.6.5.nuspec

@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
+  <metadata>
+    <id>MySql.Data</id>
+    <version>6.6.5</version>
+    <authors>Oracle Corporation</authors>
+    <owners>Oracle Corporation</owners>
+    <licenseUrl>http://www.gnu.org/licenses/old-licenses/gpl-2.0.html</licenseUrl>
+    <projectUrl>http://www.mysql.com/downloads/connector/net/</projectUrl>
+    <iconUrl>http://www.mysql.com/common/logos/logo-mysql-110x57.png</iconUrl>
+    <requireLicenseAcceptance>false</requireLicenseAcceptance>
+    <description>Connector/Net is a fully-managed ADO.NET driver for MySQL.</description>
+    <tags>MySQL</tags>
+  </metadata>
+</package>

BIN
servicestack/lib/MySql.Data.6.6.5/lib/net20-cf/MySql.Data.cf.dll


BIN
servicestack/lib/MySql.Data.6.6.5/lib/net20/MySql.Data.dll


BIN
servicestack/lib/MySql.Data.6.6.5/lib/net40/MySql.Data.dll


BIN
servicestack/lib/ServiceStack.3.9.46/ServiceStack.3.9.46.nupkg


+ 28 - 0
servicestack/lib/ServiceStack.3.9.46/ServiceStack.3.9.46.nuspec

@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
+  <metadata>
+    <id>ServiceStack</id>
+    <version>3.9.46</version>
+    <title>ServiceStack webservice framework: Faster, Cleaner, Modern WCF alternative</title>
+    <authors>Demis Bellot</authors>
+    <owners>Demis Bellot</owners>
+    <licenseUrl>https://github.com/ServiceStack/ServiceStack/blob/master/LICENSE</licenseUrl>
+    <projectUrl>https://github.com/ServiceStack/ServiceStack</projectUrl>
+    <iconUrl>http://www.servicestack.net/logo-100x100.png</iconUrl>
+    <requireLicenseAcceptance>false</requireLicenseAcceptance>
+    <description>Binaries for the ServiceStack web framework.
+      Visit http://www.servicestack.net/ServiceStack.Hello/
+      and https://github.com/ServiceStack/ServiceStack/wiki/Create-your-first-webservice
+      for walk throughs and docs on creating your first web service.</description>
+    <summary>Opensource .NET and Mono REST Web Services framework</summary>
+    <releaseNotes />
+    <copyright>servicestack.net 2012 and contributors</copyright>
+    <language>en-US</language>
+    <tags>Fast JSON XML CSV HTML SOAP JSV REST Web Service Framework MONO ServiceStack</tags>
+    <dependencies>
+      <dependency id="ServiceStack.Common" />
+      <dependency id="ServiceStack.Redis" />
+      <dependency id="ServiceStack.OrmLite.SqlServer" />
+    </dependencies>
+  </metadata>
+</package>

BIN
servicestack/lib/ServiceStack.3.9.46/lib/net35/ServiceStack.ServiceInterface.dll


BIN
servicestack/lib/ServiceStack.3.9.46/lib/net35/ServiceStack.dll


+ 3682 - 0
servicestack/lib/ServiceStack.3.9.46/lib/net35/ServiceStack.xml

@@ -0,0 +1,3682 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>ServiceStack</name>
+    </assembly>
+    <members>
+        <member name="M:ServiceStack.CacheAccess.Providers.CacheClientExtensions.RemoveByPattern(ServiceStack.CacheAccess.ICacheClient,System.String)">
+            <summary>
+            Removes items from cache that have keys matching the specified wildcard pattern
+            </summary>
+            <param name="cacheClient">Cache client</param>
+            <param name="pattern">The wildcard, where "*" means any sequence of characters and "?" means any single character.</param>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.Providers.CacheClientExtensions.RemoveByRegex(ServiceStack.CacheAccess.ICacheClient,System.String)">
+            <summary>
+            Removes items from the cache based on the specified regular expression pattern
+            </summary>
+            <param name="cacheClient">Cache client</param>
+            <param name="regex">Regular expression pattern to search cache keys</param>
+        </member>
+        <member name="T:ServiceStack.CacheAccess.Providers.FileAndCacheTextManager">
+            <summary>
+            Stores both 'compressed' and 'text' caches of the dto in the FileSystem and ICacheTextManager provided.
+            The ContentType is inferred from the ICacheTextManager's ContentType.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.CacheAccess.Providers.FileSystemXmlCacheClient">
+            <summary>
+            Implements a very limited subset of ICacheClient, i.e.
+            
+            	- T Get[T]()
+            	- Set(path, value)
+            	- Remove(path)
+            
+            </summary>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.Providers.MemoryCacheClient.CacheAdd(System.String,System.Object)">
+            <summary>
+            Add value with specified key to the cache, and set the cache entry to never expire.
+            </summary>
+            <param name="key">Key associated with value.</param>
+            <param name="value">Value being cached.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.Providers.MemoryCacheClient.CacheAdd(System.String,System.Object,System.DateTime)">
+            <summary>
+            Stores The value with key only if such key doesn't exist at the server yet. 
+            </summary>
+            <param name="key">The key.</param>
+            <param name="value">The value.</param>
+            <param name="expiresAt">The UTC DateTime at which the cache entry expires.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.Providers.MemoryCacheClient.CacheSet(System.String,System.Object)">
+            <summary>
+            Adds or replaces the value with key, and sets the cache entry to never expire.
+            </summary>
+            <param name="key">The key.</param>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.Providers.MemoryCacheClient.CacheSet(System.String,System.Object,System.DateTime)">
+            <summary>
+            Adds or replaces the value with key.
+            </summary>
+            <param name="key">The key.</param>
+            <param name="value">The value.</param>
+            <param name="expiresAt">The UTC DateTime at which the cache entry expires.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.Providers.MemoryCacheClient.CacheSet(System.String,System.Object,System.DateTime,System.Nullable{System.Int64})">
+            <summary>
+            Adds or replaces the value with key. 
+            </summary>
+            <param name="key">The key.</param>
+            <param name="value">The value.</param>
+            <param name="expiresAt">The UTC DateTime at which the cache entry expires.</param>
+            <param name="checkLastModified">The check last modified.</param>
+            <returns>True; if it succeeded</returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.Providers.MemoryCacheClient.CacheReplace(System.String,System.Object)">
+            <summary>
+            Replace the value with specified key if it exists, and set the cache entry to never expire.
+            </summary>
+            <param name="key">The key of the cache entry.</param>
+            <param name="value">The value to be cached.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.Providers.MemoryCacheClient.CacheReplace(System.String,System.Object,System.DateTime)">
+            <summary>
+            Replace the value with specified key if it exists.
+            </summary>
+            <param name="key">The key of the cache entry.</param>
+            <param name="value">The value to be cached.</param>
+            <param name="expiresAt">The UTC DateTime at which the cache entry expires.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.Providers.MemoryCacheClient.Add``1(System.String,``0)">
+            <summary>
+            Add the value with key to the cache, set to never expire.
+            </summary>
+            <param name="key">The key of the cache entry.</param>
+            <param name="value">The value being cached.</param>
+            <returns>True if Add succeeds, otherwise false.</returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.Providers.MemoryCacheClient.Set``1(System.String,``0)">
+            <summary>
+            Add or replace the value with key to the cache, set to never expire.
+            </summary>
+            <param name="key">The key of the cache entry.</param>
+            <param name="value">The value being cached.</param>
+            <returns>True if Set succeeds, otherwise false.</returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.Providers.MemoryCacheClient.Replace``1(System.String,``0)">
+            <summary>
+            Replace the value with key in the cache, set to never expire.
+            </summary>
+            <param name="key">The key of the cache entry.</param>
+            <param name="value">The value being cached.</param>
+            <returns>True if Replace succeeds, otherwise false.</returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.Providers.MemoryCacheClient.Add``1(System.String,``0,System.DateTime)">
+            <summary>
+            Add the value with key to the cache, set to expire at specified DateTime.
+            </summary>
+            <remarks>This method examines the DateTimeKind of expiresAt to determine if conversion to
+            universal time is needed. The version of Add that takes a TimeSpan expiration is faster 
+            than using this method with a DateTime of Kind other than Utc, and is not affected by 
+            ambiguous local time during daylight savings/standard time transition.</remarks>
+            <param name="key">The key of the cache entry.</param>
+            <param name="value">The value being cached.</param>
+            <param name="expiresAt">The DateTime at which the cache entry expires.</param>
+            <returns>True if Add succeeds, otherwise false.</returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.Providers.MemoryCacheClient.Set``1(System.String,``0,System.DateTime)">
+            <summary>
+            Add or replace the value with key to the cache, set to expire at specified DateTime.
+            </summary>
+            <remarks>This method examines the DateTimeKind of expiresAt to determine if conversion to
+            universal time is needed. The version of Set that takes a TimeSpan expiration is faster 
+            than using this method with a DateTime of Kind other than Utc, and is not affected by 
+            ambiguous local time during daylight savings/standard time transition.</remarks>
+            <param name="key">The key of the cache entry.</param>
+            <param name="value">The value being cached.</param>
+            <param name="expiresAt">The DateTime at which the cache entry expires.</param>
+            <returns>True if Set succeeds, otherwise false.</returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.Providers.MemoryCacheClient.Replace``1(System.String,``0,System.DateTime)">
+            <summary>
+            Replace the value with key in the cache, set to expire at specified DateTime.
+            </summary>
+            <remarks>This method examines the DateTimeKind of expiresAt to determine if conversion to
+            universal time is needed. The version of Replace that takes a TimeSpan expiration is faster 
+            than using this method with a DateTime of Kind other than Utc, and is not affected by 
+            ambiguous local time during daylight savings/standard time transition.</remarks>
+            <param name="key">The key of the cache entry.</param>
+            <param name="value">The value being cached.</param>
+            <param name="expiresAt">The DateTime at which the cache entry expires.</param>
+            <returns>True if Replace succeeds, otherwise false.</returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.Providers.MemoryCacheClient.Add``1(System.String,``0,System.TimeSpan)">
+            <summary>
+            Add the value with key to the cache, set to expire after specified TimeSpan.
+            </summary>
+            <param name="key">The key of the cache entry.</param>
+            <param name="value">The value being cached.</param>
+            <param name="expiresIn">The TimeSpan at which the cache entry expires.</param>
+            <returns>True if Add succeeds, otherwise false.</returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.Providers.MemoryCacheClient.Set``1(System.String,``0,System.TimeSpan)">
+            <summary>
+            Add or replace the value with key to the cache, set to expire after specified TimeSpan.
+            </summary>
+            <param name="key">The key of the cache entry.</param>
+            <param name="value">The value being cached.</param>
+            <param name="expiresIn">The TimeSpan at which the cache entry expires.</param>
+            <returns>True if Set succeeds, otherwise false.</returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.Providers.MemoryCacheClient.Replace``1(System.String,``0,System.TimeSpan)">
+            <summary>
+            Replace the value with key in the cache, set to expire after specified TimeSpan.
+            </summary>
+            <param name="key">The key of the cache entry.</param>
+            <param name="value">The value being cached.</param>
+            <param name="expiresIn">The TimeSpan at which the cache entry expires.</param>
+            <returns>True if Replace succeeds, otherwise false.</returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.Providers.MemoryCacheClient.CacheEntry.#ctor(System.Object,System.DateTime)">
+            <summary>
+            Create new instance of CacheEntry.
+            </summary>
+            <param name="value">The value being cached.</param>
+            <param name="expiresAt">The UTC time at which CacheEntry expires.</param>
+        </member>
+        <member name="P:ServiceStack.CacheAccess.Providers.MemoryCacheClient.CacheEntry.ExpiresAt">
+            <summary>UTC time at which CacheEntry expires.</summary>
+        </member>
+        <member name="T:ServiceStack.Configuration.AppSettings">
+            <summary>
+            More familiar name for the new crowd.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Configuration.AppSettings.GetString(System.String)">
+            <summary>
+            Returns string if exists, otherwise null
+            </summary>
+            <param name="name"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Configuration.ISettings.Get(System.String)">
+            <summary>
+            Provides a common interface for Settings providers such as
+            ConfigurationManager or Azure's RoleEnvironment. The only
+            requirement is that if the implementation cannot find the
+            specified key, the return value must be null
+            </summary>
+            <param name="key">The key for the setting</param>
+            <returns>The string value of the specified key, or null if the key
+            was invalid</returns>
+        </member>
+        <member name="M:ServiceStack.Configuration.ConfigUtils.GetNullableAppSetting(System.String)">
+            <summary>
+            Gets the nullable app setting.
+            </summary>
+            <param name="key">The key.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Configuration.ConfigUtils.GetAppSetting(System.String)">
+            <summary>
+            Gets the app setting.
+            </summary>
+            <param name="key">The key.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Configuration.ConfigUtils.ConfigSectionExists(System.String)">
+            <summary>
+            Determines wheter the Config section identified by the sectionName exists.
+            </summary>
+            <param name="sectionName">Name of the section.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Configuration.ConfigUtils.GetAppSetting(System.String,System.String)">
+            <summary>
+            Returns AppSetting[key] if exists otherwise defaultValue
+            </summary>
+            <param name="key">The key.</param>
+            <param name="defaultValue">The default value.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Configuration.ConfigUtils.GetAppSetting``1(System.String,``0)">
+            <summary>
+            Returns AppSetting[key] if exists otherwise defaultValue, for non-string values
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="key">The key.</param>
+            <param name="defaultValue">The default value.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Configuration.ConfigUtils.GetConnectionStringSetting(System.String)">
+            <summary>
+            Gets the connection string setting.
+            </summary>
+            <param name="key">The key.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Configuration.ConfigUtils.GetConnectionString(System.String)">
+            <summary>
+            Gets the connection string.
+            </summary>
+            <param name="key">The key.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Configuration.ConfigUtils.GetListFromAppSetting(System.String)">
+            <summary>
+            Gets the list from app setting.
+            </summary>
+            <param name="key">The key.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Configuration.ConfigUtils.GetDictionaryFromAppSetting(System.String)">
+            <summary>
+            Gets the dictionary from app setting.
+            </summary>
+            <param name="key">The key.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Configuration.ConfigUtils.GetParseMethod(System.Type)">
+            <summary>
+            Get the static Parse(string) method on the type supplied
+            </summary>
+            <param name="type"></param>
+            <returns>A delegate to the type's Parse(string) if it has one</returns>
+        </member>
+        <member name="M:ServiceStack.Configuration.ConfigUtils.GetConstructorInfo(System.Type)">
+            <summary>
+            Gets the constructor info for T(string) if exists.
+            </summary>
+            <param name="type">The type.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Configuration.ConfigUtils.ParseTextValue``1(System.String)">
+            <summary>
+            Returns the value returned by the 'T.Parse(string)' method if exists otherwise 'new T(string)'. 
+            e.g. if T was a TimeSpan it will return TimeSpan.Parse(textValue).
+            If there is no Parse Method it will attempt to create a new instance of the destined type
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="textValue">The default value.</param>
+            <returns>T.Parse(string) or new T(string) value</returns>
+        </member>
+        <member name="T:ServiceStack.Html.AntiXsrf.AntiForgery">
+            <summary>
+            Provides access to the anti-forgery system, which provides protection against
+            Cross-site Request Forgery (XSRF, also called CSRF) attacks.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Html.AntiXsrf.AntiForgery.GetHtml">
+            <summary>
+            Generates an anti-forgery token for this request. This token can
+            be validated by calling the Validate() method.
+            </summary>
+            <returns>An HTML string corresponding to an &lt;input type="hidden"&gt;
+            element. This element should be put inside a &lt;form&gt;.</returns>
+            <remarks>
+            This method has a side effect: it may set a response cookie.
+            </remarks>
+        </member>
+        <member name="M:ServiceStack.Html.AntiXsrf.AntiForgery.GetTokens(System.String,System.String@,System.String@)">
+            <summary>
+            Generates an anti-forgery token pair (cookie and form token) for this request.
+            This method is similar to GetHtml(), but this method gives the caller control
+            over how to persist the returned values. To validate these tokens, call the
+            appropriate overload of Validate.
+            </summary>
+            <param name="oldCookieToken">The anti-forgery token - if any - that already existed
+            for this request. May be null. The anti-forgery system will try to reuse this cookie
+            value when generating a matching form token.</param>
+            <param name="newCookieToken">Will contain a new cookie value if the old cookie token
+            was null or invalid. If this value is non-null when the method completes, the caller
+            must persist this value in the form of a response cookie, and the existing cookie value
+            should be discarded. If this value is null when the method completes, the existing
+            cookie value was valid and needn't be modified.</param>
+            <param name="formToken">The value that should be stored in the &lt;form&gt;. The caller
+            should take care not to accidentally swap the cookie and form tokens.</param>
+            <remarks>
+            Unlike the GetHtml() method, this method has no side effect. The caller
+            is responsible for setting the response cookie and injecting the returned
+            form token as appropriate.
+            </remarks>
+        </member>
+        <member name="M:ServiceStack.Html.AntiXsrf.AntiForgery.Validate">
+            <summary>
+            Validates an anti-forgery token that was supplied for this request.
+            The anti-forgery token may be generated by calling GetHtml().
+            </summary>
+            <remarks>
+            Throws an HttpAntiForgeryException if validation fails.
+            </remarks>
+        </member>
+        <member name="M:ServiceStack.Html.AntiXsrf.AntiForgery.Validate(System.String,System.String)">
+            <summary>
+            Validates an anti-forgery token pair that was generated by the GetTokens method.
+            </summary>
+            <param name="cookieToken">The token that was supplied in the request cookie.</param>
+            <param name="formToken">The token that was supplied in the request form body.</param>
+            <remarks>
+            Throws an HttpAntiForgeryException if validation fails.
+            </remarks>
+        </member>
+        <member name="T:ServiceStack.Html.AntiXsrf.AntiForgeryConfig">
+            <summary>
+            Provides programmatic configuration for the anti-forgery token system.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Html.AntiXsrf.AntiForgeryConfig.AdditionalDataProvider">
+            <summary>
+            Specifies an object that can provide additional data to put into all
+            generated tokens and that can validate additional data in incoming
+            tokens.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Html.AntiXsrf.AntiForgeryConfig.CookieName">
+            <summary>
+            Specifies the name of the cookie that is used by the anti-forgery
+            system.
+            </summary>
+            <remarks>
+            If an explicit name is not provided, the system will automatically
+            generate a name.
+            </remarks>
+        </member>
+        <member name="P:ServiceStack.Html.AntiXsrf.AntiForgeryConfig.RequireSsl">
+            <summary>
+            Specifies whether SSL is required for the anti-forgery system
+            to operate. If this setting is 'true' and a non-SSL request
+            comes into the system, all anti-forgery APIs will fail.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Html.AntiXsrf.AntiForgeryConfig.SuppressIdentityHeuristicChecks">
+            <summary>
+            Specifies whether the anti-forgery system should skip checking
+            for conditions that might indicate misuse of the system. Please
+            use caution when setting this switch, as improper use could open
+            security holes in the application.
+            </summary>
+            <remarks>
+            Setting this switch will disable several checks, including:
+            - Identity.IsAuthenticated = true without Identity.Name being set
+            - special-casing claims-based identities
+            </remarks>
+        </member>
+        <member name="P:ServiceStack.Html.AntiXsrf.AntiForgeryConfig.UniqueClaimTypeIdentifier">
+            <summary>
+            If claims-based authorization is in use, specifies the claim
+            type from the identity that is used to uniquely identify the
+            user. If this property is set, all claims-based identities
+            <em>must</em> return unique values for this claim type.
+            </summary>
+            <remarks>
+            If claims-based authorization is in use and this property has
+            not been set, the anti-forgery system will automatically look
+            for claim types "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"
+            and "http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider".
+            </remarks>
+        </member>
+        <member name="T:ServiceStack.Html.AntiXsrf.IAntiForgeryAdditionalDataProvider">
+            <summary>
+            Allows providing or validating additional custom data for anti-forgery tokens.
+            For example, the developer could use this to supply a nonce when the token is
+            generated, then he could validate the nonce when the token is validated.
+            </summary>
+            <remarks>
+            The anti-forgery system already embeds the client's username within the
+            generated tokens. This interface provides and consumes <em>supplemental</em>
+            data. If an incoming anti-forgery token contains supplemental data but no
+            additional data provider is configured, the supplemental data will not be
+            validated.
+            </remarks>
+        </member>
+        <member name="M:ServiceStack.Html.AntiXsrf.IAntiForgeryAdditionalDataProvider.GetAdditionalData(System.Web.HttpContextBase)">
+            <summary>
+            Provides additional data to be stored for the anti-forgery tokens generated
+            during this request.
+            </summary>
+            <param name="context">Information about the current request.</param>
+            <returns>Supplemental data to embed within the anti-forgery token.</returns>
+        </member>
+        <member name="M:ServiceStack.Html.AntiXsrf.IAntiForgeryAdditionalDataProvider.ValidateAdditionalData(System.Web.HttpContextBase,System.String)">
+            <summary>
+            Validates additional data that was embedded inside an incoming anti-forgery
+            token.
+            </summary>
+            <param name="context">Information about the current request.</param>
+            <param name="additionalData">Supplemental data that was embedded within the token.</param>
+            <returns>True if the data is valid; false if the data is invalid.</returns>
+        </member>
+        <member name="M:ServiceStack.Html.ScopeStorageDictionary.#ctor(System.Collections.Generic.IDictionary{System.Object,System.Object},System.Collections.Generic.IDictionary{System.Object,System.Object})">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Html.ScopeStorageDictionary"/> class.
+            </summary>
+            <param name="baseScope">The base scope.</param>
+            <param name="backingStore">
+            The dictionary to use as a storage. Since the dictionary would be used as-is, we expect the implementer to 
+            use the same key-value comparison logic as we do here.
+            </param>
+        </member>
+        <member name="T:ServiceStack.Html.ScopeStorageComparer">
+            <summary>
+            Custom comparer for the context dictionaries
+            The comparer treats strings as a special case, performing case insesitive comparison. 
+            This guaratees that we remain consistent throughout the chain of contexts since PageData dictionary 
+            behaves in this manner.
+            </summary>
+        </member>
+        <member name="T:Funq.Container">
+            <summary>
+			Main container class for components, supporting container hierarchies and
+			lifetime management of <see cref="T:System.IDisposable"/> instances.
+		</summary>
+        </member>
+        <member name="M:Funq.Container.#ctor">
+            <summary>
+			Initializes a new empty container.
+		</summary>
+        </member>
+        <member name="M:Funq.Container.CreateChildContainer">
+            <summary>
+			Creates a child container of the current one, which exposes its
+			current service registration to the new child container.
+		</summary>
+        </member>
+        <member name="M:Funq.Container.Dispose">
+            <summary>
+			Disposes the container and all instances owned by it (see
+			<see cref="F:Funq.Owner.Container"/>), as well as all child containers
+			created through <see cref="M:Funq.Container.CreateChildContainer"/>.
+		</summary>
+        </member>
+        <member name="M:Funq.Container.Register``1(``0)">
+            <summary>
+			Registers a service instance with the container. This instance 
+			will have <see cref="F:Funq.Owner.External"/> and <see cref="F:Funq.ReuseScope.Hierarchy"/> 
+			behavior.
+		</summary><param name="instance">Service instance to use.</param>
+        </member>
+        <member name="M:Funq.Container.Register``1(System.String,``0)">
+            <summary>
+			Registers a named service instance with the container. This instance
+			will have <see cref="F:Funq.Owner.External"/> and <see cref="F:Funq.ReuseScope.Hierarchy"/>
+			behavior.
+		</summary><param name="name">Name of the service to register.</param><param name="instance">Service instance to use.</param>
+        </member>
+        <member name="M:Funq.Container.LazyResolve``1">
+            <summary>
+			Retrieves a function that can be used to lazily resolve an instance 
+			of the service when needed.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><returns>The function that can resolve to the service instance when invoked.</returns><exception cref="T:Funq.ResolutionException">The requested service has not been registered previously.</exception>
+        </member>
+        <member name="M:Funq.Container.LazyResolve``2">
+            <!-- No matching elements were found for the following include tag --><include file="Container.xdoc" path="docs/doc[@for=&quot;Container.LazyResolve{TService,TArgs}&quot;]/*"/>
+        </member>
+        <member name="M:Funq.Container.LazyResolve``3">
+            <!-- No matching elements were found for the following include tag --><include file="Container.xdoc" path="docs/doc[@for=&quot;Container.LazyResolve{TService,TArgs}&quot;]/*"/>
+        </member>
+        <member name="M:Funq.Container.LazyResolve``4">
+            <!-- No matching elements were found for the following include tag --><include file="Container.xdoc" path="docs/doc[@for=&quot;Container.LazyResolve{TService,TArgs}&quot;]/*"/>
+        </member>
+        <member name="M:Funq.Container.LazyResolve``5">
+            <!-- No matching elements were found for the following include tag --><include file="Container.xdoc" path="docs/doc[@for=&quot;Container.LazyResolve{TService,TArgs}&quot;]/*"/>
+        </member>
+        <member name="M:Funq.Container.LazyResolve``6">
+            <!-- No matching elements were found for the following include tag --><include file="Container.xdoc" path="docs/doc[@for=&quot;Container.LazyResolve{TService,TArgs}&quot;]/*"/>
+        </member>
+        <member name="M:Funq.Container.LazyResolve``7">
+            <!-- No matching elements were found for the following include tag --><include file="Container.xdoc" path="docs/doc[@for=&quot;Container.LazyResolve{TService,TArgs}&quot;]/*"/>
+        </member>
+        <member name="M:Funq.Container.LazyResolve``1(System.String)">
+            <summary>
+			Retrieves a function that can be used to lazily resolve an instance
+			of the service with the given name when needed.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><param name="name">Name of the service to retrieve.</param><returns>The function that can resolve to the service instance with the given name when invoked.</returns><exception cref="T:Funq.ResolutionException">The requested service with the given name has not been registered previously.</exception>
+        </member>
+        <member name="M:Funq.Container.LazyResolve``2(System.String)">
+            <summary>
+			Retrieves a function that can be used to lazily resolve an instance
+			of the service of the given type, name and service constructor arguments when needed.
+		</summary><param name="name">Name of the service to retrieve.</param><returns>The function that can resolve to the service instance with the given and service constructor arguments name when invoked.</returns><exception cref="T:Funq.ResolutionException">The requested service with the given name and constructor arguments has not been registered previously.</exception>
+        </member>
+        <member name="M:Funq.Container.LazyResolve``3(System.String)">
+            <summary>
+			Retrieves a function that can be used to lazily resolve an instance
+			of the service of the given type, name and service constructor arguments when needed.
+		</summary><param name="name">Name of the service to retrieve.</param><returns>The function that can resolve to the service instance with the given and service constructor arguments name when invoked.</returns><exception cref="T:Funq.ResolutionException">The requested service with the given name and constructor arguments has not been registered previously.</exception>
+        </member>
+        <member name="M:Funq.Container.LazyResolve``4(System.String)">
+            <summary>
+			Retrieves a function that can be used to lazily resolve an instance
+			of the service of the given type, name and service constructor arguments when needed.
+		</summary><param name="name">Name of the service to retrieve.</param><returns>The function that can resolve to the service instance with the given and service constructor arguments name when invoked.</returns><exception cref="T:Funq.ResolutionException">The requested service with the given name and constructor arguments has not been registered previously.</exception>
+        </member>
+        <member name="M:Funq.Container.LazyResolve``5(System.String)">
+            <summary>
+			Retrieves a function that can be used to lazily resolve an instance
+			of the service of the given type, name and service constructor arguments when needed.
+		</summary><param name="name">Name of the service to retrieve.</param><returns>The function that can resolve to the service instance with the given and service constructor arguments name when invoked.</returns><exception cref="T:Funq.ResolutionException">The requested service with the given name and constructor arguments has not been registered previously.</exception>
+        </member>
+        <member name="M:Funq.Container.LazyResolve``6(System.String)">
+            <summary>
+			Retrieves a function that can be used to lazily resolve an instance
+			of the service of the given type, name and service constructor arguments when needed.
+		</summary><param name="name">Name of the service to retrieve.</param><returns>The function that can resolve to the service instance with the given and service constructor arguments name when invoked.</returns><exception cref="T:Funq.ResolutionException">The requested service with the given name and constructor arguments has not been registered previously.</exception>
+        </member>
+        <member name="M:Funq.Container.LazyResolve``7(System.String)">
+            <summary>
+			Retrieves a function that can be used to lazily resolve an instance
+			of the service of the given type, name and service constructor arguments when needed.
+		</summary><param name="name">Name of the service to retrieve.</param><returns>The function that can resolve to the service instance with the given and service constructor arguments name when invoked.</returns><exception cref="T:Funq.ResolutionException">The requested service with the given name and constructor arguments has not been registered previously.</exception>
+        </member>
+        <member name="M:Funq.Container.Register``1(System.Func{Funq.Container,``0})">
+            <summary>
+			Registers the given service by providing a factory delegate to
+			instantiate it.
+		</summary><typeparam name="TService">The service type to register.</typeparam><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+        </member>
+        <member name="M:Funq.Container.Register``2(System.Func{Funq.Container,``1,``0})">
+            <summary>
+			Registers the given service by providing a factory delegate that receives arguments to
+			instantiate it.
+		</summary><typeparam name="TService">The service type to register.</typeparam><typeparam name="TArg">First argument that should be passed to the factory delegate to create the instace.</typeparam><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+        </member>
+        <member name="M:Funq.Container.Register``3(System.Func{Funq.Container,``1,``2,``0})">
+            <summary>
+			Registers the given service by providing a factory delegate that receives arguments to
+			instantiate it.
+		</summary><typeparam name="TService">The service type to register.</typeparam><typeparam name="TArg1">First argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg2">Second argument that should be passed to the factory delegate to create the instace.</typeparam><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+        </member>
+        <member name="M:Funq.Container.Register``4(System.Func{Funq.Container,``1,``2,``3,``0})">
+            <summary>
+			Registers the given service by providing a factory delegate that receives arguments to
+			instantiate it.
+		</summary><typeparam name="TService">The service type to register.</typeparam><typeparam name="TArg1">First argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg2">Second argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg3">Third argument that should be passed to the factory delegate to create the instace.</typeparam><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+        </member>
+        <member name="M:Funq.Container.Register``5(Funq.Func{Funq.Container,``1,``2,``3,``4,``0})">
+            <summary>
+			Registers the given service by providing a factory delegate that receives arguments to
+			instantiate it.
+		</summary><typeparam name="TService">The service type to register.</typeparam><typeparam name="TArg1">First argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg2">Second argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg3">Third argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg4">Fourth argument that should be passed to the factory delegate to create the instace.</typeparam><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+        </member>
+        <member name="M:Funq.Container.Register``6(Funq.Func{Funq.Container,``1,``2,``3,``4,``5,``0})">
+            <summary>
+			Registers the given service by providing a factory delegate that receives arguments to
+			instantiate it.
+		</summary><typeparam name="TService">The service type to register.</typeparam><typeparam name="TArg1">First argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg2">Second argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg3">Third argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg4">Fourth argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg5">Fifth argument that should be passed to the factory delegate to create the instace.</typeparam><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+        </member>
+        <member name="M:Funq.Container.Register``7(Funq.Func{Funq.Container,``1,``2,``3,``4,``5,``6,``0})">
+            <summary>
+			Registers the given service by providing a factory delegate that receives arguments to
+			instantiate it.
+		</summary><typeparam name="TService">The service type to register.</typeparam><typeparam name="TArg1">First argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg2">Second argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg3">Third argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg4">Fourth argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg5">Fifth argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg6">Sixth argument that should be passed to the factory delegate to create the instace.</typeparam><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+        </member>
+        <member name="M:Funq.Container.Register``1(System.String,System.Func{Funq.Container,``0})">
+            <summary>
+			Registers the given named service by providing a factory delegate to
+			instantiate it.
+		</summary><typeparam name="TService">The service type to register.</typeparam><param name="name">A name used to differenciate this service registration.</param><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+        </member>
+        <member name="M:Funq.Container.Register``2(System.String,System.Func{Funq.Container,``1,``0})">
+            <summary>
+			Registers the given named service by providing a factory delegate that receives arguments to
+			instantiate it.
+		</summary><typeparam name="TService">The service type to register.</typeparam><typeparam name="TArg">First argument that should be passed to the factory delegate to create the instace.</typeparam><param name="name">A name used to differenciate this service registration.</param><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+        </member>
+        <member name="M:Funq.Container.Register``3(System.String,System.Func{Funq.Container,``1,``2,``0})">
+            <summary>
+			Registers the given named service by providing a factory delegate that receives arguments to
+			instantiate it.
+		</summary><typeparam name="TService">The service type to register.</typeparam><typeparam name="TArg1">First argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg2">Second argument that should be passed to the factory delegate to create the instace.</typeparam><param name="name">A name used to differenciate this service registration.</param><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+        </member>
+        <member name="M:Funq.Container.Register``4(System.String,System.Func{Funq.Container,``1,``2,``3,``0})">
+            <summary>
+			Registers the given named service by providing a factory delegate that receives arguments to
+			instantiate it.
+		</summary><typeparam name="TService">The service type to register.</typeparam><typeparam name="TArg1">First argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg2">Second argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg3">Third argument that should be passed to the factory delegate to create the instace.</typeparam><param name="name">A name used to differenciate this service registration.</param><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+        </member>
+        <member name="M:Funq.Container.Register``5(System.String,Funq.Func{Funq.Container,``1,``2,``3,``4,``0})">
+            <summary>
+			Registers the given named service by providing a factory delegate that receives arguments to
+			instantiate it.
+		</summary><typeparam name="TService">The service type to register.</typeparam><typeparam name="TArg1">First argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg2">Second argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg3">Third argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg4">Fourth argument that should be passed to the factory delegate to create the instace.</typeparam><param name="name">A name used to differenciate this service registration.</param><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+        </member>
+        <member name="M:Funq.Container.Register``6(System.String,Funq.Func{Funq.Container,``1,``2,``3,``4,``5,``0})">
+            <summary>
+			Registers the given named service by providing a factory delegate that receives arguments to
+			instantiate it.
+		</summary><typeparam name="TService">The service type to register.</typeparam><typeparam name="TArg1">First argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg2">Second argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg3">Third argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg4">Fourth argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg5">Fifth argument that should be passed to the factory delegate to create the instace.</typeparam><param name="name">A name used to differenciate this service registration.</param><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+        </member>
+        <member name="M:Funq.Container.Register``7(System.String,Funq.Func{Funq.Container,``1,``2,``3,``4,``5,``6,``0})">
+            <summary>
+			Registers the given named service by providing a factory delegate that receives arguments to
+			instantiate it.
+		</summary><typeparam name="TService">The service type to register.</typeparam><typeparam name="TArg1">First argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg2">Second argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg3">Third argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg4">Fourth argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg5">Fifth argument that should be passed to the factory delegate to create the instace.</typeparam><typeparam name="TArg6">Sixth argument that should be passed to the factory delegate to create the instace.</typeparam><param name="name">A name used to differenciate this service registration.</param><param name="factory">The factory delegate to initialize new instances of the service when needed.</param><returns>The registration object to perform further configuration via its fluent interface.</returns>
+        </member>
+        <member name="M:Funq.Container.Resolve``1">
+            <summary>
+			Resolves the given service by type, without passing any arguments for
+			its construction.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+        </member>
+        <member name="M:Funq.Container.Resolve``2(``1)">
+            <summary>
+			Resolves the given service by type, passing the given arguments
+			for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg">First argument to pass to the factory delegate that may create the instace.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+        </member>
+        <member name="M:Funq.Container.Resolve``3(``1,``2)">
+            <summary>
+			Resolves the given service by type, passing the given arguments
+			for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+        </member>
+        <member name="M:Funq.Container.Resolve``4(``1,``2,``3)">
+            <summary>
+			Resolves the given service by type, passing the given arguments
+			for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+        </member>
+        <member name="M:Funq.Container.Resolve``5(``1,``2,``3,``4)">
+            <summary>
+			Resolves the given service by type, passing the given arguments
+			for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg4">Fourth argument to pass to the factory delegate that may create the instace.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+        </member>
+        <member name="M:Funq.Container.Resolve``6(``1,``2,``3,``4,``5)">
+            <summary>
+			Resolves the given service by type, passing the given arguments
+			for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg4">Fourth argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg5">Fifth argument to pass to the factory delegate that may create the instace.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+        </member>
+        <member name="M:Funq.Container.Resolve``7(``1,``2,``3,``4,``5,``6)">
+            <summary>
+			Resolves the given service by type, passing the given arguments
+			for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg4">Fourth argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg5">Fifth argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg6">Sixth argument to pass to the factory delegate that may create the instace.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+        </member>
+        <member name="M:Funq.Container.ResolveNamed``1(System.String)">
+            <summary>
+			Resolves the given service by type and name, without passing arguments for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+        </member>
+        <member name="M:Funq.Container.ResolveNamed``2(System.String,``1)">
+            <summary>
+			Resolves the given service by type and name, passing the given arguments
+			for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg">First argument to pass to the factory delegate that may create the instace.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+        </member>
+        <member name="M:Funq.Container.ResolveNamed``3(System.String,``1,``2)">
+            <summary>
+			Resolves the given service by type and name, passing the given arguments
+			for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+        </member>
+        <member name="M:Funq.Container.ResolveNamed``4(System.String,``1,``2,``3)">
+            <summary>
+			Resolves the given service by type and name, passing the given arguments
+			for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+        </member>
+        <member name="M:Funq.Container.ResolveNamed``5(System.String,``1,``2,``3,``4)">
+            <summary>
+			Resolves the given service by type and name, passing the given arguments
+			for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg4">Fourth argument to pass to the factory delegate that may create the instace.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+        </member>
+        <member name="M:Funq.Container.ResolveNamed``6(System.String,``1,``2,``3,``4,``5)">
+            <summary>
+			Resolves the given service by type and name, passing the given arguments
+			for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg4">Fourth argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg5">Fifth argument to pass to the factory delegate that may create the instace.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+        </member>
+        <member name="M:Funq.Container.ResolveNamed``7(System.String,``1,``2,``3,``4,``5,``6)">
+            <summary>
+			Resolves the given service by type and name, passing the given arguments
+			for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg4">Fourth argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg5">Fifth argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg6">Sixth argument to pass to the factory delegate that may create the instace.</typeparam><returns>The resolved service instance.</returns><exception cref="T:Funq.ResolutionException">The given service could not be resolved.</exception>
+        </member>
+        <member name="M:Funq.Container.TryResolve``1">
+            <summary>
+			Attempts to resolve the given service by type, without passing arguments for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><returns>
+			The resolved service instance or <see langword="null"/> if it cannot be resolved.
+		</returns>
+        </member>
+        <member name="M:Funq.Container.TryResolve``2(``1)">
+            <summary>
+			Attempts to resolve the given service by type, passing the
+			given arguments arguments for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg">First argument to pass to the factory delegate that may create the instace.</typeparam><returns>
+			The resolved service instance or <see langword="null"/> if it cannot be resolved.
+		</returns>
+        </member>
+        <member name="M:Funq.Container.TryResolve``3(``1,``2)">
+            <summary>
+			Attempts to resolve the given service by type, passing the
+			given arguments arguments for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><returns>
+			The resolved service instance or <see langword="null"/> if it cannot be resolved.
+		</returns>
+        </member>
+        <member name="M:Funq.Container.TryResolve``4(``1,``2,``3)">
+            <summary>
+			Attempts to resolve the given service by type, passing the
+			given arguments arguments for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><returns>
+			The resolved service instance or <see langword="null"/> if it cannot be resolved.
+		</returns>
+        </member>
+        <member name="M:Funq.Container.TryResolve``5(``1,``2,``3,``4)">
+            <summary>
+			Attempts to resolve the given service by type, passing the
+			given arguments arguments for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg4">Fourth argument to pass to the factory delegate that may create the instace.</typeparam><returns>
+			The resolved service instance or <see langword="null"/> if it cannot be resolved.
+		</returns>
+        </member>
+        <member name="M:Funq.Container.TryResolve``6(``1,``2,``3,``4,``5)">
+            <summary>
+			Attempts to resolve the given service by type, passing the
+			given arguments arguments for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg4">Fourth argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg5">Fifth argument to pass to the factory delegate that may create the instace.</typeparam><returns>
+			The resolved service instance or <see langword="null"/> if it cannot be resolved.
+		</returns>
+        </member>
+        <member name="M:Funq.Container.TryResolve``7(``1,``2,``3,``4,``5,``6)">
+            <summary>
+			Attempts to resolve the given service by type, passing the
+			given arguments arguments for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg4">Fourth argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg5">Fifth argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg6">Sixth argument to pass to the factory delegate that may create the instace.</typeparam><returns>
+			The resolved service instance or <see langword="null"/> if it cannot be resolved.
+		</returns>
+        </member>
+        <member name="M:Funq.Container.TryResolveNamed``1(System.String)">
+            <summary>
+			Attempts to resolve the given service by type and name, without passing
+			arguments arguments for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><returns>
+			The resolved service instance or <see langword="null"/> if it cannot be resolved.
+		</returns>
+        </member>
+        <member name="M:Funq.Container.TryResolveNamed``2(System.String,``1)">
+            <summary>
+			Attempts to resolve the given service by type and name, passing the
+			given arguments arguments for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg">First argument to pass to the factory delegate that may create the instace.</typeparam><returns>
+			The resolved service instance or <see langword="null"/> if it cannot be resolved.
+		</returns>
+        </member>
+        <member name="M:Funq.Container.TryResolveNamed``3(System.String,``1,``2)">
+            <summary>
+			Attempts to resolve the given service by type and name, passing the
+			given arguments arguments for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><returns>
+			The resolved service instance or <see langword="null"/> if it cannot be resolved.
+		</returns>
+        </member>
+        <member name="M:Funq.Container.TryResolveNamed``4(System.String,``1,``2,``3)">
+            <summary>
+			Attempts to resolve the given service by type and name, passing the
+			given arguments arguments for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><returns>
+			The resolved service instance or <see langword="null"/> if it cannot be resolved.
+		</returns>
+        </member>
+        <member name="M:Funq.Container.TryResolveNamed``5(System.String,``1,``2,``3,``4)">
+            <summary>
+			Attempts to resolve the given service by type and name, passing the
+			given arguments arguments for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg4">Fourth argument to pass to the factory delegate that may create the instace.</typeparam><returns>
+			The resolved service instance or <see langword="null"/> if it cannot be resolved.
+		</returns>
+        </member>
+        <member name="M:Funq.Container.TryResolveNamed``6(System.String,``1,``2,``3,``4,``5)">
+            <summary>
+			Attempts to resolve the given service by type and name, passing the
+			given arguments arguments for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg4">Fourth argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg5">Fifth argument to pass to the factory delegate that may create the instace.</typeparam><returns>
+			The resolved service instance or <see langword="null"/> if it cannot be resolved.
+		</returns>
+        </member>
+        <member name="M:Funq.Container.TryResolveNamed``7(System.String,``1,``2,``3,``4,``5,``6)">
+            <summary>
+			Attempts to resolve the given service by type and name, passing the
+			given arguments arguments for its initialization.
+		</summary><typeparam name="TService">Type of the service to retrieve.</typeparam><typeparam name="TArg1">First argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg2">Second argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg3">Third argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg4">Fourth argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg5">Fifth argument to pass to the factory delegate that may create the instace.</typeparam><typeparam name="TArg6">Sixth argument to pass to the factory delegate that may create the instace.</typeparam><returns>
+			The resolved service instance or <see langword="null"/> if it cannot be resolved.
+		</returns>
+        </member>
+        <member name="M:Funq.Container.RegisterAutoWired``1">
+            <summary>
+            Register an autowired dependency
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="M:Funq.Container.RegisterAutoWiredAs``2">
+            <summary>
+            Register an autowired dependency as a separate type
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="M:Funq.Container.RegisterAs``2">
+            <summary>
+            Alias for RegisterAutoWiredAs
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="M:Funq.Container.AutoWire(System.Object)">
+            <summary>
+            Auto-wires an existing instance, 
+            ie all public properties are tried to be resolved.
+            </summary>
+            <param name="instance"></param>
+        </member>
+        <member name="M:Funq.Container.GenerateAutoWireFn``1">
+            <summary>
+            Generates a function which creates and auto-wires <see cref="!:TService"/>.
+            </summary>
+            <typeparam name="TService"></typeparam>
+            <param name="lambdaParam"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Funq.Container.AutoWire(Funq.Container,System.Object)">
+            <summary>
+            Auto-wires an existing instance of a specific type.
+            The auto-wiring progress is also cached to be faster 
+            when calling next time with the same type.
+            </summary>
+            <param name="instance"></param>
+        </member>
+        <member name="P:Funq.Container.DefaultOwner">
+            <summary>
+			Default owner for new registrations. <see cref="F:Funq.Owner.Container"/> by default.
+		</summary>
+        </member>
+        <member name="P:Funq.Container.DefaultReuse">
+            <summary>
+			Default reuse scope for new registrations. <see cref="F:Funq.ReuseScope.Hierarchy"/> by default.
+		</summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.ContainerTypeExtensions.RegisterAutoWiredType(Funq.Container,System.Type,System.Type,Funq.ReuseScope)">
+            <summary>
+            Registers the type in the IoC container and
+            adds auto-wiring to the specified type.
+            </summary>
+            <param name="serviceType"></param>
+            <param name="inFunqAsType"></param>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.ContainerTypeExtensions.RegisterAutoWiredType(Funq.Container,System.Type,Funq.ReuseScope)">
+            <summary>
+            Registers the type in the IoC container and
+            adds auto-wiring to the specified type.
+            The reuse scope is set to none (transient).
+            </summary>
+            <param name="serviceTypes"></param>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.ContainerTypeExtensions.RegisterAutoWiredTypes(Funq.Container,System.Collections.Generic.IEnumerable{System.Type},Funq.ReuseScope)">
+            <summary>
+            Registers the types in the IoC container and
+            adds auto-wiring to the specified types.
+            The reuse scope is set to none (transient).
+            </summary>
+            <param name="serviceTypes"></param>
+        </member>
+        <member name="T:Funq.Func`6">
+            <summary>
+            Encapsulates a method that has five parameters and returns a value of the 
+             type specified by the <typeparamref name="TResult"/> parameter.
+            </summary>
+        </member>
+        <member name="T:Funq.Func`7">
+            <summary>
+            Encapsulates a method that has six parameters and returns a value of the 
+             type specified by the <typeparamref name="TResult"/> parameter.
+            </summary>
+        </member>
+        <member name="T:Funq.Func`8">
+            <summary>
+            Encapsulates a method that has seven parameters and returns a value of the 
+             type specified by the <typeparamref name="TResult"/> parameter.
+            </summary>
+        </member>
+        <member name="T:Funq.IFluentInterface">
+            <summary>
+            Helper interface used to hide the base <see cref="T:System.Object"/> 
+            members from the fluent API to make for much cleaner 
+            Visual Studio intellisense experience.
+            </summary>
+        </member>
+        <member name="M:Funq.IFluentInterface.GetType">
+            <summary/>
+        </member>
+        <member name="M:Funq.IFluentInterface.GetHashCode">
+            <summary/>
+        </member>
+        <member name="M:Funq.IFluentInterface.ToString">
+            <summary/>
+        </member>
+        <member name="M:Funq.IFluentInterface.Equals(System.Object)">
+            <summary/>
+        </member>
+        <member name="T:Funq.IFunqlet">
+            <summary>
+            Funqlets are a set of components provided as a package 
+            to an existing container (like a module).
+            </summary>
+        </member>
+        <member name="M:Funq.IFunqlet.Configure(Funq.Container)">
+            <summary>
+            Configure the given container with the 
+            registrations provided by the funqlet.
+            </summary>
+            <param name="container">Container to register.</param>
+        </member>
+        <member name="T:Funq.IContainerModule">
+            <summary>
+            Interface used by plugins to contribute registrations 
+            to an existing container.
+            </summary>
+        </member>
+        <member name="T:Funq.Owner">
+            <summary>
+            Determines who is responsible for disposing instances 
+            registered with a container.
+            </summary>
+        </member>
+        <member name="F:Funq.Owner.Container">
+            <summary>
+            Container should dispose provided instances when it is disposed. This is the 
+            default.
+            </summary>
+        </member>
+        <member name="F:Funq.Owner.External">
+            <summary>
+            Container does not dispose provided instances.
+            </summary>
+        </member>
+        <member name="F:Funq.Owner.Default">
+            <summary>
+            Default owner, which equals <see cref="F:Funq.Owner.Container"/>.
+            </summary>
+        </member>
+        <member name="T:Funq.ResolutionException">
+            <summary>
+            Exception thrown by the container when a service cannot be resolved.
+            </summary>
+        </member>
+        <member name="M:Funq.ResolutionException.#ctor(System.Type)">
+            <summary>
+            Initializes the exception with the service that could not be resolved.
+            </summary>
+        </member>
+        <member name="M:Funq.ResolutionException.#ctor(System.Type,System.String)">
+            <summary>
+            Initializes the exception with the service (and its name) that could not be resolved.
+            </summary>
+        </member>
+        <member name="M:Funq.ResolutionException.#ctor(System.String)">
+            <summary>
+            Initializes the exception with an arbitrary message.
+            </summary>
+        </member>
+        <member name="T:Funq.ReuseScope">
+            <summary>
+            Determines visibility and reuse of instances provided by the container.
+            </summary>
+        </member>
+        <member name="F:Funq.ReuseScope.Hierarchy">
+            <summary>
+            Instances are reused within a container hierarchy. Instances 
+            are created (if necessary) in the container where the registration
+            was performed, and are reused by all descendent containers.
+            </summary>
+        </member>
+        <member name="F:Funq.ReuseScope.Container">
+            <summary>
+            Instances are reused only at the given container. Descendent 
+            containers do not reuse parent container instances and get  
+            a new instance at their level.
+            </summary>
+        </member>
+        <member name="F:Funq.ReuseScope.None">
+            <summary>
+            Each request to resolve the dependency will result in a new 
+            instance being returned.
+            </summary>
+        </member>
+        <member name="F:Funq.ReuseScope.Request">
+            <summary>
+            Instaces are reused within the given request
+            </summary>
+        </member>
+        <member name="F:Funq.ReuseScope.Default">
+            <summary>
+            Default scope, which equals <see cref="F:Funq.ReuseScope.Hierarchy"/>.
+            </summary>
+        </member>
+        <member name="T:Funq.IRegistration">
+            <summary>
+            Fluent API for customizing the registration of a service.
+            </summary>
+        </member>
+        <member name="T:Funq.IReusedOwned">
+            <summary>
+            Fluent API that exposes both <see cref="M:Funq.IReused.ReusedWithin(Funq.ReuseScope)"/>
+            and owner (<see cref="M:Funq.IOwned.OwnedBy(Funq.Owner)"/>).
+            </summary>
+        </member>
+        <member name="T:Funq.IReused">
+            <summary>
+            Fluent API that allows specifying the reuse instances.
+            </summary>
+        </member>
+        <member name="M:Funq.IReused.ReusedWithin(Funq.ReuseScope)">
+            <summary>
+            Specifies how instances are reused within a container or hierarchy. Default 
+            scope is <see cref="F:Funq.ReuseScope.Hierarchy"/>.
+            </summary>
+        </member>
+        <member name="T:Funq.IOwned">
+            <summary>
+            Fluent API that allows specifying the owner of instances 
+            created from a registration.
+            </summary>
+        </member>
+        <member name="M:Funq.IOwned.OwnedBy(Funq.Owner)">
+            <summary>
+            Specifies the owner of instances created from this registration. Default 
+            owner is <see cref="F:Funq.Owner.Container"/>.
+            </summary>
+        </member>
+        <member name="F:Funq.ServiceEntry.Owner">
+            <summary>
+            Ownership setting for the service.
+            </summary>
+        </member>
+        <member name="F:Funq.ServiceEntry.Reuse">
+            <summary>
+            Reuse scope setting for the service.
+            </summary>
+        </member>
+        <member name="F:Funq.ServiceEntry.Container">
+            <summary>
+            The container where the entry was registered.
+            </summary>
+        </member>
+        <member name="M:Funq.ServiceEntry.OwnedBy(Funq.Owner)">
+            <summary>
+            Specifies the owner for instances, which determines how 
+            they will be disposed.
+            </summary>
+        </member>
+        <member name="M:Funq.ServiceEntry.ReusedWithin(Funq.ReuseScope)">
+            <summary>
+            Specifies the scope for instances, which determines 
+            visibility of instances across containers and hierarchies.
+            </summary>
+        </member>
+        <member name="T:Funq.IRegistration`1">
+            <summary>
+            Fluent API for customizing the registration of a service.
+            </summary>
+        </member>
+        <member name="T:Funq.IInitializable`1">
+            <summary>
+            Fluent API that allows registering an initializer for the 
+            service.
+            </summary>
+        </member>
+        <member name="M:Funq.IInitializable`1.InitializedBy(System.Action{Funq.Container,`0})">
+            <summary>
+            Specifies an initializer that should be invoked after 
+            the service instance has been created by the factory.
+            </summary>
+        </member>
+        <member name="F:Funq.ServiceEntry`2.Factory">
+            <summary>
+            The Func delegate that creates instances of the service.
+            </summary>
+        </member>
+        <member name="F:Funq.ServiceEntry`2.instance">
+            <summary>
+            The cached service instance if the scope is <see cref="F:Funq.ReuseScope.Hierarchy"/> or 
+            <see cref="F:Funq.ReuseScope.Container"/>.
+            </summary>
+        </member>
+        <member name="F:Funq.ServiceEntry`2.Initializer">
+            <summary>
+            The Func delegate that initializes the object after creation.
+            </summary>
+        </member>
+        <member name="M:Funq.ServiceEntry`2.CloneFor(Funq.Container)">
+            <summary>
+            Clones the service entry assigning the <see cref="T:Funq.Container"/> to the 
+            <paramref name="newContainer"/>. Does not copy the <see cref="P:Funq.ServiceEntry`2.Instance"/>.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.BaseProfilerProvider">
+            <summary>
+            BaseProfilerProvider.  This providers some helper methods which provide access to
+            internals not otherwise available.
+            To use, override the <see cref="M:ServiceStack.MiniProfiler.BaseProfilerProvider.Start(ServiceStack.MiniProfiler.ProfileLevel)"/>, <see cref="M:ServiceStack.MiniProfiler.BaseProfilerProvider.Stop(System.Boolean)"/> and <see cref="M:ServiceStack.MiniProfiler.BaseProfilerProvider.GetCurrentProfiler"/>
+            methods.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.IProfilerProvider">
+            <summary>
+            A provider used to create <see cref="T:ServiceStack.MiniProfiler.Profiler"/> instances and maintain the current instance.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.IProfilerProvider.Start(ServiceStack.MiniProfiler.ProfileLevel)">
+            <summary>
+            Starts a new MiniProfiler and sets it to be current.  By the end of this method
+            <see cref="M:ServiceStack.MiniProfiler.IProfilerProvider.GetCurrentProfiler"/> should return the new MiniProfiler.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.IProfilerProvider.Stop(System.Boolean)">
+            <summary>
+            Ends the current profiling session, if one exists.
+            </summary>
+            <param name="discardResults">
+            When true, clears the <see cref="P:ServiceStack.MiniProfiler.Profiler.Current"/> for this HttpContext, allowing profiling to 
+            be prematurely stopped and discarded. Useful for when a specific route does not need to be profiled.
+            </param>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.IProfilerProvider.GetCurrentProfiler">
+            <summary>
+            Returns the current MiniProfiler.  This is used by <see cref="P:ServiceStack.MiniProfiler.Profiler.Current"/>.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.BaseProfilerProvider.Start(ServiceStack.MiniProfiler.ProfileLevel)">
+            <summary>
+            Starts a new MiniProfiler and sets it to be current.  By the end of this method
+            <see cref="M:ServiceStack.MiniProfiler.BaseProfilerProvider.GetCurrentProfiler"/> should return the new MiniProfiler.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.BaseProfilerProvider.Stop(System.Boolean)">
+            <summary>
+            Stops the current MiniProfiler (if any is currently running).
+            <see cref="M:ServiceStack.MiniProfiler.BaseProfilerProvider.SaveProfiler(ServiceStack.MiniProfiler.Profiler)"/> should be called if <paramref name="discardResults"/> is false
+            </summary>
+            <param name="discardResults">If true, any current results will be thrown away and nothing saved</param>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.BaseProfilerProvider.GetCurrentProfiler">
+            <summary>
+            Returns the current MiniProfiler.  This is used by <see cref="P:ServiceStack.MiniProfiler.Profiler.Current"/>.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.BaseProfilerProvider.SetProfilerActive(ServiceStack.MiniProfiler.Profiler)">
+            <summary>
+            Sets <paramref name="profiler"/> to be active (read to start profiling)
+            This should be called once a new MiniProfiler has been created.
+            </summary>
+            <param name="profiler">The profiler to set to active</param>
+            <exception cref="T:System.ArgumentNullException">If <paramref name="profiler"/> is null</exception>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.BaseProfilerProvider.StopProfiler(ServiceStack.MiniProfiler.Profiler)">
+            <summary>
+            Stops the profiler and marks it as inactive.
+            </summary>
+            <param name="profiler">The profiler to stop</param>
+            <returns>True if successful, false if Stop had previously been called on this profiler</returns>
+            <exception cref="T:System.ArgumentNullException">If <paramref name="profiler"/> is null</exception>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.BaseProfilerProvider.SaveProfiler(ServiceStack.MiniProfiler.Profiler)">
+            <summary>
+            Calls <see cref="M:ServiceStack.MiniProfiler.Profiler.Settings.EnsureStorageStrategy"/> to save the current
+            profiler using the current storage settings
+            </summary>
+            <param name="current"></param>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.Data.ExecuteType">
+            <summary>
+            Categories of sql statements.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.MiniProfiler.Data.ExecuteType.None">
+            <summary>
+            Unknown
+            </summary>
+        </member>
+        <member name="F:ServiceStack.MiniProfiler.Data.ExecuteType.NonQuery">
+            <summary>
+            DML statements that alter database state, e.g. INSERT, UPDATE
+            </summary>
+        </member>
+        <member name="F:ServiceStack.MiniProfiler.Data.ExecuteType.Scalar">
+            <summary>
+            Statements that return a single record
+            </summary>
+        </member>
+        <member name="F:ServiceStack.MiniProfiler.Data.ExecuteType.Reader">
+            <summary>
+            Statements that iterate over a result set
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.Data.IDbProfiler">
+            <summary>
+            A callback for ProfiledDbConnection and family
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Data.IDbProfiler.ExecuteStart(System.Data.Common.DbCommand,ServiceStack.MiniProfiler.Data.ExecuteType)">
+            <summary>
+            Called when a command starts executing
+            </summary>
+            <param name="profiledDbCommand"></param>
+            <param name="executeType"></param>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Data.IDbProfiler.ExecuteFinish(System.Data.Common.DbCommand,ServiceStack.MiniProfiler.Data.ExecuteType,System.Data.Common.DbDataReader)">
+            <summary>
+            Called when a reader finishes executing
+            </summary>
+            <param name="profiledDbCommand"></param>
+            <param name="executeType"></param>
+            <param name="reader"></param>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Data.IDbProfiler.ReaderFinish(System.Data.Common.DbDataReader)">
+            <summary>
+            Called when a reader is done iterating through the data 
+            </summary>
+            <param name="reader"></param>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Data.IDbProfiler.OnError(System.Data.Common.DbCommand,ServiceStack.MiniProfiler.Data.ExecuteType,System.Exception)">
+            <summary>
+            Called when an error happens during execution of a command 
+            </summary>
+            <param name="profiledDbCommand"></param>
+            <param name="executeType"></param>
+            <param name="exception"></param>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Data.IDbProfiler.IsActive">
+            <summary>
+            True if the profiler instance is active
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.Data.Link`2">
+            <summary>
+            This is a micro-cache; suitable when the number of terms is controllable (a few hundred, for example),
+            and strictly append-only; you cannot change existing values. All key matches are on **REFERENCE**
+            equality. The type is fully thread-safe.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Data.ProfiledDbCommand.BindByName">
+            <summary>
+            If the underlying command supports BindByName, this sets/clears the underlying
+            implementation accordingly. This is required to support OracleCommand from dapper-dot-net
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.Data.ProfiledDbConnection">
+            <summary>
+            Wraps a database connection, allowing sql execution timings to be collected when a <see cref="T:ServiceStack.MiniProfiler.Profiler"/> session is started.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.MiniProfiler.Data.ProfiledDbConnection._conn">
+            <summary>
+            This will be made private; use <see cref="P:ServiceStack.MiniProfiler.Data.ProfiledDbConnection.InnerConnection"/>
+            </summary>
+        </member>
+        <member name="F:ServiceStack.MiniProfiler.Data.ProfiledDbConnection._profiler">
+            <summary>
+            This will be made private; use <see cref="P:ServiceStack.MiniProfiler.Data.ProfiledDbConnection.Profiler"/>
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Data.ProfiledDbConnection.#ctor(System.Data.Common.DbConnection,ServiceStack.MiniProfiler.Data.IDbProfiler,System.Boolean)">
+            <summary>
+            Returns a new <see cref="T:ServiceStack.MiniProfiler.Data.ProfiledDbConnection"/> that wraps <paramref name="connection"/>, 
+            providing query execution profiling.  If profiler is null, no profiling will occur.
+            </summary>
+            <param name="connection">Your provider-specific flavor of connection, e.g. SqlConnection, OracleConnection</param>
+            <param name="profiler">The currently started <see cref="T:ServiceStack.MiniProfiler.Profiler"/> or null.</param>
+            <param name="autoDisposeConnection">Determines whether the ProfiledDbConnection will dispose the underlying connection.</param>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Data.ProfiledDbConnection.InnerConnection">
+            <summary>
+            The underlying, real database connection to your db provider.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Data.ProfiledDbConnection.Profiler">
+            <summary>
+            The current profiler instance; could be null.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Data.ProfiledDbConnection.WrappedConnection">
+            <summary>
+            The raw connection this is wrapping
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.Data.ProfiledDbProviderFactory">
+            <summary>
+            Wrapper for a db provider factory to enable profiling
+            </summary>
+        </member>
+        <member name="F:ServiceStack.MiniProfiler.Data.ProfiledDbProviderFactory.Instance">
+            <summary>
+            Every provider factory must have an Instance public field
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Data.ProfiledDbProviderFactory.#ctor">
+            <summary>
+            Used for db provider apis internally 
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Data.ProfiledDbProviderFactory.InitProfiledDbProviderFactory(ServiceStack.MiniProfiler.Data.IDbProfiler,System.Data.Common.DbProviderFactory)">
+            <summary>
+            Allow to re-init the provider factory.
+            </summary>
+            <param name="profiler"></param>
+            <param name="tail"></param>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Data.ProfiledDbProviderFactory.#ctor(ServiceStack.MiniProfiler.Data.IDbProfiler,System.Data.Common.DbProviderFactory)">
+            <summary>
+            proxy
+            </summary>
+            <param name="profiler"></param>
+            <param name="tail"></param>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Data.ProfiledDbProviderFactory.CreateDataSourceEnumerator">
+            <summary>
+            proxy
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Data.ProfiledDbProviderFactory.CreateCommand">
+            <summary>
+            proxy
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Data.ProfiledDbProviderFactory.CreateConnection">
+            <summary>
+            proxy
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Data.ProfiledDbProviderFactory.CreateParameter">
+            <summary>
+            proxy
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Data.ProfiledDbProviderFactory.CreateConnectionStringBuilder">
+            <summary>
+            proxy
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Data.ProfiledDbProviderFactory.CreateCommandBuilder">
+            <summary>
+            proxy
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Data.ProfiledDbProviderFactory.CreateDataAdapter">
+            <summary>
+            proxy
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Data.ProfiledDbProviderFactory.CreatePermission(System.Security.Permissions.PermissionState)">
+            <summary>
+            proxy
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Data.ProfiledDbProviderFactory.CanCreateDataSourceEnumerator">
+            <summary>
+            proxy
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.Helpers.ExtensionMethods">
+            <summary>
+            Common extension methods to use only in this project
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Helpers.ExtensionMethods.IsNullOrWhiteSpace(System.String)">
+            <summary>
+            Answers true if this String is either null or empty.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Helpers.ExtensionMethods.HasValue(System.String)">
+            <summary>
+            Answers true if this String is neither null or empty.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Helpers.ExtensionMethods.EnsureTrailingSlash(System.String)">
+            <summary>
+            Removes trailing / characters from a path and leaves just one
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Helpers.ExtensionMethods.RemoveLeadingSlash(System.String)">
+            <summary>
+            Removes any leading / characters from a path
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Helpers.ExtensionMethods.RemoveTrailingSlash(System.String)">
+            <summary>
+            Removes any leading / characters from a path
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Helpers.ExtensionMethods.ToJson(System.Object)">
+            <summary>
+            Serializes <paramref name="o"/> to a json string.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.Helpers.StackTraceSnippet">
+            <summary>
+            Gets part of a stack trace containing only methods we care about.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Helpers.StackTraceSnippet.Get">
+            <summary>
+            Gets the current formatted and filted stack trace.
+            </summary>
+            <returns>Space separated list of methods</returns>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.IpAddressIdentity">
+            <summary>
+            Identifies users based on ip address.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.IUserProvider">
+            <summary>
+            Provides functionality to identify which user is profiling a request.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.IUserProvider.GetUser(System.Web.HttpRequest)">
+            <summary>
+            Returns a string to identify the user profiling the current 'request'.
+            </summary>
+            <param name="request">The current HttpRequest being profiled.</param>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.IpAddressIdentity.GetUser(System.Web.HttpRequest)">
+            <summary>
+            Returns the paramter HttpRequest's client ip address.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.Profiler">
+            <summary>
+            A single MiniProfiler can be used to represent any number of steps/levels in a call-graph, via Step()
+            </summary>
+            <remarks>Totally baller.</remarks>
+        </member>
+        <member name="F:ServiceStack.MiniProfiler.Profiler._sw">
+            <summary>
+            Starts when this profiler is instantiated. Each <see cref="T:ServiceStack.MiniProfiler.Timing"/> step will use this Stopwatch's current ticks as
+            their starting time.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Profiler.#ctor(System.String,ServiceStack.MiniProfiler.ProfileLevel)">
+            <summary>
+            Creates and starts a new MiniProfiler for the root <paramref name="url"/>, filtering <see cref="T:ServiceStack.MiniProfiler.Timing"/> steps to <paramref name="level"/>.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Profiler.ToString">
+            <summary>
+            Returns the <see cref="P:ServiceStack.MiniProfiler.Profiler.Root"/>'s <see cref="P:ServiceStack.MiniProfiler.Timing.Name"/> and <see cref="P:ServiceStack.MiniProfiler.Profiler.DurationMilliseconds"/> this profiler recorded.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Profiler.Equals(System.Object)">
+            <summary>
+            Returns true if Ids match.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Profiler.GetHashCode">
+            <summary>
+            Returns hashcode of Id.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Profiler.#ctor">
+            <summary>
+            Obsolete - used for serialization.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Profiler.GetTimingHierarchy">
+            <summary>
+            Walks the <see cref="T:ServiceStack.MiniProfiler.Timing"/> hierarchy contained in this profiler, starting with <see cref="P:ServiceStack.MiniProfiler.Profiler.Root"/>, and returns each Timing found.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Profiler.GetRoundedMilliseconds(System.Int64)">
+            <summary>
+            Returns milliseconds based on Stopwatch's Frequency.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Profiler.Start(ServiceStack.MiniProfiler.ProfileLevel)">
+            <summary>
+            Starts a new MiniProfiler based on the current <see cref="T:ServiceStack.MiniProfiler.IProfilerProvider"/>. This new profiler can be accessed by
+            <see cref="P:ServiceStack.MiniProfiler.Profiler.Current"/>
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Profiler.Stop(System.Boolean)">
+            <summary>
+            Ends the current profiling session, if one exists.
+            </summary>
+            <param name="discardResults">
+            When true, clears the <see cref="P:ServiceStack.MiniProfiler.Profiler.Current"/> for this HttpContext, allowing profiling to 
+            be prematurely stopped and discarded. Useful for when a specific route does not need to be profiled.
+            </param>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Profiler.StepStatic(System.String,ServiceStack.MiniProfiler.ProfileLevel)">
+            <summary>
+            Returns an <see cref="T:System.IDisposable"/> that will time the code between its creation and disposal. Use this method when you
+            do not wish to include the MvcMiniProfiler namespace for the <see cref="M:ServiceStack.MiniProfiler.MiniProfilerExtensions.Step(ServiceStack.MiniProfiler.Profiler,System.String,ServiceStack.MiniProfiler.ProfileLevel)"/> extension method.
+            </summary>
+            <param name="name">A descriptive name for the code that is encapsulated by the resulting IDisposable's lifetime.</param>
+            <param name="level">This step's visibility level; allows filtering when <see cref="M:ServiceStack.MiniProfiler.Profiler.Start(ServiceStack.MiniProfiler.ProfileLevel)"/> is called.</param>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Profiler.RenderIncludes(System.Nullable{ServiceStack.MiniProfiler.RenderPosition},System.Nullable{System.Boolean},System.Nullable{System.Boolean},System.Nullable{System.Int32},System.Boolean,System.Nullable{System.Boolean})">
+            <summary>
+            Returns the css and javascript includes needed to display the MiniProfiler results UI.
+            </summary>
+            <param name="position">Which side of the page the profiler popup button should be displayed on (defaults to left)</param>
+            <param name="showTrivial">Whether to show trivial timings by default (defaults to false)</param>
+            <param name="showTimeWithChildren">Whether to show time the time with children column by default (defaults to false)</param>
+            <param name="maxTracesToShow">The maximum number of trace popups to show before removing the oldest (defaults to 15)</param>
+            <param name="xhtml">xhtml rendering mode, ensure script tag is closed ... etc</param>
+            <param name="showControls">when true, shows buttons to minimize and clear MiniProfiler results</param>
+            <returns>Script and link elements normally; an empty string when there is no active profiling session.</returns>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Profiler.ToJson">
+            <summary>
+            Renders the current <see cref="T:ServiceStack.MiniProfiler.Profiler"/> to json.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Profiler.ToJson(ServiceStack.MiniProfiler.Profiler)">
+            <summary>
+            Renders the parameter <see cref="T:ServiceStack.MiniProfiler.Profiler"/> to json.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Profiler.FromJson(System.String)">
+            <summary>
+            Deserializes the json string parameter to a <see cref="T:ServiceStack.MiniProfiler.Profiler"/>.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Profiler.Clone">
+            <summary>
+            Create a DEEP clone of this object
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Profiler.GetInProgressCommands">
+            <summary>
+            Returns all currently open commands on this connection
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Profiler.GetSqlTimings">
+            <summary>
+            Returns all <see cref="T:ServiceStack.MiniProfiler.SqlTiming"/> results contained in all child <see cref="T:ServiceStack.MiniProfiler.Timing"/> steps.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.MiniProfiler.Profiler._sqlExecutionCounts">
+            <summary>
+            Contains any sql statements that are executed, along with how many times those statements are executed.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Profiler.AddSqlTiming(ServiceStack.MiniProfiler.SqlTiming)">
+            <summary>
+            Adds <paramref name="stats"/> to the current <see cref="T:ServiceStack.MiniProfiler.Timing"/>.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Profiler.GetExecutedCount(ServiceStack.MiniProfiler.Data.ExecuteType)">
+            <summary>
+            Returns the number of sql statements of <paramref name="type"/> that were executed in all <see cref="T:ServiceStack.MiniProfiler.Timing"/>s.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Id">
+            <summary>
+            Identifies this Profiler so it may be stored/cached.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Name">
+            <summary>
+            A display name for this profiling session.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Started">
+            <summary>
+            When this profiler was instantiated.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.MachineName">
+            <summary>
+            Where this profiler was run.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Level">
+            <summary>
+            Allows filtering of <see cref="T:ServiceStack.MiniProfiler.Timing"/> steps based on what <see cref="T:ServiceStack.MiniProfiler.ProfileLevel"/> 
+            the steps are created with.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Root">
+            <summary>
+            The first <see cref="T:ServiceStack.MiniProfiler.Timing"/> that is created and started when this profiler is instantiated.
+            All other <see cref="T:ServiceStack.MiniProfiler.Timing"/>s will be children of this one.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.User">
+            <summary>
+            A string identifying the user/client that is profiling this request.  Set <see cref="P:ServiceStack.MiniProfiler.Profiler.Settings.UserProvider"/>
+            with an <see cref="T:ServiceStack.MiniProfiler.IUserProvider"/>-implementing class to provide a custom value.
+            </summary>
+            <remarks>
+            If this is not set manually at some point, the <see cref="P:ServiceStack.MiniProfiler.Profiler.Settings.UserProvider"/> implementation will be used;
+            by default, this will be the current request's ip address.
+            </remarks>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.HasUserViewed">
+            <summary>
+            Returns true when this MiniProfiler has been viewed by the <see cref="P:ServiceStack.MiniProfiler.Profiler.User"/> that recorded it.
+            </summary>
+            <remarks>
+            Allows POSTs that result in a redirect to be profiled. <see cref="P:ServiceStack.MiniProfiler.Profiler.Settings.Storage"/> implementation
+            will keep a list of all profilers that haven't been fetched down.
+            </remarks>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Stopwatch">
+            <summary>
+            For unit testing, returns the timer.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.DurationMilliseconds">
+            <summary>
+            Milliseconds, to one decimal place, that this MiniProfiler ran.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.HasTrivialTimings">
+            <summary>
+            Returns true when <see cref="P:ServiceStack.MiniProfiler.Profiler.Root"/> or any of its <see cref="P:ServiceStack.MiniProfiler.Timing.Children"/> are <see cref="P:ServiceStack.MiniProfiler.Timing.IsTrivial"/>.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.HasAllTrivialTimings">
+            <summary>
+            Returns true when all child <see cref="T:ServiceStack.MiniProfiler.Timing"/>s are <see cref="P:ServiceStack.MiniProfiler.Timing.IsTrivial"/>.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.TrivialDurationThresholdMilliseconds">
+            <summary>
+            Any Timing step with a duration less than or equal to this will be hidden by default in the UI; defaults to 2.0 ms.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.ElapsedTicks">
+            <summary>
+            Ticks since this MiniProfiler was started.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Head">
+            <summary>
+            Points to the currently executing Timing. 
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Current">
+            <summary>
+            Gets the currently running MiniProfiler for the current HttpContext; null if no MiniProfiler was <see cref="M:ServiceStack.MiniProfiler.Profiler.Start(ServiceStack.MiniProfiler.ProfileLevel)"/>ed.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.SqlProfiler">
+            <summary>
+            Contains information about queries executed during this profiling session.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.DurationMillisecondsInSql">
+            <summary>
+            Milliseconds, to one decimal place, that this MiniProfiler was executing sql.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.HasSqlTimings">
+            <summary>
+            Returns true when we have profiled queries.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.HasDuplicateSqlTimings">
+            <summary>
+            Returns true when any child Timings have duplicate queries.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.ExecutedReaders">
+            <summary>
+            How many sql data readers were executed in all <see cref="T:ServiceStack.MiniProfiler.Timing"/> steps.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.ExecutedScalars">
+            <summary>
+            How many sql scalar queries were executed in all <see cref="T:ServiceStack.MiniProfiler.Timing"/> steps.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.ExecutedNonQueries">
+            <summary>
+            How many sql non-query statements were executed in all <see cref="T:ServiceStack.MiniProfiler.Timing"/> steps.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.Profiler.Settings">
+            <summary>
+            Various configuration properties.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Profiler.Settings.ExcludeAssembly(System.String)">
+            <summary>
+            Excludes the specified assembly from the stack trace output.
+            </summary>
+            <param name="assemblyName">The short name of the assembly. AssemblyName.Name</param>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Profiler.Settings.ExcludeType(System.String)">
+            <summary>
+            Excludes the specified type from the stack trace output.
+            </summary>
+            <param name="typeToExclude">The System.Type name to exclude</param>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Profiler.Settings.ExcludeMethod(System.String)">
+            <summary>
+            Excludes the specified method name from the stack trace output.
+            </summary>
+            <param name="methodName">The name of the method</param>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Profiler.Settings.EnsureStorageStrategy">
+            <summary>
+            Make sure we can at least store profiler results to the http runtime cache.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Settings.AssembliesToExclude">
+            <summary>
+            Assemblies to exclude from the stack trace report.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Settings.TypesToExclude">
+            <summary>
+            Types to exclude from the stack trace report.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Settings.MethodsToExclude">
+            <summary>
+            Methods to exclude from the stack trace report.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Settings.StackMaxLength">
+            <summary>
+            The max length of the stack string to report back; defaults to 120 chars.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Settings.TrivialDurationThresholdMilliseconds">
+            <summary>
+            Any Timing step with a duration less than or equal to this will be hidden by default in the UI; defaults to 2.0 ms.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Settings.PopupShowTimeWithChildren">
+            <summary>
+            Dictates if the "time with children" column is displayed by default, defaults to false.
+            For a per-page override you can use .RenderIncludes(showTimeWithChildren: true/false)
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Settings.PopupShowTrivial">
+            <summary>
+            Dictates if trivial timings are displayed by default, defaults to false.
+            For a per-page override you can use .RenderIncludes(showTrivial: true/false)
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Settings.PopupMaxTracesToShow">
+            <summary>
+            Determines how many traces to show before removing the oldest; defaults to 15.
+            For a per-page override you can use .RenderIncludes(maxTracesToShow: 10)
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Settings.PopupRenderPosition">
+            <summary>
+            Dictates on which side of the page the profiler popup button is displayed; defaults to left.
+            For a per-page override you can use .RenderIncludes(position: RenderPosition.Left/Right)
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Settings.ShowControls">
+            <summary>
+            Determines if min-max, clear, etc are rendered; defaults to false.
+            For a per-page override you can use .RenderIncludes(showControls: true/false)
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Settings.ExcludeStackTraceSnippetFromSqlTimings">
+            <summary>
+            By default, SqlTimings will grab a stack trace to help locate where queries are being executed.
+            When this setting is true, no stack trace will be collected, possibly improving profiler performance.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Settings.IgnoredPaths">
+            <summary>
+            When <see cref="M:ServiceStack.MiniProfiler.Profiler.Start(ServiceStack.MiniProfiler.ProfileLevel)"/> is called, if the current request url contains any items in this property,
+            no profiler will be instantiated and no results will be displayed.
+            Default value is { "/ssr-", "/content/", "/scripts/", "/favicon.ico" }.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Settings.RouteBasePath">
+            <summary>
+            The path under which ALL routes are registered in, defaults to the application root.  For example, "~/myDirectory/" would yield
+            "/myDirectory/ssr-includes.js" rather than just "/mini-profiler-includes.js"
+            Any setting here should be in APP RELATIVE FORM, e.g. "~/myDirectory/"
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Settings.Storage">
+            <summary>
+            Understands how to save and load MiniProfilers. Used for caching between when
+            a profiling session ends and results can be fetched to the client, and for showing shared, full-page results.
+            </summary>
+            <remarks>
+            The normal profiling session life-cycle is as follows:
+            1) request begins
+            2) profiler is started
+            3) normal page/controller/request execution
+            4) profiler is stopped
+            5) profiler is cached with <see cref="P:ServiceStack.MiniProfiler.Profiler.Settings.Storage"/>'s implementation of <see cref="M:ServiceStack.MiniProfiler.Storage.IStorage.Save(ServiceStack.MiniProfiler.Profiler)"/>
+            6) request ends
+            7) page is displayed and profiling results are ajax-fetched down, pulling cached results from 
+               <see cref="P:ServiceStack.MiniProfiler.Profiler.Settings.Storage"/>'s implementation of <see cref="M:ServiceStack.MiniProfiler.Storage.IStorage.Load(System.Guid)"/>
+            </remarks>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Settings.SqlFormatter">
+            <summary>
+            The formatter applied to the SQL being rendered (used only for UI)
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Settings.UserProvider">
+            <summary>
+            Provides user identification for a given profiling request.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Settings.Version">
+            <summary>
+            Assembly version of this dank MiniProfiler.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Settings.ProfilerProvider">
+            <summary>
+            The provider used to provider the current instance of a provider
+            This is also 
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Settings.Results_Authorize">
+            <summary>
+            A function that determines who can access the MiniProfiler results url.  It should return true when
+            the request client has access, false for a 401 to be returned. HttpRequest parameter is the current request and
+            MiniProfiler parameter is the results that were profiled.
+            </summary>
+            <remarks>
+            Both the HttpRequest and MiniProfiler parameters that will be passed into this function should never be null.
+            </remarks>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Profiler.Settings.StopwatchProvider">
+            <summary>
+            Allows switching out stopwatches for unit testing.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.ProfileLevel">
+            <summary>
+            Categorizes individual <see cref="T:ServiceStack.MiniProfiler.Timing"/> steps to allow filtering.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.MiniProfiler.ProfileLevel.Info">
+            <summary>
+            Default level given to Timings.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.MiniProfiler.ProfileLevel.Verbose">
+            <summary>
+            Useful when profiling many items in a loop, but you don't wish to always see this detail.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.RenderPosition">
+            <summary>
+            Dictates on which side of the page the profiler popup button is displayed; defaults to left.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.MiniProfiler.RenderPosition.Left">
+            <summary>
+            Profiler popup button is displayed on the left.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.MiniProfiler.RenderPosition.Right">
+            <summary>
+            Profiler popup button is displayed on the right.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.MiniProfilerExtensions">
+            <summary>
+            Contains helper methods that ease working with null <see cref="T:ServiceStack.MiniProfiler.Profiler"/>s.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.MiniProfilerExtensions.Inline``1(ServiceStack.MiniProfiler.Profiler,System.Func{``0},System.String)">
+            <summary>
+            Wraps <paramref name="selector"/> in a <see cref="M:ServiceStack.MiniProfiler.MiniProfilerExtensions.Step(ServiceStack.MiniProfiler.Profiler,System.String,ServiceStack.MiniProfiler.ProfileLevel)"/> call and executes it, returning its result.
+            </summary>
+            <param name="profiler">The current profiling session or null.</param>
+            <param name="selector">Method to execute and profile.</param>
+            <param name="name">The <see cref="T:ServiceStack.MiniProfiler.Timing"/> step name used to label the profiler results.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.MiniProfilerExtensions.Step(ServiceStack.MiniProfiler.Profiler,System.String,ServiceStack.MiniProfiler.ProfileLevel)">
+            <summary>
+            Returns an <see cref="T:System.IDisposable"/> that will time the code between its creation and disposal.
+            </summary>
+            <param name="profiler">The current profiling session or null.</param>
+            <param name="name">A descriptive name for the code that is encapsulated by the resulting IDisposable's lifetime.</param>
+            <param name="level">This step's visibility level; allows filtering when <see cref="M:ServiceStack.MiniProfiler.Profiler.Start(ServiceStack.MiniProfiler.ProfileLevel)"/> is called.</param>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.MiniProfilerExtensions.AddProfilerResults(ServiceStack.MiniProfiler.Profiler,ServiceStack.MiniProfiler.Profiler)">
+            <summary>
+            Adds <paramref name="externalProfiler"/>'s <see cref="T:ServiceStack.MiniProfiler.Timing"/> hierarchy to this profiler's current Timing step,
+            allowing other threads, remote calls, etc. to be profiled and joined into this profiling session.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.MiniProfilerExtensions.Render(ServiceStack.MiniProfiler.Profiler)">
+            <summary>
+            Returns an html-encoded string with a text-representation of <paramref name="profiler"/>; returns "" when profiler is null.
+            </summary>
+            <param name="profiler">The current profiling session or null.</param>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.SqlFormatters.InlineFormatter">
+            <summary>
+            Formats any SQL query with inline parameters, optionally including the value type
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.SqlFormatters.ISqlFormatter">
+            <summary>
+            Takes a SqlTiming and returns a formatted SQL string, for parameter replacement, etc.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.SqlFormatters.ISqlFormatter.FormatSql(ServiceStack.MiniProfiler.SqlTiming)">
+            <summary>
+            Return SQL the way you want it to look on the in the trace. Usually used to format parameters 
+            </summary>
+            <param name="timing"></param>
+            <returns>Formatted SQL</returns>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.SqlFormatters.InlineFormatter.#ctor(System.Boolean)">
+            <summary>
+            Creates a new Inline SQL Formatter, optionally including the parameter type info in comments beside the replaced value
+            </summary>
+            <param name="includeTypeInfo">whether to include a comment after the value, indicating the type, e.g. /* @myParam DbType.Int32 */</param>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.SqlFormatters.InlineFormatter.FormatSql(ServiceStack.MiniProfiler.SqlTiming)">
+            <summary>
+            Formats the SQL in a generic frieldly format, including the parameter type information in a comment if it was specified in the InlineFormatter constructor
+            </summary>
+            <param name="timing">The SqlTiming to format</param>
+            <returns>A formatted SQL string</returns>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.SqlFormatters.InlineFormatter.GetParameterValue(ServiceStack.MiniProfiler.SqlTimingParameter)">
+            <summary>
+            Returns a string representation of the parameter's value, including the type
+            </summary>
+            <param name="p">The parameter to get a value for</param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.SqlFormatters.OracleFormatter">
+            <summary>
+            NOT IMPLEMENTED - will format statements with paramters in an Oracle friendly way
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.SqlFormatters.OracleFormatter.FormatSql(ServiceStack.MiniProfiler.SqlTiming)">
+            <summary>
+            Does NOTHING, implement me!
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.SqlFormatters.SqlServerFormatter">
+            <summary>
+            Formats SQL server queries with a DECLARE up top for parameter values
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.SqlFormatters.SqlServerFormatter.FormatSql(ServiceStack.MiniProfiler.SqlTiming)">
+            <summary>
+            Formats the SQL in a SQL-Server friendly way, with DECLARE statements for the parameters up top.
+            </summary>
+            <param name="timing">The SqlTiming to format</param>
+            <returns>A formatted SQL string</returns>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.SqlProfiler">
+            <summary>
+            Contains helper code to time sql statements.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.SqlProfiler.#ctor(ServiceStack.MiniProfiler.Profiler)">
+            <summary>
+            Returns a new SqlProfiler to be used in the 'profiler' session.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.SqlProfiler.ExecuteStartImpl(System.Data.Common.DbCommand,ServiceStack.MiniProfiler.Data.ExecuteType)">
+            <summary>
+            Tracks when 'command' is started.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.SqlProfiler.GetInProgressCommands">
+            <summary>
+            Returns all currently open commands on this connection
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.SqlProfiler.ExecuteFinishImpl(System.Data.Common.DbCommand,ServiceStack.MiniProfiler.Data.ExecuteType,System.Data.Common.DbDataReader)">
+            <summary>
+            Finishes profiling for 'command', recording durations.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.SqlProfiler.ReaderFinishedImpl(System.Data.Common.DbDataReader)">
+            <summary>
+            Called when 'reader' finishes its iterations and is closed.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.SqlProfiler.Profiler">
+            <summary>
+            The profiling session this SqlProfiler is part of.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.SqlProfilerExtensions">
+            <summary>
+            Helper methods that allow operation on SqlProfilers, regardless of their instantiation.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.SqlProfilerExtensions.ExecuteStart(ServiceStack.MiniProfiler.SqlProfiler,System.Data.Common.DbCommand,ServiceStack.MiniProfiler.Data.ExecuteType)">
+            <summary>
+            Tracks when 'command' is started.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.SqlProfilerExtensions.ExecuteFinish(ServiceStack.MiniProfiler.SqlProfiler,System.Data.Common.DbCommand,ServiceStack.MiniProfiler.Data.ExecuteType,System.Data.Common.DbDataReader)">
+            <summary>
+            Finishes profiling for 'command', recording durations.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.SqlProfilerExtensions.ReaderFinish(ServiceStack.MiniProfiler.SqlProfiler,System.Data.Common.DbDataReader)">
+            <summary>
+            Called when 'reader' finishes its iterations and is closed.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.SqlTiming">
+            <summary>
+            Profiles a single sql execution.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.SqlTiming.#ctor(System.Data.Common.DbCommand,ServiceStack.MiniProfiler.Data.ExecuteType,ServiceStack.MiniProfiler.Profiler)">
+            <summary>
+            Creates a new SqlTiming to profile 'command'.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.SqlTiming.#ctor">
+            <summary>
+            Obsolete - used for serialization.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.SqlTiming.ToString">
+            <summary>
+            Returns a snippet of the sql command and the duration.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.SqlTiming.Equals(System.Object)">
+            <summary>
+            Returns true if Ids match.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.SqlTiming.GetHashCode">
+            <summary>
+            Returns hashcode of Id.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.SqlTiming.ExecutionComplete(System.Boolean)">
+            <summary>
+            Called when command execution is finished to determine this SqlTiming's duration.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.SqlTiming.ReaderFetchComplete">
+            <summary>
+            Called when database reader is closed, ending profiling for <see cref="F:ServiceStack.MiniProfiler.Data.ExecuteType.Reader"/> SqlTimings.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.SqlTiming.AddSpacesToParameters(System.String)">
+            <summary>
+            To help with display, put some space around sammiched commas
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.SqlTiming.Id">
+            <summary>
+            Unique identifier for this SqlTiming.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.SqlTiming.ExecuteType">
+            <summary>
+            Category of sql statement executed.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.SqlTiming.CommandString">
+            <summary>
+            The sql that was executed.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.SqlTiming.FormattedCommandString">
+            <summary>
+            The command string with special formatting applied based on MiniProfiler.Settings.SqlFormatter
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.SqlTiming.StackTraceSnippet">
+            <summary>
+            Roughly where in the calling code that this sql was executed.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.SqlTiming.StartMilliseconds">
+            <summary>
+            Offset from main MiniProfiler start that this sql began.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.SqlTiming.DurationMilliseconds">
+            <summary>
+            How long this sql statement took to execute.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.SqlTiming.FirstFetchDurationMilliseconds">
+            <summary>
+            When executing readers, how long it took to come back initially from the database, 
+            before all records are fetched and reader is closed.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.SqlTiming.Parameters">
+            <summary>
+            Stores any parameter names and values used by the profiled DbCommand.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.SqlTiming.ParentTimingId">
+            <summary>
+            Id of the Timing this statement was executed in.
+            </summary>
+            <remarks>
+            Needed for database deserialization.
+            </remarks>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.SqlTiming.ParentTiming">
+            <summary>
+            The Timing step that this sql execution occurred in.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.SqlTiming.IsDuplicate">
+            <summary>
+            True when other identical sql statements have been executed during this MiniProfiler session.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.SqlTimingParameter">
+            <summary>
+            Information about a DbParameter used in the sql statement profiled by SqlTiming.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.SqlTimingParameter.Equals(System.Object)">
+            <summary>
+            Returns true if this has the same parent <see cref="P:ServiceStack.MiniProfiler.SqlTiming.Id"/>, <see cref="P:ServiceStack.MiniProfiler.SqlTimingParameter.Name"/> and <see cref="P:ServiceStack.MiniProfiler.SqlTimingParameter.Value"/> as <paramref name="obj"/>.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.SqlTimingParameter.GetHashCode">
+            <summary>
+            Returns the XOR of certain properties.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.SqlTimingParameter.ParentSqlTimingId">
+            <summary>
+            Which SqlTiming this Parameter was executed with.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.SqlTimingParameter.Name">
+            <summary>
+            Parameter name, e.g. "@routeName"
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.SqlTimingParameter.Value">
+            <summary>
+            The value submitted to the database.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.SqlTimingParameter.DbType">
+            <summary>
+            System.Data.DbType, e.g. "String", "Bit"
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.SqlTimingParameter.Size">
+            <summary>
+            How large the type is, e.g. for string, size could be 4000
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.Storage.DatabaseStorageBase">
+            <summary>
+            Understands how to save MiniProfiler results to a MSSQL database, allowing more permanent storage and
+            querying of slow results.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.Storage.IStorage">
+            <summary>
+            Provides saving and loading <see cref="T:ServiceStack.MiniProfiler.Profiler"/>s to a storage medium.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Storage.IStorage.Save(ServiceStack.MiniProfiler.Profiler)">
+            <summary>
+            Stores <paramref name="profiler"/> under its <see cref="P:ServiceStack.MiniProfiler.Profiler.Id"/>.
+            </summary>
+            <param name="profiler">The results of a profiling session.</param>
+            <remarks>
+            Should also ensure the profiler is stored as being unviewed by its profiling <see cref="P:ServiceStack.MiniProfiler.Profiler.User"/>.
+            </remarks>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Storage.IStorage.Load(System.Guid)">
+            <summary>
+            Returns a <see cref="T:ServiceStack.MiniProfiler.Profiler"/> from storage based on <paramref name="id"/>, which should map to <see cref="P:ServiceStack.MiniProfiler.Profiler.Id"/>.
+            </summary>
+            <remarks>
+            Should also update that the resulting profiler has been marked as viewed by its profiling <see cref="P:ServiceStack.MiniProfiler.Profiler.User"/>.
+            </remarks>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Storage.IStorage.GetUnviewedIds(System.String)">
+            <summary>
+            Returns a list of <see cref="P:ServiceStack.MiniProfiler.Profiler.Id"/>s that haven't been seen by <paramref name="user"/>.
+            </summary>
+            <param name="user">User identified by the current <see cref="P:ServiceStack.MiniProfiler.Profiler.Settings.UserProvider"/>.</param>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Storage.DatabaseStorageBase.#ctor(System.String)">
+            <summary>
+            Returns a new SqlServerDatabaseStorage object that will insert into the database identified by connectionString.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Storage.DatabaseStorageBase.Save(ServiceStack.MiniProfiler.Profiler)">
+            <summary>
+            Saves 'profiler' to a database under its <see cref="P:ServiceStack.MiniProfiler.Profiler.Id"/>.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Storage.DatabaseStorageBase.Load(System.Guid)">
+            <summary>
+            Returns the MiniProfiler identified by 'id' from the database or null when no MiniProfiler exists under that 'id'.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Storage.DatabaseStorageBase.GetUnviewedIds(System.String)">
+            <summary>
+            Returns a list of <see cref="P:ServiceStack.MiniProfiler.Profiler.Id"/>s that haven't been seen by <paramref name="user"/>.
+            </summary>
+            <param name="user">User identified by the current <see cref="P:ServiceStack.MiniProfiler.Profiler.Settings.UserProvider"/>.</param>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Storage.DatabaseStorageBase.GetConnection">
+            <summary>
+            Returns a DbConnection for your specific provider.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Storage.DatabaseStorageBase.GetOpenConnection">
+            <summary>
+            Returns a DbConnection already opened for execution.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Storage.DatabaseStorageBase.MapTimings(ServiceStack.MiniProfiler.Profiler,System.Collections.Generic.List{ServiceStack.MiniProfiler.Timing},System.Collections.Generic.List{ServiceStack.MiniProfiler.SqlTiming},System.Collections.Generic.List{ServiceStack.MiniProfiler.SqlTimingParameter})">
+            <summary>
+            Giving freshly selected collections, this method puts them in the correct
+            hierarchy under the 'result' MiniProfiler.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Storage.DatabaseStorageBase.ConnectionString">
+            <summary>
+            How we connect to the database used to save/load MiniProfiler results.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.Storage.HttpRuntimeCacheStorage">
+            <summary>
+            Understands how to store a <see cref="T:ServiceStack.MiniProfiler.Profiler"/> to the <see cref="P:System.Web.HttpRuntime.Cache"/> with absolute expiration.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.MiniProfiler.Storage.HttpRuntimeCacheStorage.CacheKeyPrefix">
+            <summary>
+            The string that prefixes all keys that MiniProfilers are saved under, e.g.
+            "mini-profiler-ecfb0050-7ce8-4bf1-bf82-2cb38e90e31e".
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Storage.HttpRuntimeCacheStorage.#ctor(System.TimeSpan)">
+            <summary>
+            Returns a new HttpRuntimeCacheStorage class that will cache MiniProfilers for the specified duration.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Storage.HttpRuntimeCacheStorage.Save(ServiceStack.MiniProfiler.Profiler)">
+            <summary>
+            Saves <paramref name="profiler"/> to the HttpRuntime.Cache under a key concated with <see cref="F:ServiceStack.MiniProfiler.Storage.HttpRuntimeCacheStorage.CacheKeyPrefix"/>
+            and the parameter's <see cref="P:ServiceStack.MiniProfiler.Profiler.Id"/>.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Storage.HttpRuntimeCacheStorage.Load(System.Guid)">
+            <summary>
+            Returns the saved <see cref="T:ServiceStack.MiniProfiler.Profiler"/> identified by <paramref name="id"/>. Also marks the resulting
+            profiler <see cref="P:ServiceStack.MiniProfiler.Profiler.HasUserViewed"/> to true.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Storage.HttpRuntimeCacheStorage.GetUnviewedIds(System.String)">
+            <summary>
+            Returns a list of <see cref="P:ServiceStack.MiniProfiler.Profiler.Id"/>s that haven't been seen by <paramref name="user"/>.
+            </summary>
+            <param name="user">User identified by the current <see cref="P:ServiceStack.MiniProfiler.Profiler.Settings.UserProvider"/>.</param>
+        </member>
+        <member name="F:ServiceStack.MiniProfiler.Storage.HttpRuntimeCacheStorage.AddPerUserUnviewedIdsLock">
+            <summary>
+            Syncs access to runtime cache when adding a new list of ids for a user.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Storage.HttpRuntimeCacheStorage.CacheDuration">
+            <summary>
+            How long to cache each <see cref="T:ServiceStack.MiniProfiler.Profiler"/> for (i.e. the absolute expiration parameter of 
+            <see cref="M:System.Web.Caching.Cache.Insert(System.String,System.Object,System.Web.Caching.CacheDependency,System.DateTime,System.TimeSpan,System.Web.Caching.CacheItemUpdateCallback)"/>)
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.Timing">
+            <summary>
+            An individual profiling step that can contain child steps.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Timing.RebuildParentTimings">
+            <summary>
+            Rebuilds all the parent timings on deserialization calls
+            </summary>
+        </member>
+        <member name="F:ServiceStack.MiniProfiler.Timing._startTicks">
+            <summary>
+            Offset from parent MiniProfiler's creation that this Timing was created.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Timing.#ctor(ServiceStack.MiniProfiler.Profiler,ServiceStack.MiniProfiler.Timing,System.String)">
+            <summary>
+            Creates a new Timing named 'name' in the 'profiler's session, with 'parent' as this Timing's immediate ancestor.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Timing.#ctor">
+            <summary>
+            Obsolete - used for serialization.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Timing.ToString">
+            <summary>
+            Returns this Timing's Name.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Timing.Equals(System.Object)">
+            <summary>
+            Returns true if Ids match.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Timing.GetHashCode">
+            <summary>
+            Returns hashcode of Id.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Timing.AddKeyValue(System.String,System.String)">
+            <summary>
+            Adds arbitrary string 'value' under 'key', allowing custom properties to be stored in this Timing step.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Timing.Stop">
+            <summary>
+            Completes this Timing's duration and sets the MiniProfiler's Head up one level.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Timing.AddChild(ServiceStack.MiniProfiler.Timing)">
+            <summary>
+            Add the parameter 'timing' to this Timing's Children collection.
+            </summary>
+            <remarks>
+            Used outside this assembly for custom deserialization when creating an <see cref="T:ServiceStack.MiniProfiler.Storage.IStorage"/> implementation.
+            </remarks>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Timing.AddSqlTiming(ServiceStack.MiniProfiler.SqlTiming)">
+            <summary>
+            Adds the parameter 'sqlTiming' to this Timing's SqlTimings collection.
+            </summary>
+            <param name="sqlTiming">A sql statement profiling that was executed in this Timing step.</param>
+            <remarks>
+            Used outside this assembly for custom deserialization when creating an <see cref="T:ServiceStack.MiniProfiler.Storage.IStorage"/> implementation.
+            </remarks>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.Timing.GetExecutedCount(ServiceStack.MiniProfiler.Data.ExecuteType)">
+            <summary>
+            Returns the number of sql statements of <paramref name="type"/> that were executed in this <see cref="T:ServiceStack.MiniProfiler.Timing"/>.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Timing.Id">
+            <summary>
+            Unique identifer for this timing; set during construction.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Timing.Name">
+            <summary>
+            Text displayed when this Timing is rendered.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Timing.DurationMilliseconds">
+            <summary>
+            How long this Timing step took in ms; includes any <see cref="P:ServiceStack.MiniProfiler.Timing.Children"/> Timings' durations.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Timing.StartMilliseconds">
+            <summary>
+            The offset from the start of profiling.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Timing.Children">
+            <summary>
+            All sub-steps that occur within this Timing step. Add new children through <see cref="M:ServiceStack.MiniProfiler.Timing.AddChild(ServiceStack.MiniProfiler.Timing)"/>
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Timing.KeyValues">
+            <summary>
+            Stores arbitrary key/value strings on this Timing step. Add new tuples through <see cref="M:ServiceStack.MiniProfiler.Timing.AddKeyValue(System.String,System.String)"/>.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Timing.SqlTimings">
+            <summary>
+            Any queries that occurred during this Timing step.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Timing.ParentTimingId">
+            <summary>
+            Needed for database deserialization and JSON serialization.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Timing.ParentTiming">
+            <summary>
+            Which Timing this Timing is under - the duration that this step takes will be added to its parent's duration.
+            </summary>
+            <remarks>This will be null for the root (initial) Timing.</remarks>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Timing.DurationWithoutChildrenMilliseconds">
+            <summary>
+            Gets the elapsed milliseconds in this step without any children's durations.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Timing.SqlTimingsDurationMilliseconds">
+            <summary>
+            Gets the aggregate elapsed milliseconds of all SqlTimings executed in this Timing, excluding Children Timings.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Timing.IsTrivial">
+            <summary>
+            Returns true when this <see cref="P:ServiceStack.MiniProfiler.Timing.DurationWithoutChildrenMilliseconds"/> is less than the configured
+            <see cref="P:ServiceStack.MiniProfiler.Profiler.Settings.TrivialDurationThresholdMilliseconds"/>, by default 2.0 ms.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Timing.Profiler">
+            <summary>
+            Reference to the containing profiler, allowing this Timing to affect the Head and get Stopwatch readings.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Timing.HasChildren">
+            <summary>
+            Returns true when this Timing has inner Timing steps.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Timing.HasSqlTimings">
+            <summary>
+            Returns true if this Timing step collected sql execution timings.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Timing.HasDuplicateSqlTimings">
+            <summary>
+            Returns true if any <see cref="T:ServiceStack.MiniProfiler.SqlTiming"/>s executed in this step are detected as duplicate statements.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Timing.IsRoot">
+            <summary>
+            Returns true when this Timing is the first one created in a MiniProfiler session.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Timing.Depth">
+            <summary>
+            How far away this Timing is from the Profiler's Root.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Timing.ExecutedReaders">
+            <summary>
+            How many sql data readers were executed in this Timing step. Does not include queries in any child Timings.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Timing.ExecutedScalars">
+            <summary>
+            How many sql scalar queries were executed in this Timing step. Does not include queries in any child Timings.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.Timing.ExecutedNonQueries">
+            <summary>
+            How many sql non-query statements were executed in this Timing step. Does not include queries in any child Timings.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.UI.MiniProfilerHandler">
+            <summary>
+            Understands how to route and respond to MiniProfiler UI urls.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.UI.MiniProfilerHandler.ProcessRequest(System.Web.HttpContext)">
+            <summary>
+            Returns either includes' css/javascript or results' html.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.UI.MiniProfilerHandler.Includes(ServiceStack.ServiceHost.IHttpRequest,ServiceStack.ServiceHost.IHttpResponse,System.String)">
+            <summary>
+            Handles rendering static content files.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.UI.MiniProfilerHandler.Results(ServiceStack.ServiceHost.IHttpRequest,ServiceStack.ServiceHost.IHttpResponse)">
+            <summary>
+            Handles rendering a previous MiniProfiler session, identified by its "?id=GUID" on the query.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.MiniProfiler.UI.MiniProfilerHandler._ResourceCache">
+            <summary>
+            Embedded resource contents keyed by filename.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.UI.MiniProfilerHandler.NotFound(ServiceStack.ServiceHost.IHttpResponse,System.String,System.String)">
+            <summary>
+            Helper method that sets a proper 404 response code.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.UI.MiniProfilerHandler.IsReusable">
+            <summary>
+            Try to keep everything static so we can easily be reused.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.WebRequestProfilerProvider">
+            <summary>
+            HttpContext based profiler provider.  This is the default provider to use in a web context.
+            The current profiler is associated with a HttpContext.Current ensuring that profilers are 
+            specific to a individual HttpRequest.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.WebRequestProfilerProvider.#ctor">
+            <summary>
+            Public constructor.  This also registers any UI routes needed to display results
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.WebRequestProfilerProvider.Start(ServiceStack.MiniProfiler.ProfileLevel)">
+            <summary>
+            Starts a new MiniProfiler and associates it with the current <see cref="P:System.Web.HttpContext.Current"/>.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.WebRequestProfilerProvider.Stop(System.Boolean)">
+            <summary>
+            Ends the current profiling session, if one exists.
+            </summary>
+            <param name="discardResults">
+            When true, clears the <see cref="P:ServiceStack.MiniProfiler.Profiler.Current"/> for this HttpContext, allowing profiling to 
+            be prematurely stopped and discarded. Useful for when a specific route does not need to be profiled.
+            </param>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.WebRequestProfilerProvider.EnsureName(ServiceStack.MiniProfiler.Profiler,System.Web.HttpRequest)">
+            <summary>
+            Makes sure 'profiler' has a Name, pulling it from route data or url.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.MiniProfiler.WebRequestProfilerProvider.GetCurrentProfiler">
+            <summary>
+            Returns the current profiler
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.WebRequestProfilerProvider.Current">
+            <summary>
+            Gets the currently running MiniProfiler for the current HttpContext; null if no MiniProfiler was <see cref="M:ServiceStack.MiniProfiler.WebRequestProfilerProvider.Start(ServiceStack.MiniProfiler.ProfileLevel)"/>ed.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.MiniProfiler.WebRequestProfilerProvider.Settings">
+            <summary>
+            WebRequestProfilerProvider specific configurations
+            </summary>
+        </member>
+        <member name="P:ServiceStack.MiniProfiler.WebRequestProfilerProvider.Settings.UserProvider">
+            <summary>
+            Provides user identification for a given profiling request.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.ContainerResolveCache.CreateInstance(System.Type)">
+            <summary>
+            Creates instance using straight Resolve approach.
+            This will throw an exception if resolution fails
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.ContainerResolveCache.CreateInstance(System.Type,System.Boolean)">
+            <summary>
+            Creates instance using the TryResolve approach if tryResolve = true.
+            Otherwise uses Resolve approach, which will throw an exception if resolution fails
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.Cookies.AddPermanentCookie(System.String,System.String,System.Nullable{System.Boolean})">
+            <summary>
+            Sets a persistent cookie which never expires
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.Cookies.AddSessionCookie(System.String,System.String,System.Nullable{System.Boolean})">
+            <summary>
+            Sets a session cookie which expires after the browser session closes
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.Cookies.DeleteCookie(System.String)">
+            <summary>
+            Deletes a specified cookie by setting its value to empty and expiration to -1 days
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.Cookies.AddCookie(System.Net.Cookie)">
+            <summary>
+            Sets a persistent cookie which expires after the given time
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.DefaultRequestAttribute">
+            <summary>
+            Lets you Register new Services and the optional restPaths will be registered against 
+            this default Request Type
+            </summary>
+        </member>
+        <member name="F:ServiceStack.ServiceHost.DtoUtils.ResponseStatusPropertyName">
+            <summary>
+            Naming convention for the ResponseStatus property name on the response DTO
+            </summary>
+        </member>
+        <member name="F:ServiceStack.ServiceHost.DtoUtils.UrnServiceErrorType">
+            <summary>
+            Service error logs are kept in 'urn:ServiceErrors:{ServiceName}'
+            </summary>
+        </member>
+        <member name="F:ServiceStack.ServiceHost.DtoUtils.CombinedServiceLogId">
+            <summary>
+            Combined service error logs are maintained in 'urn:ServiceErrors:All'
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.DtoUtils.CreateResponseDto(System.Object,ServiceStack.ServiceInterface.ServiceModel.ResponseStatus)">
+            <summary>
+            Create an instance of the service response dto type and inject it with the supplied responseStatus
+            </summary>
+            <param name="request"></param>
+            <param name="responseStatus"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.DtoUtils.HandleException(ServiceStack.ServiceHost.IResolver,System.Object,System.Exception)">
+            <summary>
+            
+            </summary>
+            <param name="iocResolver"></param>
+            <param name="request"></param>
+            <param name="ex"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.DtoUtils.GetRequestErrorBody(System.Object)">
+            <summary>
+            Override to provide additional/less context about the Service Exception. 
+            By default the request is serialized and appended to the ResponseStatus StackTrace.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.VirtualPath.InMemoryVirtualPathProvider">
+            <summary>
+            In Memory repository for files. Useful for testing.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.WebHost.Endpoints.ActionContext">
+            <summary>
+            Context to capture IService action
+            </summary>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.AppHostExtensions.GetContainer(ServiceStack.WebHost.Endpoints.IAppHost)">
+            <summary>
+            Get an IAppHost container. 
+            Note: Registering dependencies should only be done during setup/configuration 
+            stage and remain immutable there after for thread-safety.
+            </summary>
+            <param name="appHost"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Markdown.MarkdownViewBase.GetHtmlHelper">
+            <summary>
+            Ensure the same instance is used for subclasses
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Markdown.MarkdownViewBase.InitHelpers">
+            <summary>
+            Called before page is executed
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Markdown.MarkdownViewBase.OnLoad">
+            <summary>
+            Called after page is executed but before it's merged with the 
+            website template if any.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Markdown.MarkdownViewBase.Raw(System.String)">
+            <summary>
+            Don't HTML encode safe output
+            </summary>
+            <param name="content"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Markdown.MarkdownViewBase.Partial(System.String,System.Object)">
+            <summary>
+            Return the output of a different view with the specified name 
+            using the supplied model
+            </summary>
+            <param name="viewName"></param>
+            <param name="model"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Markdown.MarkdownViewBase.Get``1">
+            <summary>
+            Resolve registered Assemblies
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.Markdown.MarkdownViewBase.ViewEngine">
+            <summary>
+            Reference to MarkdownViewEngine
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Markdown.MarkdownViewBase.AppHost">
+            <summary>
+            The AppHost so you can access configuration and resolve dependencies, etc.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Markdown.MarkdownViewBase.MarkdownPage">
+            <summary>
+            This precompiled Markdown page with Metadata
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Markdown.MarkdownViewBase.Html">
+            <summary>
+            ASP.NET MVC's HtmlHelper
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Markdown.MarkdownViewBase.ScopeArgs">
+            <summary>
+            All variables passed to and created by your page. 
+            The Response DTO is stored and accessible via the 'Model' variable.
+             
+            All variables and outputs created are stored in ScopeArgs which is what's available
+            to your website template. The Generated page is stored in the 'Body' variable.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Markdown.MarkdownViewBase.RenderHtml">
+            <summary>
+            Whether HTML or Markdown output is requested
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Markdown.MarkdownViewBase.Model">
+            <summary>
+            The Response DTO
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Properties.Resources">
+            <summary>
+              A strongly-typed resource class, for looking up localized strings, etc.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Properties.Resources.ResourceManager">
+            <summary>
+              Returns the cached ResourceManager instance used by this class.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Properties.Resources.Culture">
+            <summary>
+              Overrides the current thread's CurrentUICulture property for all
+              resource lookups using this strongly typed resource class.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Properties.Resources.Registration_CantRegisterContainer">
+            <summary>
+              Looks up a localized string similar to Container service is built-in and read-only..
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Properties.Resources.Registration_IncompatibleAsType">
+            <summary>
+              Looks up a localized string similar to Service type {0} does not inherit or implement {1}..
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Properties.Resources.ResolutionException_MissingNamedType">
+            <summary>
+              Looks up a localized string similar to Required dependency of type {0} named &apos;{1}&apos; could not be resolved..
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Properties.Resources.ResolutionException_MissingType">
+            <summary>
+              Looks up a localized string similar to Required dependency of type {0} could not be resolved..
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Properties.Resources.ResolutionException_UnknownScope">
+            <summary>
+              Looks up a localized string similar to Unknown scope..
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.HttpRequestExtensions.GetItemOrCookie(ServiceStack.ServiceHost.IHttpRequest,System.String)">
+            <summary>
+            Gets string value from Items[name] then Cookies[name] if exists.
+            Useful when *first* setting the users response cookie in the request filter.
+            To access the value for this initial request you need to set it in Items[].
+            </summary>
+            <returns>string value or null if it doesn't exist</returns>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.HttpRequestExtensions.GetParam(ServiceStack.ServiceHost.IHttpRequest,System.String)">
+            <summary>
+            Gets request paramater string value by looking in the following order:
+            - QueryString[name]
+            - FormData[name]
+            - Cookies[name]
+            - Items[name]
+            </summary>
+            <returns>string value or null if it doesn't exist</returns>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.HttpResponseExtensions.SetPermanentCookie(ServiceStack.ServiceHost.IHttpResponse,System.String,System.String)">
+            <summary>
+            Sets a persistent cookie which never expires
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.HttpResponseExtensions.SetSessionCookie(ServiceStack.ServiceHost.IHttpResponse,System.String,System.String)">
+            <summary>
+            Sets a session cookie which expires after the browser session closes
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.HttpResponseExtensions.SetCookie(ServiceStack.ServiceHost.IHttpResponse,System.String,System.String,System.TimeSpan)">
+            <summary>
+            Sets a persistent cookie which expires after the given time
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.HttpResponseExtensions.SetCookie(ServiceStack.ServiceHost.IHttpResponse,System.String,System.String,System.DateTime,System.String)">
+            <summary>
+            Sets a persistent cookie with an expiresAt date
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.HttpResponseExtensions.DeleteCookie(ServiceStack.ServiceHost.IHttpResponse,System.String)">
+            <summary>
+            Deletes a specified cookie by setting its value to empty and expiration to -1 days
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.RequestContextExtensions.ToOptimizedResult``1(ServiceStack.ServiceHost.IRequestContext,``0)">
+            <summary>
+            Returns the optimized result for the IRequestContext. 
+            Does not use or store results in any cache.
+            </summary>
+            <param name="requestContext"></param>
+            <param name="dto"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.RequestContextExtensions.ToOptimizedResultUsingCache``1(ServiceStack.ServiceHost.IRequestContext,ServiceStack.CacheAccess.ICacheClient,System.String,System.Func{``0})">
+            <summary>
+            Overload for the <see cref="!:ContentCacheManager.Resolve"/> method returning the most
+            optimized result based on the MimeType and CompressionType from the IRequestContext.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.RequestContextExtensions.ToOptimizedResultUsingCache``1(ServiceStack.ServiceHost.IRequestContext,ServiceStack.CacheAccess.ICacheClient,System.String,System.Nullable{System.TimeSpan},System.Func{``0})">
+            <summary>
+            Overload for the <see cref="!:ContentCacheManager.Resolve"/> method returning the most
+            optimized result based on the MimeType and CompressionType from the IRequestContext.
+            <param name="expireCacheIn">How long to cache for, null is no expiration</param>
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.RequestContextExtensions.RemoveFromCache(ServiceStack.ServiceHost.IRequestContext,ServiceStack.CacheAccess.ICacheClient,System.String[])">
+            <summary>
+            Clears all the serialized and compressed caches set 
+            by the 'Resolve' method for the cacheKey provided
+            </summary>
+            <param name="requestContext"></param>
+            <param name="cacheClient"></param>
+            <param name="cacheKeys"></param>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.RestPath.IsMatch(System.String,System.String[])">
+            <summary>
+            For performance withPathInfoParts should already be a lower case string
+            to minimize redundant matching operations.
+            </summary>
+            <param name="httpMethod"></param>
+            <param name="withPathInfoParts"></param>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.RestPath.PathComponentsCount">
+            <summary>
+            The number of segments separated by '/' determinable by path.Split('/').Length
+            e.g. /path/to/here.ext == 3
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.RestPath.TotalComponentsCount">
+            <summary>
+            The total number of segments after subparts have been exploded ('.') 
+            e.g. /path/to/here.ext == 4
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.RestPath.FirstMatchHashKey">
+            <summary>
+            Provide for quick lookups based on hashes that can be determined from a request url
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.ServiceControllerReflection">
+            <summary>
+            Keeping around just to compare how slow it is
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.ServiceExecOperations">
+            <summary>
+            Static type constants for referring to service exec methods
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.ServiceManager.#ctor(Funq.Container,ServiceStack.ServiceHost.ServiceController)">
+            <summary>
+            Inject alternative container and strategy for resolving Service Types
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.XsdMetadata.GetBaseTypeWithTheSameName(System.Type)">
+            <summary>
+            Gets the name of the base most type in the heirachy tree with the same.
+            
+            We get an exception when trying to create a schema with multiple types of the same name
+            like when inheriting from a DataContract with the same name.
+            </summary>
+            <param name="type">The type.</param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.WebHost.Endpoints.AppHostBase">
+            <summary>
+            Inherit from this class if you want to host your web services inside an
+            ASP.NET application.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.WebHost.Endpoints.IAppHost">
+            <summary>
+            ASP.NET or HttpListener ServiceStack host
+            </summary>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.IAppHost.Register``1(``0)">
+            <summary>
+            Register dependency in AppHost IOC on Startup
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="instance"></param>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.IAppHost.RegisterAs``2">
+            <summary>
+            AutoWired Registration of an interface with a concrete type in AppHost IOC on Startup.
+            </summary>
+            <typeparam name="T"></typeparam>
+            <typeparam name="TAs"></typeparam>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.IAppHost.Release(System.Object)">
+            <summary>
+            Allows the clean up for executed autowired services and filters.
+            Calls directly after services and filters are executed.
+            </summary>
+            <param name="instance"></param>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.IAppHost.OnEndRequest">
+            <summary>
+            Called at the end of each request. Enables Request Scope.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.IAppHost.RegisterService(System.Type,System.String[])">
+            <summary>
+            Register an Adhoc web service on Startup
+            </summary>
+            <param name="serviceType"></param>
+            <param name="atRestPaths"></param>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.IAppHost.LoadPlugin(ServiceStack.WebHost.Endpoints.IPlugin[])">
+            <summary>
+            Apply plugins to this AppHost
+            </summary>
+            <param name="plugins"></param>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.IAppHost.CreateServiceRunner``1(ServiceStack.WebHost.Endpoints.ActionContext)">
+            <summary>
+            Create a service runner for IService actions
+            </summary>
+        </member>
+        <member name="P:ServiceStack.WebHost.Endpoints.IAppHost.Routes">
+            <summary>
+            Register user-defined custom routes.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.WebHost.Endpoints.IAppHost.ContentTypeFilters">
+            <summary>
+            Register custom ContentType serializers
+            </summary>
+        </member>
+        <member name="P:ServiceStack.WebHost.Endpoints.IAppHost.PreRequestFilters">
+            <summary>
+            Add Request Filters, to be applied before the dto is deserialized
+            </summary>
+        </member>
+        <member name="P:ServiceStack.WebHost.Endpoints.IAppHost.RequestFilters">
+            <summary>
+            Add Request Filters
+            </summary>
+        </member>
+        <member name="P:ServiceStack.WebHost.Endpoints.IAppHost.ResponseFilters">
+            <summary>
+            Add Response Filters
+            </summary>
+        </member>
+        <member name="P:ServiceStack.WebHost.Endpoints.IAppHost.ViewEngines">
+            <summary>
+            Add alternative HTML View Engines
+            </summary>
+        </member>
+        <member name="P:ServiceStack.WebHost.Endpoints.IAppHost.ExceptionHandler">
+            <summary>
+            Provide an exception handler for un-caught exceptions
+            </summary>
+        </member>
+        <member name="P:ServiceStack.WebHost.Endpoints.IAppHost.ServiceExceptionHandler">
+            <summary>
+            Provide an exception handler for unhandled exceptions
+            </summary>
+        </member>
+        <member name="P:ServiceStack.WebHost.Endpoints.IAppHost.CatchAllHandlers">
+            <summary>
+            Provide a catch-all handler that doesn't match any routes
+            </summary>
+        </member>
+        <member name="P:ServiceStack.WebHost.Endpoints.IAppHost.RequestBinders">
+            <summary>
+            Provide a custom model minder for a specific Request DTO
+            </summary>
+        </member>
+        <member name="P:ServiceStack.WebHost.Endpoints.IAppHost.Config">
+            <summary>
+            The AppHost config
+            </summary>
+        </member>
+        <member name="P:ServiceStack.WebHost.Endpoints.IAppHost.Plugins">
+            <summary>
+            List of pre-registered and user-defined plugins to be enabled in this AppHost
+            </summary>
+        </member>
+        <member name="P:ServiceStack.WebHost.Endpoints.IAppHost.VirtualPathProvider">
+            <summary>
+            Virtual access to file resources
+            </summary>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.AppHostBase.Resolve``1">
+            <summary>
+            Resolves from IoC container a specified type instance.
+            </summary>
+            <typeparam name="T">Type to be resolved.</typeparam>
+            <returns>Instance of <typeparamref name="T"/>.</returns>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.AppHostBase.ResolveService``1(System.Web.HttpContext)">
+            <summary>
+            Resolves and auto-wires a ServiceStack Service
+            </summary>
+            <typeparam name="T">Type to be resolved.</typeparam>
+            <returns>Instance of <typeparamref name="T"/>.</returns>
+        </member>
+        <member name="T:ServiceStack.WebHost.Endpoints.AppHostHttpListenerBase">
+            <summary>
+            Inherit from this class if you want to host your web services inside a 
+            Console Application, Windows Service, etc.
+            
+            Usage of HttpListener allows you to host webservices on the same port (:80) as IIS 
+            however it requires admin user privillages.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.WebHost.Endpoints.Support.HttpListenerBase">
+            <summary>
+            Wrapper class for the HTTPListener to allow easier access to the
+            server, for start and stop management and event routing of the actual
+            inbound requests.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.Support.HttpListenerBase.Start(System.String)">
+            <summary>
+            Starts the Web Service
+            </summary>
+            <param name="urlBase">
+            A Uri that acts as the base that the server is listening on.
+            Format should be: http://127.0.0.1:8080/ or http://127.0.0.1:8080/somevirtual/
+            Note: the trailing slash is required! For more info see the
+            HttpListener.Prefixes property on MSDN.
+            </param>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.Support.HttpListenerBase.Stop">
+            <summary>
+            Shut down the Web Service
+            </summary>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.Support.HttpListenerBase.ProcessRequest(System.Net.HttpListenerContext)">
+            <summary>
+            Overridable method that can be used to implement a custom hnandler
+            </summary>
+            <param name="context"></param>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.Support.HttpListenerBase.Resolve``1">
+            <summary>
+            Resolves from IoC container a specified type instance.
+            </summary>
+            <typeparam name="T">Type to be resolved.</typeparam>
+            <returns>Instance of <typeparamref name="T"/>.</returns>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.Support.HttpListenerBase.ResolveService``1(System.Net.HttpListenerContext)">
+            <summary>
+            Resolves and auto-wires a ServiceStack Service
+            </summary>
+            <typeparam name="T">Type to be resolved.</typeparam>
+            <returns>Instance of <typeparamref name="T"/>.</returns>
+        </member>
+        <member name="P:ServiceStack.WebHost.Endpoints.Support.HttpListenerBase.Plugins">
+            TODO: plugin added with .Add method after host initialization won't be configured. Each plugin should have state so we can invoke Register method if host was already started.  
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.AppHostHttpListenerLongRunningBase.Start(System.String)">
+            <summary>
+            Starts the Web Service
+            </summary>
+            <param name="urlBase">
+            A Uri that acts as the base that the server is listening on.
+            Format should be: http://127.0.0.1:8080/ or http://127.0.0.1:8080/somevirtual/
+            Note: the trailing slash is required! For more info see the
+            HttpListener.Prefixes property on MSDN.
+            </param>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.AppHostHttpListenerLongRunningBase.ThreadPoolManager.Dispose">
+            <summary>
+            Exécute les tâches définies par l'application associées à la libération ou à la redéfinition des ressources non managées.
+            </summary>
+            <filterpriority>2</filterpriority>
+        </member>
+        <member name="P:MarkdownSharp.MarkdownOptions.AutoHyperlink">
+            <summary>
+            when true, (most) bare plain URLs are auto-hyperlinked  
+            WARNING: this is a significant deviation from the markdown spec
+            </summary>
+        </member>
+        <member name="P:MarkdownSharp.MarkdownOptions.AutoNewlines">
+            <summary>
+            when true, RETURN becomes a literal newline  
+            WARNING: this is a significant deviation from the markdown spec
+            </summary>
+        </member>
+        <member name="P:MarkdownSharp.MarkdownOptions.EmptyElementSuffix">
+            <summary>
+            use ">" for HTML output, or " />" for XHTML output
+            </summary>
+        </member>
+        <member name="P:MarkdownSharp.MarkdownOptions.EncodeProblemUrlCharacters">
+            <summary>
+            when true, problematic URL characters like [, ], (, and so forth will be encoded 
+            WARNING: this is a significant deviation from the markdown spec
+            </summary>
+        </member>
+        <member name="P:MarkdownSharp.MarkdownOptions.LinkEmails">
+            <summary>
+            when false, email addresses will never be auto-linked  
+            WARNING: this is a significant deviation from the markdown spec
+            </summary>
+        </member>
+        <member name="P:MarkdownSharp.MarkdownOptions.StrictBoldItalic">
+            <summary>
+            when true, bold and italic require non-word characters on either side  
+            WARNING: this is a significant deviation from the markdown spec
+            </summary>
+        </member>
+        <member name="T:MarkdownSharp.Markdown">
+            <summary>
+            Markdown is a text-to-HTML conversion tool for web writers. 
+            Markdown allows you to write using an easy-to-read, easy-to-write plain text format, 
+            then convert it to structurally valid XHTML (or HTML).
+            </summary>
+        </member>
+        <member name="F:MarkdownSharp.Markdown._tabWidth">
+            <summary>
+            Tabs are automatically converted to spaces as part of the transform  
+            this constant determines how "wide" those tabs become in spaces  
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.#ctor">
+            <summary>
+            Create a new Markdown instance using default options
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.#ctor(System.Boolean)">
+            <summary>
+            Create a new Markdown instance and optionally load options from a configuration
+            file. There they should be stored in the appSettings section, available options are:
+            
+                Markdown.StrictBoldItalic (true/false)
+                Markdown.EmptyElementSuffix (">" or " />" without the quotes)
+                Markdown.LinkEmails (true/false)
+                Markdown.AutoNewLines (true/false)
+                Markdown.AutoHyperlink (true/false)
+                Markdown.EncodeProblemUrlCharacters (true/false) 
+                
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.#ctor(MarkdownSharp.MarkdownOptions)">
+            <summary>
+            Create a new Markdown instance and set the options from the MarkdownOptions object.
+            </summary>
+        </member>
+        <member name="F:MarkdownSharp.Markdown._nestDepth">
+            <summary>
+            maximum nested depth of [] and () supported by the transform; implementation detail
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.#cctor">
+            <summary>
+            In the static constuctor we'll initialize what stays the same across all transforms.
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.Transform(System.String)">
+            <summary>
+            Transforms the provided Markdown-formatted text to HTML;  
+            see http://en.wikipedia.org/wiki/Markdown
+            </summary>
+            <remarks>
+            The order in which other subs are called here is
+            essential. Link and image substitutions need to happen before
+            EscapeSpecialChars(), so that any *'s or _'s in the a
+            and img tags get encoded.
+            </remarks>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.RunBlockGamut(System.String,System.Boolean)">
+            <summary>
+            Perform transformations that form block-level tags like paragraphs, headers, and list items.
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.RunSpanGamut(System.String)">
+            <summary>
+            Perform transformations that occur *within* block-level tags like paragraphs, headers, and list items.
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.FormParagraphs(System.String,System.Boolean)">
+            <summary>
+            splits on two or more newlines, to form "paragraphs";    
+            each paragraph is then unhashed (if it is a hash and unhashing isn't turned off) or wrapped in HTML p tag
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.GetNestedBracketsPattern">
+            <summary>
+            Reusable pattern to match balanced [brackets]. See Friedl's 
+            "Mastering Regular Expressions", 2nd Ed., pp. 328-331.
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.GetNestedParensPattern">
+            <summary>
+            Reusable pattern to match balanced (parens). See Friedl's 
+            "Mastering Regular Expressions", 2nd Ed., pp. 328-331.
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.StripLinkDefinitions(System.String)">
+            <summary>
+            Strips link definitions from text, stores the URLs and titles in hash references.
+            </summary>
+            <remarks>
+            ^[id]: url "optional title"
+            </remarks>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.GetBlockPattern">
+            <summary>
+            derived pretty much verbatim from PHP Markdown
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.HashHTMLBlocks(System.String)">
+            <summary>
+            replaces any block-level HTML blocks with hash entries
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.TokenizeHTML(System.String)">
+            <summary>
+            returns an array of HTML tokens comprising the input string. Each token is 
+            either a tag (possibly with nested, tags contained therein, such 
+            as &lt;a href="&lt;MTFoo&gt;"&gt;, or a run of text between tags. Each element of the 
+            array is a two-element array; the first is either 'tag' or 'text'; the second is 
+            the actual value.
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.DoAnchors(System.String)">
+            <summary>
+            Turn Markdown link shortcuts into HTML anchor tags
+            </summary>
+            <remarks>
+            [link text](url "title") 
+            [link text][id] 
+            [id] 
+            </remarks>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.DoImages(System.String)">
+            <summary>
+            Turn Markdown image shortcuts into HTML img tags. 
+            </summary>
+            <remarks>
+            ![alt text][id]
+            ![alt text](url "optional title")
+            </remarks>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.DoHeaders(System.String)">
+            <summary>
+            Turn Markdown headers into HTML header tags
+            </summary>
+            <remarks>
+            Header 1  
+            ========  
+            
+            Header 2  
+            --------  
+            
+            # Header 1  
+            ## Header 2  
+            ## Header 2 with closing hashes ##  
+            ...  
+            ###### Header 6  
+            </remarks>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.DoHorizontalRules(System.String)">
+            <summary>
+            Turn Markdown horizontal rules into HTML hr tags
+            </summary>
+            <remarks>
+            ***  
+            * * *  
+            ---
+            - - -
+            </remarks>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.DoLists(System.String)">
+            <summary>
+            Turn Markdown lists into HTML ul and ol and li tags
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.ProcessListItems(System.String,System.String)">
+            <summary>
+            Process the contents of a single ordered or unordered list, splitting it
+            into individual list items.
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.DoCodeBlocks(System.String)">
+            <summary>
+            /// Turn Markdown 4-space indented code into HTML pre code blocks
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.DoCodeSpans(System.String)">
+            <summary>
+            Turn Markdown `code spans` into HTML code tags
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.DoItalicsAndBold(System.String)">
+            <summary>
+            Turn Markdown *italics* and **bold** into HTML strong and em tags
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.DoHardBreaks(System.String)">
+            <summary>
+            Turn markdown line breaks (two space at end of line) into HTML break tags
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.DoBlockQuotes(System.String)">
+            <summary>
+            Turn Markdown > quoted blocks into HTML blockquote blocks
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.DoAutoLinks(System.String)">
+            <summary>
+            Turn angle-delimited URLs into HTML anchor tags
+            </summary>
+            <remarks>
+            &lt;http://www.example.com&gt;
+            </remarks>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.Outdent(System.String)">
+            <summary>
+            Remove one level of line-leading spaces
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.EncodeEmailAddress(System.String)">
+            <summary>
+            encodes email address randomly  
+            roughly 10% raw, 45% hex, 45% dec 
+            note that @ is always encoded and : never is
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.EncodeCode(System.String)">
+            <summary>
+            Encode/escape certain Markdown characters inside code blocks and spans where they are literals
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.EncodeAmpsAndAngles(System.String)">
+            <summary>
+            Encode any ampersands (that aren't part of an HTML entity) and left or right angle brackets
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.EscapeBackslashes(System.String)">
+            <summary>
+            Encodes any escaped characters such as \`, \*, \[ etc
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.Unescape(System.String)">
+            <summary>
+            swap back in all the special characters we've hidden
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.EscapeBoldItalic(System.String)">
+            <summary>
+            escapes Bold [ * ] and Italic [ _ ] characters
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.EncodeProblemUrlChars(System.String)">
+            <summary>
+            hex-encodes some unusual "problem" chars in URLs to avoid URL detection problems 
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.EscapeSpecialCharsWithinTagAttributes(System.String)">
+            <summary>
+            Within tags -- meaning between &lt; and &gt; -- encode [\ ` * _] so they 
+            don't conflict with their use in Markdown for code, italics and strong. 
+            We're replacing each such character with its corresponding hash 
+            value; this is likely overkill, but it should prevent us from colliding 
+            with the escape values by accident.
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.Normalize(System.String)">
+            <summary>
+            convert all tabs to _tabWidth spaces; 
+            standardizes line endings from DOS (CR LF) or Mac (CR) to UNIX (LF); 
+            makes sure text ends with a couple of newlines; 
+            removes any blank lines (only spaces) in the text
+            </summary>
+        </member>
+        <member name="M:MarkdownSharp.Markdown.RepeatString(System.String,System.Int32)">
+            <summary>
+            this is to emulate what's evailable in PHP
+            </summary>
+        </member>
+        <member name="P:MarkdownSharp.Markdown.EmptyElementSuffix">
+            <summary>
+            use ">" for HTML output, or " />" for XHTML output
+            </summary>
+        </member>
+        <member name="P:MarkdownSharp.Markdown.LinkEmails">
+            <summary>
+            when false, email addresses will never be auto-linked  
+            WARNING: this is a significant deviation from the markdown spec
+            </summary>
+        </member>
+        <member name="P:MarkdownSharp.Markdown.StrictBoldItalic">
+            <summary>
+            when true, bold and italic require non-word characters on either side  
+            WARNING: this is a significant deviation from the markdown spec
+            </summary>
+        </member>
+        <member name="P:MarkdownSharp.Markdown.AutoNewLines">
+            <summary>
+            when true, RETURN becomes a literal newline  
+            WARNING: this is a significant deviation from the markdown spec
+            </summary>
+        </member>
+        <member name="P:MarkdownSharp.Markdown.AutoHyperlink">
+            <summary>
+            when true, (most) bare plain URLs are auto-hyperlinked  
+            WARNING: this is a significant deviation from the markdown spec
+            </summary>
+        </member>
+        <member name="P:MarkdownSharp.Markdown.EncodeProblemUrlCharacters">
+            <summary>
+            when true, problematic URL characters like [, ], (, and so forth will be encoded 
+            WARNING: this is a significant deviation from the markdown spec
+            </summary>
+        </member>
+        <member name="P:MarkdownSharp.Markdown.Version">
+            <summary>
+            current version of MarkdownSharp;  
+            see http://code.google.com/p/markdownsharp/ for the latest code or to contribute
+            </summary>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.Formats.MarkdownFormat.SerializeToStream(ServiceStack.ServiceHost.IRequestContext,System.Object,System.IO.Stream)">
+            <summary>
+            Render Markdown for text/markdown and text/plain ContentTypes
+            </summary>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.RestHandler.CreateRequest(ServiceStack.ServiceHost.IHttpRequest,System.String)">
+            <summary>
+            Used in Unit tests
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.WebHost.Endpoints.Ext.AllFilesHandler">
+            <summary>
+            Summary description for $codebehindclassname$
+            </summary>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.Support.RedirectHttpHandler.ProcessRequest(ServiceStack.ServiceHost.IHttpRequest,ServiceStack.ServiceHost.IHttpResponse,System.String)">
+            <summary>
+            Non ASP.NET requests
+            </summary>
+            <param name="request"></param>
+            <param name="response"></param>
+            <param name="operationName"></param>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.Support.RedirectHttpHandler.ProcessRequest(System.Web.HttpContext)">
+            <summary>
+            ASP.NET requests
+            </summary>
+            <param name="context"></param>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.Extensions.HttpResponseExtensions.WriteToResponse(ServiceStack.ServiceHost.IHttpResponse,System.Object,ServiceStack.ServiceHost.ResponseSerializerDelegate,ServiceStack.ServiceHost.IRequestContext,System.Byte[],System.Byte[])">
+            <summary>
+            Writes to response.
+            Response headers are customizable by implementing IHasOptions an returning Dictionary of Http headers.
+            </summary>
+            <param name="response">The response.</param>
+            <param name="result">Whether or not it was implicity handled by ServiceStack's built-in handlers.</param>
+            <param name="defaultAction">The default action.</param>
+            <param name="serializerCtx">The serialization context.</param>
+            <param name="bodyPrefix">Add prefix to response body if any</param>
+            <param name="bodySuffix">Add suffix to response body if any</param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.WebHost.Endpoints.Extensions.HttpRequestExtensions">
+            	 * 
+            		 Input: http://localhost:96/Cambia3/Temp/Test.aspx/path/info?q=item#fragment
+            
+            		Some HttpRequest path and URL properties:
+            		Request.ApplicationPath:	/Cambia3
+            		Request.CurrentExecutionFilePath:	/Cambia3/Temp/Test.aspx
+            		Request.FilePath:			/Cambia3/Temp/Test.aspx
+            		Request.Path:				/Cambia3/Temp/Test.aspx/path/info
+            		Request.PathInfo:			/path/info
+            		Request.PhysicalApplicationPath:	D:\Inetpub\wwwroot\CambiaWeb\Cambia3\
+            		Request.QueryString:		/Cambia3/Temp/Test.aspx/path/info?query=arg
+            		Request.Url.AbsolutePath:	/Cambia3/Temp/Test.aspx/path/info
+            		Request.Url.AbsoluteUri:	http://localhost:96/Cambia3/Temp/Test.aspx/path/info?query=arg
+            		Request.Url.Fragment:	
+            		Request.Url.Host:			localhost
+            		Request.Url.LocalPath:		/Cambia3/Temp/Test.aspx/path/info
+            		Request.Url.PathAndQuery:	/Cambia3/Temp/Test.aspx/path/info?query=arg
+            		Request.Url.Port:			96
+            		Request.Url.Query:			?query=arg
+            		Request.Url.Scheme:			http
+            		Request.Url.Segments:		/
+            									Cambia3/
+            									Temp/
+            									Test.aspx/
+            									path/
+            									info
+            	 * 
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.Extensions.HttpRequestExtensions.ResolveItem(ServiceStack.ServiceHost.IHttpRequest,System.String,System.Func{ServiceStack.ServiceHost.IHttpRequest,System.Object})">
+            <summary>
+            Use this to treat Request.Items[] as a cache by returning pre-computed items to save 
+            calculating them multiple times.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.Extensions.HttpRequestExtensions.SetItem(ServiceStack.ServiceHost.IHttpRequest,System.String,System.Object)">
+            <summary>
+            Store an entry in the IHttpRequest.Items Dictionary
+            </summary>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.Extensions.HttpRequestExtensions.GetItem(ServiceStack.ServiceHost.IHttpRequest,System.String)">
+            <summary>
+            Get an entry from the IHttpRequest.Items Dictionary
+            </summary>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory.ReturnRequestInfo(System.Web.HttpRequest)">
+            <summary>
+            If enabled, just returns the Request Info as it understands
+            </summary>
+            <param name="context"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.WebHost.Endpoints.Support.GzipOptimizationTest">
+            <summary>
+            Highly optimized code to find if GZIP is supported from:
+             - http://dotnetperls.com/gzip-request
+            
+            Other resources for GZip, deflate resources:
+            - http://www.west-wind.com/Weblog/posts/10564.aspx
+            	- http://www.west-wind.com/WebLog/posts/102969.aspx
+            - ICSharpCode 
+            </summary>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.ServiceEndpointsMetadataConfig.Create(System.String)">
+            <summary>
+            Changes the links for the servicestack/metadata page
+            </summary>
+            <param name="serviceStackHandlerPrefix"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.Support.IndexPageHttpHandler.ProcessRequest(ServiceStack.ServiceHost.IHttpRequest,ServiceStack.ServiceHost.IHttpResponse,System.String)">
+            <summary>
+            Non ASP.NET requests
+            </summary>
+            <param name="request"></param>
+            <param name="response"></param>
+            <param name="operationName"></param>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.Support.IndexPageHttpHandler.ProcessRequest(System.Web.HttpContext)">
+            <summary>
+            ASP.NET requests
+            </summary>
+            <param name="context"></param>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.Support.StaticFileHandler.SetDefaultFile(System.String)">
+            <summary>
+            Keep default file contents in-memory
+            </summary>
+            <param name="defaultFilePath"></param>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.EndpointHost.ApplyPreRequestFilters(ServiceStack.ServiceHost.IHttpRequest,ServiceStack.ServiceHost.IHttpResponse)">
+            <summary>
+            Applies the raw request filters. Returns whether or not the request has been handled 
+            and no more processing should be done.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.EndpointHost.ApplyRequestFilters(ServiceStack.ServiceHost.IHttpRequest,ServiceStack.ServiceHost.IHttpResponse,System.Object)">
+            <summary>
+            Applies the request filters. Returns whether or not the request has been handled 
+            and no more processing should be done.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.EndpointHost.ApplyResponseFilters(ServiceStack.ServiceHost.IHttpRequest,ServiceStack.ServiceHost.IHttpResponse,System.Object)">
+            <summary>
+            Applies the response filters. Returns whether or not the request has been handled 
+            and no more processing should be done.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.WebHost.Endpoints.EndpointHost.CompleteRequest">
+            <summary>
+            Call to signal the completion of a ServiceStack-handled Request
+            </summary>
+        </member>
+        <member name="P:ServiceStack.WebHost.Endpoints.EndpointHost.Container">
+            <summary>
+            The AppHost.Container. Note: it is not thread safe to register dependencies after AppStart.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.WebHost.Endpoints.EndpointHostConfig.SkipRouteValidation">
+            <summary>
+            Use: \[Route\("[^\/]  regular expression to find violating routes in your sln
+            </summary>
+        </member>
+    </members>
+</doc>

BIN
servicestack/lib/ServiceStack.Common.3.9.46/ServiceStack.Common.3.9.46.nupkg


+ 28 - 0
servicestack/lib/ServiceStack.Common.3.9.46/ServiceStack.Common.3.9.46.nuspec

@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
+  <metadata>
+    <id>ServiceStack.Common</id>
+    <version>3.9.46</version>
+    <title>Service Clients and Common libs for ServiceStack projects</title>
+    <authors>Demis Bellot</authors>
+    <owners>Demis Bellot</owners>
+    <licenseUrl>https://github.com/ServiceStack/ServiceStack/blob/master/LICENSE</licenseUrl>
+    <projectUrl>https://github.com/ServiceStack/ServiceStack</projectUrl>
+    <iconUrl>http://www.servicestack.net/logo-100x100.png</iconUrl>
+    <requireLicenseAcceptance>false</requireLicenseAcceptance>
+    <description>Common library dependency for other ServiceStack projects.
+      Includes JSON, XML, JSV and SOAP Generic Service Clients.
+      Contains:
+      - ServiceStack.Interfaces
+      - ServiceStack.Common
+      Dependencies:
+      - ServiceStack.Text</description>
+    <summary>Opensource .NET and Mono REST Web Services framework</summary>
+    <copyright>servicestack.net 2012 and contributors</copyright>
+    <language>en-US</language>
+    <tags>ServiceStack Common Framework Clients ServiceClients Gateway</tags>
+    <dependencies>
+      <dependency id="ServiceStack.Text" />
+    </dependencies>
+  </metadata>
+</package>

BIN
servicestack/lib/ServiceStack.Common.3.9.46/lib/net35/ServiceStack.Common.dll


+ 970 - 0
servicestack/lib/ServiceStack.Common.3.9.46/lib/net35/ServiceStack.Common.xml

@@ -0,0 +1,970 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>ServiceStack.Common</name>
+    </assembly>
+    <members>
+        <member name="T:ServiceStack.Common.CryptUtils">
+            <summary>
+            Useful .NET Encryption Utils from:
+            http://andrewlocatelliwoodcock.com/2011/08/01/implementing-rsa-asymmetric-public-private-key-encryption-in-c-encrypting-under-the-public-key/
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.CryptUtils.Encrypt(System.String,System.String,ServiceStack.Common.RsaKeyLengths)">
+            <summary>
+            Encrypt an arbitrary string of data under the supplied public key
+            </summary>
+            <param name="publicKey">The public key to encrypt under</param>
+            <param name="data">The data to encrypt</param>
+            <param name="length">The bit length or strength of the public key: 1024, 2048 or 4096 bits. This must match the 
+            value actually used to create the publicKey</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.EnumExtensions.ToDescription(System.Enum)">
+            <summary>
+            Gets the textual description of the enum if it has one. e.g.
+            
+            <code>
+            enum UserColors
+            {
+                [Description("Bright Red")]
+                BrightRed
+            }
+            UserColors.BrightRed.ToDescription();
+            </code>
+            </summary>
+            <param name="enum"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Common.Extensions.EnumerableExtensions">
+            <summary>
+            These extensions have a potential to conflict with the LINQ extensions methods so
+            leaving the implmentation in the 'Extensions' sub-namespace to force explicit opt-in
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.HostContext.TrackDisposable(System.IDisposable)">
+            <summary>
+            Track any IDisposable's to dispose of at the end of the request in IAppHost.OnEndRequest()
+            </summary>
+            <param name="instance"></param>
+        </member>
+        <member name="P:ServiceStack.Common.HostContext.Items">
+            <summary>
+            Gets a list of items for this request. 
+            </summary>
+            <remarks>This list will be cleared on every request and is specific to the original thread that is handling the request.
+            If a handler uses additional threads, this data will not be available on those threads.
+            </remarks>
+        </member>
+        <member name="T:ServiceStack.Common.Extensions.IPAddressExtensions">
+            <summary>
+            Useful IPAddressExtensions from: 
+            http://blogs.msdn.com/knom/archive/2008/12/31/ip-address-calculations-with-c-subnetmasks-networks.aspx
+            
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Extensions.IPAddressExtensions.GetAllNetworkInterfaceIpv4Addresses">
+            <summary>
+            Gets the ipv4 addresses from all Network Interfaces that have Subnet masks.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.Extensions.IPAddressExtensions.GetAllNetworkInterfaceIpv6Addresses">
+            <summary>
+            Gets the ipv6 addresses from all Network Interfaces.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Messaging.IMessageHandler">
+            <summary>
+            Single threaded message handler that can process all messages
+            of a particular message type.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageHandler.Process(ServiceStack.Messaging.IMessageQueueClient)">
+            <summary>
+            Process all messages pending
+            </summary>
+            <param name="mqClient"></param>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageHandler.ProcessQueue(ServiceStack.Messaging.IMessageQueueClient,System.String,System.Func{System.Boolean})">
+            <summary>
+            Process messages from a single queue.
+            </summary>
+            <param name="mqClient"></param>
+            <param name="queueName">The queue to process</param>
+            <param name="doNext">A predicate on whether to continue processing the next message if any</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageHandler.GetStats">
+            <summary>
+            Get Current Stats for this Message Handler
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.Messaging.IMessageHandler.MessageType">
+            <summary>
+            The type of the message this handler processes
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Messaging.IMessageHandlerFactory">
+            <summary>
+            Encapsulates creating a new message handler
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Messaging.MessageHandler`1">
+            <summary>
+            Processes all messages in a Normal and Priority Queue.
+            Expects to be called in 1 thread. i.e. Non Thread-Safe.
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="M:ServiceStack.Messaging.MessageQueueClientFactory.GetMessageAsync(System.String)">
+            <summary>
+            Returns the next message from queueName or null if no message
+            </summary>
+            <param name="queueName"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Messaging.Rcon.Client">
+            <summary>
+            Base rcon class.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Messaging.Rcon.Client._sock">
+            <summary>
+            Rcon connection socket. Always set to null when not connected.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Messaging.Rcon.Client._sequenceID">
+            <summary>
+            Unique ID for each message.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Messaging.Rcon.Client._registeredCallbacks">
+            <summary>
+            Registered callbacks.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.Client.#ctor(System.Net.IPEndPoint)">
+            <summary>
+            Create a new instance of rcon.
+            </summary>
+            <param name="rconEndpoint">Endpoint to connect to, usually the game server with query port.</param>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.Client.Connect">
+            <summary>
+            Attempts to connect to the game server for rcon operations.
+            </summary>
+            <returns>True if connection established, false otherwise.</returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.Client.ProcessPacket(System.Byte[],ServiceStack.Messaging.Rcon.ClientSocketState)">
+            <summary>
+            Processes a received packet.
+            </summary>
+            <param name="packet">The packet.</param>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.Client.Disconnect">
+            <summary>
+            Disconnects from rcon.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.Client.InternalSend(System.Byte[][])">
+            <summary>
+            Sends message to the server.
+            </summary>
+            <param name="words">Words to send.</param>
+        </member>
+        <member name="E:ServiceStack.Messaging.Rcon.Client.OnDisconnected">
+            <summary>
+            Disconnected event.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Messaging.Rcon.Client.Endpoint">
+            <summary>
+            Game server endpoint.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Messaging.Rcon.Client.LastException">
+            <summary>
+            Last exception that occured during operation.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Messaging.Rcon.Client.Connected">
+            <summary>
+            Connected?
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Messaging.Rcon.Client.SequenceID">
+            <summary>
+            Gets the next unique ID to be used for transmisson. Read this before sending to pair responses to sent messages.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Messaging.Rcon.Client.OnDisconnectedHandler">
+            <summary>
+            Event delegate when disconnected from the server.
+            </summary>
+            <param name="rcon"></param>
+        </member>
+        <member name="T:ServiceStack.Messaging.Rcon.Client.AsyncCallback">
+            <summary>
+            Delegate for async callbacks.
+            </summary>
+            <param name="rcon"></param>
+            <param name="packet"></param>
+        </member>
+        <member name="T:ServiceStack.Messaging.Rcon.NotConnectedException">
+            <summary>
+            Exception thrown when attempting to send on a non-connected service client.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Messaging.Rcon.Packet.FromServer">
+            <summary>
+            True if the packet originated on the server.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Messaging.Rcon.Packet.IsResponse">
+            <summary>
+            True if the packet is a response from a sent packet.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Messaging.Rcon.Packet.Sequence">
+            <summary>
+            Sequence identifier. Unique to the connection.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Messaging.Rcon.Packet.Words">
+            <summary>
+            Words.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Messaging.Rcon.PacketCodec">
+            <summary>
+            Contains methods required for encoding and decoding rcon packets.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.PacketCodec.DecodePacket(System.Byte[])">
+            <summary>
+            Decodes a packet.
+            </summary>
+            <param name="packet">The packet.</param>
+            <returns>A packet object.</returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.PacketCodec.DecodeHeader(System.Byte[])">
+            <summary>
+            Decodes the packet header.
+            </summary>
+            <param name="packet"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.PacketCodec.DecodeWords(System.Byte[])">
+            <summary>
+            Decodes words in a packet.
+            </summary>
+            <param name="packet"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.PacketCodec.EncodePacket(System.Boolean,System.Boolean,System.UInt32,System.Byte[][])">
+            <summary>
+            Encodes a packet for transmission to the server.
+            </summary>
+            <param name="fromServer"></param>
+            <param name="isResponse"></param>
+            <param name="id"></param>
+            <param name="words"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.PacketCodec.EncodeHeader(System.Boolean,System.Boolean,System.UInt32)">
+            <summary>
+            Encodes a packet header.
+            </summary>
+            <param name="fromServer"></param>
+            <param name="isResponse"></param>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.PacketCodec.EncodeWords(System.Byte[][])">
+            <summary>
+            Encodes words.
+            </summary>
+            <param name="words"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Messaging.Rcon.ProcessingClient">
+            <summary>
+            Processing client used to interface with ServiceStack and allow a message to be processed.
+            Not an actual client.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.ProcessingClient.Publish(System.String,System.Byte[])">
+            <summary>
+            Publish the specified message into the durable queue @queueName
+            </summary>
+            <param name="queueName"></param>
+            <param name="messageBytes"></param>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.ProcessingClient.Notify(System.String,System.Byte[])">
+            <summary>
+            Publish the specified message into the transient queue @queueName
+            </summary>
+            <param name="queueName"></param>
+            <param name="messageBytes"></param>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.ProcessingClient.Get(System.String,System.Nullable{System.TimeSpan})">
+            <summary>
+            Synchronous blocking get.
+            </summary>
+            <param name="queueName"></param>
+            <param name="timeOut"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.ProcessingClient.GetAsync(System.String)">
+            <summary>
+            Non blocking get message
+            </summary>
+            <param name="queueName"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.ProcessingClient.WaitForNotifyOnAny(System.String[])">
+            <summary>
+            Blocking wait for notifications on any of the supplied channels
+            </summary>
+            <param name="channelNames"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Messaging.Rcon.Server">
+            <summary>
+            Hosting services via a binary-safe TCP-based protocol.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.Server.RegisterHandler``1(System.Func{ServiceStack.Messaging.IMessage{``0},System.Object})">
+            <summary>
+            Register DTOs and hanlders the MQ Host will process
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="processMessageFn"></param>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.Server.GetStatus">
+            <summary>
+            Get Total Current Stats for all Message Handlers
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.Server.GetStatsDescription">
+            <summary>
+            Get a Stats dump
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.Server.Start">
+            <summary>
+            Start the MQ Host. Stops the server and restarts if already started.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.Server.Stop">
+            <summary>
+            Stop the MQ Host if not already stopped. 
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.Server.ProcessPacket(System.Byte[],System.Net.Sockets.Socket,ServiceStack.Messaging.Rcon.ClientSocketState)">
+            <summary>
+            Processes a received packet.
+            </summary>
+            <param name="packet">The packet.</param>
+        </member>
+        <member name="P:ServiceStack.Messaging.Rcon.Server.MessageFactory">
+            <summary>
+            Factory to create consumers and producers that work with this service
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Net30.ExtendTuple">
+            <summary>
+            Helper extensions for tuples
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.PropertyAccessor`1.TypedGetPropertyFn``1">
+            <summary>
+            Func to get the Strongly-typed field
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.PropertyAccessor`1.ValueTypedGetPropertyFn``1">
+            <summary>
+            Required to cast the return ValueType to an object for caching
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.PropertyAccessor`1.TypedSetPropertyFn``1">
+            <summary>
+            Func to set the Strongly-typed field
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.PropertyAccessor`1.ValueTypesSetPropertyFn``1">
+            <summary>
+            Required to cast the ValueType to an object for caching
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.PropertyAccessor`1.UnTypedSetPropertyFn``1">
+            <summary>
+            Required to cast the ValueType to an object for caching
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.StaticAccessors`1.TypedGetPropertyFn``1(System.Reflection.PropertyInfo)">
+            <summary>
+            Func to get the Strongly-typed field
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.StaticAccessors`1.ValueUnTypedGetPropertyFn``1(System.Reflection.PropertyInfo)">
+            <summary>
+            Required to cast the return ValueType to an object for caching
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.StaticAccessors`1.TypedSetPropertyFn``1(System.Reflection.PropertyInfo)">
+            <summary>
+            Func to set the Strongly-typed field
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.StaticAccessors`1.ValueUnTypedSetPropertyFn``1(System.Reflection.PropertyInfo)">
+            <summary>
+            Required to cast the ValueType to an object for caching
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.StaticAccessors`1.UnTypedSetPropertyFn``1(System.Reflection.PropertyInfo)">
+            <summary>
+            Required to cast the ValueType to an object for caching
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceClient.Web.AsyncServiceClient">
+            Need to provide async request options
+            http://msdn.microsoft.com/en-us/library/86wf6409(VS.71).aspx
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.AsyncServiceClient.HttpWebRequestFilter">
+            <summary>
+            The request filter is called before any request.
+            This request filter is executed globally.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.AsyncServiceClient.HttpWebResponseFilter">
+            <summary>
+            The response action is called once the server response is available.
+            It will allow you to access raw response information. 
+            This response action is executed globally.
+            Note that you should NOT consume the response stream as this is handled by ServiceStack
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.AsyncServiceClient.OnAuthenticationRequired">
+            <summary>
+            Called before request resend, when the initial request required authentication
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.AsyncServiceClient.LocalHttpWebRequestFilter">
+            <summary>
+            The request filter is called before any request.
+            This request filter only works with the instance where it was set (not global).
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.AsyncServiceClient.LocalHttpWebResponseFilter">
+            <summary>
+            The response action is called once the server response is available.
+            It will allow you to access raw response information. 
+            Note that you should NOT consume the response stream as this is handled by ServiceStack
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceClient.Web.GenericProxy`1">
+            <summary>
+            Generic Proxy for service calls.
+            </summary>
+            <typeparam name="T">The service Contract</typeparam>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.GenericProxy`1.Proxy">
+            <summary>
+            Returns the transparent proxy for the service call
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceClient.Web.ServiceClientBase">
+            Need to provide async request options
+            http://msdn.microsoft.com/en-us/library/86wf6409(VS.71).aspx
+        </member>
+        <member name="F:ServiceStack.ServiceClient.Web.ServiceClientBase.httpWebRequestFilter">
+            <summary>
+            The request filter is called before any request.
+            This request filter is executed globally.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.ServiceClient.Web.ServiceClientBase.httpWebResponseFilter">
+            <summary>
+            The response action is called once the server response is available.
+            It will allow you to access raw response information. 
+            This response action is executed globally.
+            Note that you should NOT consume the response stream as this is handled by ServiceStack
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceClient.Web.ServiceClientBase.SetBaseUri(System.String)">
+            <summary>
+            Sets all baseUri properties, using the Format property for the SyncReplyBaseUri and AsyncOneWayBaseUri
+            </summary>
+            <param name="baseUri">Base URI of the service</param>
+        </member>
+        <member name="M:ServiceStack.ServiceClient.Web.ServiceClientBase.SetBaseUri(System.String,System.String)">
+            <summary>
+            Sets all baseUri properties allowing for a temporary override of the Format property
+            </summary>
+            <param name="baseUri">Base URI of the service</param>
+            <param name="format">Override of the Format property for the service</param>
+        </member>
+        <member name="F:ServiceStack.ServiceClient.Web.ServiceClientBase.disableAutoCompression">
+            <summary>
+            Whether to Accept Gzip,Deflate Content-Encoding and to auto decompress responses
+            </summary>
+        </member>
+        <member name="F:ServiceStack.ServiceClient.Web.ServiceClientBase.username">
+            <summary>
+            The user name for basic authentication
+            </summary>
+        </member>
+        <member name="F:ServiceStack.ServiceClient.Web.ServiceClientBase.password">
+            <summary>
+            The password for basic authentication
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceClient.Web.ServiceClientBase.SetCredentials(System.String,System.String)">
+            <summary>
+            Sets the username and the password for basic authentication.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.ServiceClient.Web.ServiceClientBase.alwaysSendBasicAuthHeader">
+            <summary>
+            Determines if the basic auth header should be sent with every request.
+            By default, the basic auth header is only sent when "401 Unauthorized" is returned.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.ServiceClient.Web.ServiceClientBase.storeCookies">
+            <summary>
+            Specifies if cookies should be stored
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceClient.Web.ServiceClientBase.HandleResponseException``1(System.Exception,System.Object,System.String,System.Func{System.Net.WebRequest},System.Func{System.Net.WebRequest,System.Net.WebResponse},``0@)">
+            <summary>
+            Called by Send method if an exception occurs, for instance a System.Net.WebException because the server
+            returned an HTTP error code. Override if you want to handle specific exceptions or always want to parse the
+            response to a custom ErrorResponse DTO type instead of ServiceStack's ErrorResponse class. In case ex is a
+            <c>System.Net.WebException</c>, do not use
+            <c>createWebRequest</c>/<c>getResponse</c>/<c>HandleResponse&lt;TResponse&gt;</c> to parse the response
+            because that will result in the same exception again. Use
+            <c>ThrowWebServiceException&lt;YourErrorResponseType&gt;</c> to parse the response and to throw a
+            <c>WebServiceException</c> containing the parsed DTO. Then override Send to handle that exception.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.ServiceClientBase.Headers">
+            <summary>
+            Gets the collection of headers to be added to outgoing requests.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.ServiceClientBase.Credentials">
+            <summary>
+            Gets or sets authentication information for the request.
+            Warning: It's recommened to use <see cref="P:ServiceStack.ServiceClient.Web.ServiceClientBase.UserName"/> and <see cref="P:ServiceStack.ServiceClient.Web.ServiceClientBase.Password"/> for basic auth.
+            This property is only used for IIS level authentication.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.ServiceClientBase.onAuthenticationRequired">
+            <summary>
+            Called before request resend, when the initial request required authentication
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.ServiceClientBase.localHttpWebRequestFilter">
+            <summary>
+            The request filter is called before any request.
+            This request filter only works with the instance where it was set (not global).
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.ServiceClientBase.localHttpWebResponseFilter">
+            <summary>
+            The response action is called once the server response is available.
+            It will allow you to access raw response information. 
+            Note that you should NOT consume the response stream as this is handled by ServiceStack
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.WcfServiceClient.StoreCookies">
+            <summary>
+            Specifies if cookies should be stored
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceClient.Web.UrlExtensions">
+            <summary>
+            Donated by Ivan Korneliuk from his post:
+            http://korneliuk.blogspot.com/2012/08/servicestack-reusing-dtos.html
+            
+            Modified to only allow using routes matching the supplied HTTP Verb
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceClient.Web.CookieManagerEndpointBehavior">
+            <summary>
+            Adds the singleton instance of <see cref="T:ServiceStack.ServiceClient.Web.CookieManagerMessageInspector"/> to an endpoint on the client.
+            </summary>
+            <remarks>
+            Based on http://megakemp.wordpress.com/2009/02/06/managing-shared-cookies-in-wcf/
+            </remarks>
+        </member>
+        <member name="M:ServiceStack.ServiceClient.Web.CookieManagerEndpointBehavior.ApplyClientBehavior(System.ServiceModel.Description.ServiceEndpoint,System.ServiceModel.Dispatcher.ClientRuntime)">
+            <summary>
+            Adds the singleton of the <see cref="!:ClientIdentityMessageInspector"/> class to the client endpoint's message inspectors.
+            </summary>
+            <param name="endpoint">The endpoint that is to be customized.</param>
+            <param name="clientRuntime">The client runtime to be customized.</param>
+        </member>
+        <member name="T:ServiceStack.ServiceClient.Web.CookieManagerMessageInspector">
+            <summary>
+            Maintains a copy of the cookies contained in the incoming HTTP response received from any service
+            and appends it to all outgoing HTTP requests.
+            </summary>
+            <remarks>
+            This class effectively allows to send any received HTTP cookies to different services,
+            reproducing the same functionality available in ASMX Web Services proxies with the <see cref="T:System.Net.CookieContainer"/> class.
+            Based on http://megakemp.wordpress.com/2009/02/06/managing-shared-cookies-in-wcf/
+            </remarks>
+        </member>
+        <member name="M:ServiceStack.ServiceClient.Web.CookieManagerMessageInspector.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="!:ClientIdentityMessageInspector"/> class.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceClient.Web.CookieManagerMessageInspector.AfterReceiveReply(System.ServiceModel.Channels.Message@,System.Object)">
+            <summary>
+            Inspects a message after a reply message is received but prior to passing it back to the client application.
+            </summary>
+            <param name="reply">The message to be transformed into types and handed back to the client application.</param>
+            <param name="correlationState">Correlation state data.</param>
+        </member>
+        <member name="M:ServiceStack.ServiceClient.Web.CookieManagerMessageInspector.BeforeSendRequest(System.ServiceModel.Channels.Message@,System.ServiceModel.IClientChannel)">
+            <summary>
+            Inspects a message before a request message is sent to a service.
+            </summary>
+            <param name="request">The message to be sent to the service.</param>
+            <param name="channel">The client object channel.</param>
+            <returns>
+            <strong>Null</strong> since no message correlation is used.
+            </returns>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.CookieManagerMessageInspector.Instance">
+            <summary>
+            Gets the singleton <see cref="!:ClientIdentityMessageInspector"/> instance.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.ServiceClient.Web.WebRequestUtils.ResponseDtoSuffix">
+            <summary>
+            Naming convention for the request's Response DTO
+            </summary>
+        </member>
+        <member name="F:ServiceStack.ServiceModel.Serialization.DataContractDeserializer.quotas">
+            <summary>
+            Default MaxStringContentLength is 8k, and throws an exception when reached
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceModel.Serialization.StringMapTypeDeserializer">
+            <summary>
+            Serializer cache of delegates required to create a type from a string map (e.g. for REST urls)
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceModel.Support.XmlSerializerWrapper.GetNamespace(System.Type)">
+            <summary>
+            Gets the namespace from an attribute marked on the type's definition
+            </summary>
+            <param name="type"></param>
+            <returns>Namespace of type</returns>
+        </member>
+        <member name="T:ServiceStack.Validation.ValidationError">
+            <summary>
+            The exception which is thrown when a validation error occurred.
+            This validation is serialized in a extra clean and human-readable way by ServiceStack.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Validation.ValidationError.ToXml">
+            <summary>
+            Used if we need to serialize this exception to XML
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.Validation.ValidationError.ErrorCode">
+            <summary>
+            Returns the first error code
+            </summary>
+            <value>The error code.</value>
+        </member>
+        <member name="T:ServiceStack.Validation.ValidationErrorResult">
+            <summary>
+            Encapsulates a validation result.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Validation.ValidationErrorResult.#ctor">
+            <summary>
+            Constructs a new ValidationResult
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Validation.ValidationErrorResult.#ctor(System.Collections.Generic.IList{ServiceStack.Validation.ValidationErrorField})">
+            <summary>
+            Constructs a new ValidationResult
+            </summary>
+            <param name="errors">A list of validation results</param>
+        </member>
+        <member name="M:ServiceStack.Validation.ValidationErrorResult.#ctor(System.Collections.Generic.IList{ServiceStack.Validation.ValidationErrorField},System.String,System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Validation.ValidationErrorResult"/> class.
+            </summary>
+            <param name="errors">The errors.</param>
+            <param name="successCode">The success code.</param>
+            <param name="errorCode">The error code.</param>
+        </member>
+        <member name="P:ServiceStack.Validation.ValidationErrorResult.SuccessCode">
+            <summary>
+            Gets or sets the success code.
+            </summary>
+            <value>The success code.</value>
+        </member>
+        <member name="P:ServiceStack.Validation.ValidationErrorResult.ErrorCode">
+            <summary>
+            Gets or sets the error code.
+            </summary>
+            <value>The error code.</value>
+        </member>
+        <member name="P:ServiceStack.Validation.ValidationErrorResult.SuccessMessage">
+            <summary>
+            Gets or sets the success message.
+            </summary>
+            <value>The success message.</value>
+        </member>
+        <member name="P:ServiceStack.Validation.ValidationErrorResult.ErrorMessage">
+            <summary>
+            Gets or sets the error message.
+            </summary>
+            <value>The error message.</value>
+        </member>
+        <member name="P:ServiceStack.Validation.ValidationErrorResult.Errors">
+            <summary>
+            The errors generated by the validation.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Validation.ValidationErrorResult.IsValid">
+            <summary>
+            Returns True if the validation was successful (errors list is empty).
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.StreamExtensions.Compress(System.String,System.String)">
+            <summary>
+            Compresses the specified text using the default compression method: Deflate
+            </summary>
+            <param name="text">The text.</param>
+            <param name="compressionType">Type of the compression.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.StreamExtensions.Decompress(System.Byte[],System.String)">
+            <summary>
+            Decompresses the specified gz buffer using the default compression method: Inflate
+            </summary>
+            <param name="gzBuffer">The gz buffer.</param>
+            <param name="compressionType">Type of the compression.</param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Common.Support.AdapterBase">
+            <summary>
+            Common functionality when creating adapters
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Support.AdapterBase.Execute``1(System.Func{``0})">
+            <summary>
+            Executes the specified expression. 
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="action">The action.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.Support.AdapterBase.Execute(System.Action)">
+            <summary>
+            Executes the specified action (for void methods).
+            </summary>
+            <param name="action">The action.</param>
+        </member>
+        <member name="T:ServiceStack.Common.Support.InMemoryLogFactory">
+            <summary>
+            Note: InMemoryLog keeps all logs in memory, so don't use it long running exceptions
+            
+            Returns a thread-safe InMemoryLog which you can use while *TESTING*
+            to provide a detailed analysis of your logs.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Support.LogicFacadeBase.Execute``1(ServiceStack.DesignPatterns.Command.ICommand{``0})">
+            <summary>
+            Executes the specified action.
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="action">The action.</param>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.Common.Support.LogicFacadeBase.CurrentContext">
+            <summary>
+            Gets the current context (or null if none).
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Common.Support.LogicFacadeBase.IsCurrentlyInitializeOnly">
+            <summary>
+            Checks if the current context is set to "initialize only".
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Common.Support.LogicFacadeBase.InitialisationContext.initOptions">
+            <summary>
+            Determines whether this context is initialise only or not
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Support.LogicFacadeBase.InitialisationContext.#ctor(ServiceStack.Common.Support.LogicFacadeBase,ServiceStack.LogicFacade.InitOptions)">
+            <summary>
+            Constructs a new InitialiseOnlyContext
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Support.LogicFacadeBase.InitialisationContext.Dispose">
+            <summary>
+            Call to remove this current context and reveal the previous context (if any).
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Common.Support.LogicFacadeBase.InitialisationContext.InitialisedObject">
+            <summary>
+            Gets or sets the object that has been initialized only.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Common.UrnId">
+            <summary>
+            Creates a Unified Resource Name (URN) with the following formats:
+            
+            	- urn:{TypeName}:{IdFieldValue}						e.g. urn:UserSession:1
+            	- urn:{TypeName}:{IdFieldName}:{IdFieldValue}		e.g. urn:UserSession:UserId:1			
+            
+            </summary>
+        </member>
+        <!-- Badly formed XML comment ignored for member "M:ServiceStack.Common.Utils.AssertUtils.AreNotNull(System.Collections.Generic.IDictionary{System.String,System.Object})" -->
+        <member name="M:ServiceStack.Common.Utils.CommandsUtils.ExecuteAsyncCommandExec(System.Collections.Generic.IEnumerable{ServiceStack.DesignPatterns.Command.ICommandExec})">
+            <summary>
+            Provide the an option for the callee to block until all commands are executed
+            </summary>
+            <param name="commands"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.Utils.ResponseStatusUtils.CreateResponseStatus(System.String,System.String,System.Collections.Generic.IEnumerable{ServiceStack.Validation.ValidationErrorField})">
+            <summary>
+            Creates the error response from the values provided.
+            
+            If the errorCode is empty it will use the first validation error code, 
+            if there is none it will throw an error.
+            </summary>
+            <param name="errorCode">The error code.</param>
+            <param name="errorMessage">The error message.</param>
+            <param name="validationErrors">The validation errors.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.Utils.FuncUtils.TryExec(System.Action)">
+            <summary>
+            Invokes the action provided and returns true if no excpetion was thrown.
+            Otherwise logs the exception and returns false if an exception was thrown.
+            </summary>
+            <param name="action">The action.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.Utils.PathUtils.MapProjectPath(System.String)">
+            <summary>
+            Maps the path of a file in the context of a VS project
+            </summary>
+            <param name="relativePath">the relative path</param>
+            <returns>the absolute path</returns>
+            <remarks>Assumes static content is two directories above the /bin/ directory,
+            eg. in a unit test scenario  the assembly would be in /bin/Debug/.</remarks>
+        </member>
+        <member name="M:ServiceStack.Common.Utils.PathUtils.MapAbsolutePath(System.String)">
+            <summary>
+            Maps the path of a file in a self-hosted scenario
+            </summary>
+            <param name="relativePath">the relative path</param>
+            <returns>the absolute path</returns>
+            <remarks>Assumes static content is copied to /bin/ folder with the assemblies</remarks>
+        </member>
+        <member name="M:ServiceStack.Common.Utils.PathUtils.MapHostAbsolutePath(System.String)">
+            <summary>
+            Maps the path of a file in an Asp.Net hosted scenario
+            </summary>
+            <param name="relativePath">the relative path</param>
+            <returns>the absolute path</returns>
+            <remarks>Assumes static content is in the parent folder of the /bin/ directory</remarks>
+        </member>
+        <member name="M:ServiceStack.Common.Utils.ReflectionUtils.PopulateObject(System.Object)">
+            <summary>
+            Populate an object with Example data.
+            </summary>
+            <param name="obj"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.Utils.ReflectionUtils.PopulateObjectInternal(System.Object,System.Collections.Generic.Dictionary{System.Type,System.Int32})">
+            <summary>
+            Populates the object with example data.
+            </summary>
+            <param name="obj"></param>
+            <param name="recursionInfo">Tracks how deeply nested we are</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.Web.HttpResultExtensions.ToDto(System.Object)">
+            <summary>
+            Shortcut to get the ResponseDTO whether it's bare or inside a IHttpResult
+            </summary>
+            <param name="response"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.Web.HttpResultExtensions.ToResponseDto(System.Object)">
+            <summary>
+            Alias of ToDto
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Web.HttpResultExtensions.ToDto``1(System.Object)">
+            <summary>
+            Shortcut to get the ResponseDTO whether it's bare or inside a IHttpResult
+            </summary>
+            <param name="response"></param>
+            <returns>TResponse if found; otherwise null</returns>
+        </member>
+        <member name="M:ServiceStack.Common.Web.HttpResultExtensions.ToResponseDto``1(System.Object)">
+            <summary>
+            Alias of ToDto
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Web.HttpResultExtensions.ToResponseStatus(System.Object)">
+            <summary>
+            Shortcut to get the ResponseStatus whether it's bare or inside a IHttpResult
+            </summary>
+            <param name="response"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.Web.HttpResultExtensions.IsErrorResponse(System.Object)">
+            <summary>
+            Whether the response is an IHttpError or Exception
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Web.HttpResultExtensions.ExtractHttpRanges(System.String,System.Int64,System.Int64@,System.Int64@)">
+            <summary>
+            rangeHeader should be of the format "bytes=0-" or "bytes=0-12345" or "bytes=123-456"
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Web.HttpResultExtensions.AddHttpRangeResponseHeaders(ServiceStack.ServiceHost.IHttpResponse,System.Int64,System.Int64,System.Int64)">
+            <summary>
+            Adds 206 PartialContent Status, Content-Range and Content-Length headers
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Web.HttpResultExtensions.WritePartialTo(System.IO.Stream,System.IO.Stream,System.Int64,System.Int64)">
+            <summary>
+            Writes partial range as specified by start-end, from fromStream to toStream.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.RequestContextExtensions.SetItem(ServiceStack.ServiceHost.IRequestContext,System.String,System.Object)">
+            <summary>
+            Store an entry in the IHttpRequest.Items Dictionary
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.RequestContextExtensions.GetItem(ServiceStack.ServiceHost.IRequestContext,System.String)">
+            <summary>
+            Get an entry from the IHttpRequest.Items Dictionary
+            </summary>
+        </member>
+    </members>
+</doc>

BIN
servicestack/lib/ServiceStack.Common.3.9.46/lib/net35/ServiceStack.Interfaces.dll


+ 1757 - 0
servicestack/lib/ServiceStack.Common.3.9.46/lib/net35/ServiceStack.Interfaces.xml

@@ -0,0 +1,1757 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>ServiceStack.Interfaces</name>
+    </assembly>
+    <members>
+        <member name="T:ServiceStack.CacheAccess.ICacheClient">
+            <summary>
+            A common interface implementation that is implemented by most cache providers
+            </summary>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.Remove(System.String)">
+            <summary>
+            Removes the specified item from the cache.
+            </summary>
+            <param name="key">The identifier for the item to delete.</param>
+            <returns>
+            true if the item was successfully removed from the cache; false otherwise.
+            </returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.RemoveAll(System.Collections.Generic.IEnumerable{System.String})">
+            <summary>
+            Removes the cache for all the keys provided.
+            </summary>
+            <param name="keys">The keys.</param>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.Get``1(System.String)">
+            <summary>
+            Retrieves the specified item from the cache.
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="key">The identifier for the item to retrieve.</param>
+            <returns>
+            The retrieved item, or <value>null</value> if the key was not found.
+            </returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.Increment(System.String,System.UInt32)">
+            <summary>
+            Increments the value of the specified key by the given amount. 
+            The operation is atomic and happens on the server.
+            A non existent value at key starts at 0
+            </summary>
+            <param name="key">The identifier for the item to increment.</param>
+            <param name="amount">The amount by which the client wants to increase the item.</param>
+            <returns>
+            The new value of the item or -1 if not found.
+            </returns>
+            <remarks>The item must be inserted into the cache before it can be changed. The item must be inserted as a <see cref="T:System.String"/>. The operation only works with <see cref="T:System.UInt32"/> values, so -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.Decrement(System.String,System.UInt32)">
+            <summary>
+            Increments the value of the specified key by the given amount. 
+            The operation is atomic and happens on the server.
+            A non existent value at key starts at 0
+            </summary>
+            <param name="key">The identifier for the item to increment.</param>
+            <param name="amount">The amount by which the client wants to decrease the item.</param>
+            <returns>
+            The new value of the item or -1 if not found.
+            </returns>
+            <remarks>The item must be inserted into the cache before it can be changed. The item must be inserted as a <see cref="T:System.String"/>. The operation only works with <see cref="T:System.UInt32"/> values, so -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.Add``1(System.String,``0)">
+            <summary>
+            Adds a new item into the cache at the specified cache key only if the cache is empty.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="value">The object to be inserted into the cache.</param>
+            <returns>
+            true if the item was successfully stored in the cache; false otherwise.
+            </returns>
+            <remarks>The item does not expire unless it is removed due memory pressure.</remarks>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.Set``1(System.String,``0)">
+            <summary>
+            Sets an item into the cache at the cache key specified regardless if it already exists or not.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.Replace``1(System.String,``0)">
+            <summary>
+            Replaces the item at the cachekey specified only if an items exists at the location already. 
+            </summary>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.FlushAll">
+            <summary>
+            Invalidates all data on the cache.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.GetAll``1(System.Collections.Generic.IEnumerable{System.String})">
+            <summary>
+            Retrieves multiple items from the cache. 
+            The default value of T is set for all keys that do not exist.
+            </summary>
+            <param name="keys">The list of identifiers for the items to retrieve.</param>
+            <returns>
+            a Dictionary holding all items indexed by their key.
+            </returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.SetAll``1(System.Collections.Generic.IDictionary{System.String,``0})">
+            <summary>
+            Sets multiple items to the cache. 
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="values">The values.</param>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IRemoveByPattern.RemoveByPattern(System.String)">
+            <summary>
+            Removes items from cache that have keys matching the specified wildcard pattern
+            </summary>
+            <param name="pattern">The wildcard, where "*" means any sequence of characters and "?" means any single character.</param>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IRemoveByPattern.RemoveByRegex(System.String)">
+            <summary>
+            Removes items from the cache based on the specified regular expression pattern
+            </summary>
+            <param name="regex">Regular expression pattern to search cache keys</param>
+        </member>
+        <member name="T:ServiceStack.CacheAccess.IMemcachedClient">
+            <summary>
+            A light interface over a cache client.
+            This interface was inspired by Enyim.Caching.MemcachedClient
+            
+            Only the methods that are intended to be used are required, if you require
+            extra functionality you can uncomment the unused methods below as they have been
+            implemented in DdnMemcachedClient
+            </summary>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.Remove(System.String)">
+            <summary>
+            Removes the specified item from the cache.
+            </summary>
+            <param name="key">The identifier for the item to delete.</param>
+            <returns>
+            true if the item was successfully removed from the cache; false otherwise.
+            </returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.RemoveAll(System.Collections.Generic.IEnumerable{System.String})">
+            <summary>
+            Removes the cache for all the keys provided.
+            </summary>
+            <param name="keys">The keys.</param>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.Get(System.String)">
+            <summary>
+            Retrieves the specified item from the cache.
+            </summary>
+            <param ICTname="key">The identifier for the item to retrieve.</param>
+            <returns>
+            The retrieved item, or <value>null</value> if the key was not found.
+            </returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.Increment(System.String,System.UInt32)">
+            <summary>
+            Increments the value of the specified key by the given amount. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The identifier for the item to increment.</param>
+            <param name="amount">The amount by which the client wants to increase the item.</param>
+            <returns>
+            The new value of the item or -1 if not found.
+            </returns>
+            <remarks>The item must be inserted into the cache before it can be changed. The item must be inserted as a <see cref="T:System.String"/>. The operation only works with <see cref="T:System.UInt32"/> values, so -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.Decrement(System.String,System.UInt32)">
+            <summary>
+            Increments the value of the specified key by the given amount. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The identifier for the item to increment.</param>
+            <param name="amount">The amount by which the client wants to decrease the item.</param>
+            <returns>
+            The new value of the item or -1 if not found.
+            </returns>
+            <remarks>The item must be inserted into the cache before it can be changed. The item must be inserted as a <see cref="T:System.String"/>. The operation only works with <see cref="T:System.UInt32"/> values, so -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.Add(System.String,System.Object)">
+            <summary>
+            Inserts an item into the cache with a cache key to reference its location.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="value">The object to be inserted into the cache.</param>
+            <returns>
+            true if the item was successfully stored in the cache; false otherwise.
+            </returns>
+            <remarks>The item does not expire unless it is removed due memory pressure.</remarks>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.Add(System.String,System.Object,System.DateTime)">
+            <summary>
+            Inserts an item into the cache with a cache key to reference its location.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="value">The object to be inserted into the cache.</param>
+            <param name="expiresAt">The time when the item is invalidated in the cache.</param>
+            <returns>true if the item was successfully stored in the cache; false otherwise.</returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.FlushAll">
+            <summary>
+            Removes all data from the cache.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.GetAll(System.Collections.Generic.IEnumerable{System.String})">
+            <summary>
+            Retrieves multiple items from the cache.
+            </summary>
+            <param name="keys">The list of identifiers for the items to retrieve.</param>
+            <returns>
+            a Dictionary holding all items indexed by their key.
+            </returns>
+        </member>
+        <member name="T:ServiceStack.CacheAccess.ISession">
+            <summary>
+            A Users Session
+            </summary>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ISession.Set``1(System.String,``0)">
+            <summary>
+            Set a typed value at key
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="key"></param>
+            <param name="value"></param>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ISession.Get``1(System.String)">
+            <summary>
+            Get a typed value at key
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.CacheAccess.ISession.Item(System.String)">
+            <summary>
+            Store any object at key
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.CacheAccess.ISessionFactory">
+            <summary>
+            Retrieves a User Session
+            </summary>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ISessionFactory.GetOrCreateSession(ServiceStack.ServiceHost.IHttpRequest,ServiceStack.ServiceHost.IHttpResponse)">
+            <summary>
+            Gets the session for this request, creates one if it doesn't exist.
+            </summary>
+            <param name="httpReq"></param>
+            <param name="httpRes"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ISessionFactory.GetOrCreateSession">
+            <summary>
+            Gets the session for this request, creates one if it doesn't exist.
+            Only for ASP.NET apps. Uses the HttpContext.Current singleton.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Configuration.IContainerAdapter">
+            <summary>
+            Allow delegation of dependencies to other IOC's
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Configuration.IContainerAdapter.TryResolve``1">
+            <summary>
+            Resolve Property Dependency
+            </summary>
+            <typeparam name="T"></typeparam>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Configuration.IContainerAdapter.Resolve``1">
+            <summary>
+            Resolve Constructor Dependency
+            </summary>
+            <typeparam name="T"></typeparam>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.DataAccess.IBasicPersistenceProvider`1">
+            <summary>
+            For providers that want a cleaner API with a little more perf
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.DataAccess.IPersistenceProviderManager">
+            <summary>
+            Manages a connection to a persistance provider
+            </summary>
+        </member>
+        <member name="T:ServiceStack.DataAnnotations.MetaAttribute">
+            <summary>
+            Decorate any type or property with adhoc info
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Logging.ILog">
+            <summary>
+            Logs a message in a running application
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Debug(System.Object)">
+            <summary>
+            Logs a Debug message.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Debug(System.Object,System.Exception)">
+            <summary>
+            Logs a Debug message and exception.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.DebugFormat(System.String,System.Object[])">
+            <summary>
+            Logs a Debug format message.
+            </summary>
+            <param name="format">The format.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Error(System.Object)">
+            <summary>
+            Logs a Error message.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Error(System.Object,System.Exception)">
+            <summary>
+            Logs a Error message and exception.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.ErrorFormat(System.String,System.Object[])">
+            <summary>
+            Logs a Error format message.
+            </summary>
+            <param name="format">The format.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Fatal(System.Object)">
+            <summary>
+            Logs a Fatal message.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Fatal(System.Object,System.Exception)">
+            <summary>
+            Logs a Fatal message and exception.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.FatalFormat(System.String,System.Object[])">
+            <summary>
+            Logs a Error format message.
+            </summary>
+            <param name="format">The format.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Info(System.Object)">
+            <summary>
+            Logs an Info message and exception.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Info(System.Object,System.Exception)">
+            <summary>
+            Logs an Info message and exception.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.InfoFormat(System.String,System.Object[])">
+            <summary>
+            Logs an Info format message.
+            </summary>
+            <param name="format">The format.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Warn(System.Object)">
+            <summary>
+            Logs a Warning message.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Warn(System.Object,System.Exception)">
+            <summary>
+            Logs a Warning message and exception.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.WarnFormat(System.String,System.Object[])">
+            <summary>
+            Logs a Warning format message.
+            </summary>
+            <param name="format">The format.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="P:ServiceStack.Logging.ILog.IsDebugEnabled">
+            <summary>
+            Gets or sets a value indicating whether this instance is debug enabled.
+            </summary>
+            <value>
+            	<c>true</c> if this instance is debug enabled; otherwise, <c>false</c>.
+            </value>
+        </member>
+        <member name="T:ServiceStack.Logging.ILogFactory">
+            <summary>
+            Factory to create ILog instances
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Logging.ILogFactory.GetLogger(System.Type)">
+            <summary>
+            Gets the logger.
+            </summary>
+            <param name="type">The type.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Logging.ILogFactory.GetLogger(System.String)">
+            <summary>
+            Gets the logger.
+            </summary>
+            <param name="typeName">Name of the type.</param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Logging.LogManager">
+            <summary>
+            Logging API for this library. You can inject your own implementation otherwise
+            will use the DebugLogFactory to write to System.Diagnostics.Debug
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Logging.LogManager.GetLogger(System.Type)">
+            <summary>
+            Gets the logger.
+            </summary>
+            <param name="type">The type.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Logging.LogManager.GetLogger(System.String)">
+            <summary>
+            Gets the logger.
+            </summary>
+            <param name="typeName">Name of the type.</param>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.Logging.LogManager.LogFactory">
+            <summary>
+            Gets or sets the log factory.
+            Use this to override the factory that is used to create loggers
+            </summary>
+            <value>The log factory.</value>
+        </member>
+        <member name="T:ServiceStack.Logging.Support.Logging.ConsoleLogFactory">
+            <summary>
+            Creates a Console Logger, that logs all messages to: System.Console
+            
+            Made public so its testable
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Logging.Support.Logging.ConsoleLogger">
+            <summary>
+            Default logger is to Console.WriteLine
+            
+            Made public so its testable
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.ConsoleLogger.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Logging.Support.Logging.DebugLogger"/> class.
+            </summary>
+            <param name="type">The type.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.ConsoleLogger.#ctor(System.Type)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Logging.Support.Logging.DebugLogger"/> class.
+            </summary>
+            <param name="type">The type.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.ConsoleLogger.Log(System.Object,System.Exception)">
+            <summary>
+            Logs the specified message.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.ConsoleLogger.LogFormat(System.Object,System.Object[])">
+            <summary>
+            Logs the format.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.ConsoleLogger.Log(System.Object)">
+            <summary>
+            Logs the specified message.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="T:ServiceStack.Logging.Support.Logging.DebugLogFactory">
+            <summary>
+            Creates a Debug Logger, that logs all messages to: System.Diagnostics.Debug
+            
+            Made public so its testable
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Logging.Support.Logging.DebugLogger">
+            <summary>
+            Default logger is to System.Diagnostics.Debug.WriteLine
+            
+            Made public so its testable
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.DebugLogger.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Logging.Support.Logging.DebugLogger"/> class.
+            </summary>
+            <param name="type">The type.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.DebugLogger.#ctor(System.Type)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Logging.Support.Logging.DebugLogger"/> class.
+            </summary>
+            <param name="type">The type.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.DebugLogger.Log(System.Object,System.Exception)">
+            <summary>
+            Logs the specified message.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.DebugLogger.LogFormat(System.Object,System.Object[])">
+            <summary>
+            Logs the format.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.DebugLogger.Log(System.Object)">
+            <summary>
+            Logs the specified message.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="T:ServiceStack.Logging.Support.Logging.NullDebugLogger">
+            <summary>
+            Default logger is to System.Diagnostics.Debug.Print
+            
+            Made public so its testable
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.NullDebugLogger.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Logging.Support.Logging.DebugLogger"/> class.
+            </summary>
+            <param name="type">The type.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.NullDebugLogger.#ctor(System.Type)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Logging.Support.Logging.DebugLogger"/> class.
+            </summary>
+            <param name="type">The type.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.NullDebugLogger.Log(System.Object,System.Exception)">
+            <summary>
+            Logs the specified message.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.NullDebugLogger.LogFormat(System.Object,System.Object[])">
+            <summary>
+            Logs the format.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.NullDebugLogger.Log(System.Object)">
+            <summary>
+            Logs the specified message.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="T:ServiceStack.Logging.Support.Logging.NullLogFactory">
+            <summary>
+            Creates a Debug Logger, that logs all messages to: System.Diagnostics.Debug
+            
+            Made public so its testable
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Logging.Support.Logging.TestLogFactory">
+            <summary>
+            Creates a test Logger, that stores all log messages in a member list
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Logging.Support.Logging.TestLogger">
+            <summary>
+            Tests logger which  stores all log messages in a member list which can be examined later
+            
+            Made public so its testable
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.TestLogger.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Logging.Support.Logging.TestLogger"/> class.
+            </summary>
+            <param name="type">The type.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.TestLogger.#ctor(System.Type)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Logging.Support.Logging.TestLogger"/> class.
+            </summary>
+            <param name="type">The type.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.TestLogger.Log(ServiceStack.Logging.Support.Logging.TestLogger.Levels,System.Object,System.Exception)">
+            <summary>
+            Logs the specified message.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.TestLogger.LogFormat(ServiceStack.Logging.Support.Logging.TestLogger.Levels,System.Object,System.Object[])">
+            <summary>
+            Logs the format.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.TestLogger.Log(ServiceStack.Logging.Support.Logging.TestLogger.Levels,System.Object)">
+            <summary>
+            Logs the specified message.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="T:ServiceStack.LogicFacade.IServiceModelFinder">
+            <summary>
+            The same functionality is on IServiceResolver
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageQueueClient.Publish(System.String,System.Byte[])">
+            <summary>
+            Publish the specified message into the durable queue @queueName
+            </summary>
+            <param name="queueName"></param>
+            <param name="messageBytes"></param>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageQueueClient.Notify(System.String,System.Byte[])">
+            <summary>
+            Publish the specified message into the transient queue @queueName
+            </summary>
+            <param name="queueName"></param>
+            <param name="messageBytes"></param>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageQueueClient.Get(System.String,System.Nullable{System.TimeSpan})">
+            <summary>
+            Synchronous blocking get.
+            </summary>
+            <param name="queueName"></param>
+            <param name="timeOut"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageQueueClient.GetAsync(System.String)">
+            <summary>
+            Non blocking get message
+            </summary>
+            <param name="queueName"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageQueueClient.WaitForNotifyOnAny(System.String[])">
+            <summary>
+            Blocking wait for notifications on any of the supplied channels
+            </summary>
+            <param name="channelNames"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Messaging.IMessageService">
+            <summary>
+            Simple definition of an MQ Host
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageService.RegisterHandler``1(System.Func{ServiceStack.Messaging.IMessage{``0},System.Object})">
+            <summary>
+            Register DTOs and hanlders the MQ Host will process
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="processMessageFn"></param>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageService.RegisterHandler``1(System.Func{ServiceStack.Messaging.IMessage{``0},System.Object},System.Action{ServiceStack.Messaging.IMessage{``0},System.Exception})">
+            <summary>
+            Register DTOs and hanlders the MQ Host will process
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="processMessageFn"></param>
+            <param name="processExceptionEx"></param>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageService.GetStats">
+            <summary>
+            Get Total Current Stats for all Message Handlers
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageService.GetStatus">
+            <summary>
+            Get the status of the service. Potential Statuses: Disposed, Stopped, Stopping, Starting, Started
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageService.GetStatsDescription">
+            <summary>
+            Get a Stats dump
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageService.Start">
+            <summary>
+            Start the MQ Host if not already started.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageService.Stop">
+            <summary>
+            Stop the MQ Host if not already stopped. 
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Messaging.IMessageService.MessageFactory">
+            <summary>
+            Factory to create consumers and producers that work with this service
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Messaging.MessageError">
+            <summary>
+            An Error Message Type that can be easily serialized
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Messaging.Message`1">
+            <summary>
+            Basic implementation of IMessage[T]
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.Messaging.MessagingException">
+            <summary>
+            Base Exception for all ServiceStack.Messaging exceptions
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Messaging.QueueNames`1">
+            <summary>
+            Util static generic class to create unique queue names for types
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.Messaging.QueueNames">
+            <summary>
+            Util class to create unique queue names for runtime types
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Messaging.UnRetryableMessagingException">
+            <summary>
+            For messaging exceptions that should by-pass the messaging service's configured
+            retry attempts and store the message straight into the DLQ
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Generic.IRedisList`1">
+            <summary>
+            Wrap the common redis list operations under a IList[string] interface.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Generic.IRedisTypedTransaction`1">
+            <summary>
+            Redis transaction for typed client
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.Redis.Generic.IRedisTypedQueueableOperation`1">
+            <summary>
+            interface to queueable operation using typed redis client
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.Redis.Generic.IRedisTypedPipeline`1">
+            <summary>
+            Interface to redis typed pipeline
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Pipeline.IRedisPipelineShared">
+            <summary>
+            Pipeline interface shared by typed and non-typed pipelines
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperation">
+            <summary>
+            Interface to operations that allow queued commands to be completed
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClient.GetTypedClient``1">
+            <summary>
+            Returns a high-level typed client API
+            Shorter Alias is As&lt;T&gt;();
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClient.As``1">
+            <summary>
+            Returns a high-level typed client API
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClientCacheManager.GetClient">
+            <summary>
+            Returns a Read/Write client (The default) using the hosts defined in ReadWriteHosts
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClientCacheManager.GetReadOnlyClient">
+            <summary>
+            Returns a ReadOnly client using the hosts defined in ReadOnlyHosts.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClientCacheManager.GetCacheClient">
+            <summary>
+            Returns a Read/Write ICacheClient (The default) using the hosts defined in ReadWriteHosts
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClientCacheManager.GetReadOnlyCacheClient">
+            <summary>
+            Returns a ReadOnly ICacheClient using the hosts defined in ReadOnlyHosts.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClientsManager.GetClient">
+            <summary>
+            Returns a Read/Write client (The default) using the hosts defined in ReadWriteHosts
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClientsManager.GetReadOnlyClient">
+            <summary>
+            Returns a ReadOnly client using the hosts defined in ReadOnlyHosts.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClientsManager.GetCacheClient">
+            <summary>
+            Returns a Read/Write ICacheClient (The default) using the hosts defined in ReadWriteHosts
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClientsManager.GetReadOnlyCacheClient">
+            <summary>
+            Returns a ReadOnly ICacheClient using the hosts defined in ReadOnlyHosts.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisSubscription.SubscribeToChannels(System.String[])">
+            <summary>
+            Subscribe to channels by name
+            </summary>
+            <param name="channels"></param>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisSubscription.SubscribeToChannelsMatching(System.String[])">
+            <summary>
+            Subscribe to channels matching the supplied patterns
+            </summary>
+            <param name="patterns"></param>
+        </member>
+        <member name="P:ServiceStack.Redis.IRedisSubscription.SubscriptionCount">
+            <summary>
+            The number of active subscriptions this client has
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Redis.IRedisSubscription.OnSubscribe">
+            <summary>
+            Registered handler called after client *Subscribes* to each new channel
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Redis.IRedisSubscription.OnMessage">
+            <summary>
+            Registered handler called when each message is received
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Redis.IRedisSubscription.OnUnSubscribe">
+            <summary>
+            Registered handler called when each channel is unsubscribed
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.IRedisTransaction">
+            <summary>
+            Interface to redis transaction
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.IRedisTransactionBase">
+            <summary>
+            Base transaction interface, shared by typed and non-typed transactions
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Pipeline.IRedisQueueableOperation">
+            <summary>
+            interface to operation that can queue commands
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Pipeline.IRedisPipeline">
+            <summary>
+            Interface to redis pipeline
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.ApiAttribute.Description">
+            <summary>
+            The overall description of an API. Used by Swagger.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.ApiMemberAttribute.Verb">
+            <summary>
+            Gets or sets verb to which applies attribute. By default applies to all verbs.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.ApiMemberAttribute.ParameterType">
+            <summary>
+            Gets or sets parameter type: It can be only one of the following: path, query, body, or header.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.ApiMemberAttribute.Name">
+            <summary>
+            Gets or sets unique name for the parameter. Each name must be unique, even if they are associated with different paramType values. 
+            </summary>
+            <remarks>
+            <para>
+            Other notes on the name field:
+            If paramType is body, the name is used only for UI and codegeneration.
+            If paramType is path, the name field must correspond to the associated path segment from the path field in the api object.
+            If paramType is query, the name field corresponds to the query param name.
+            </para>
+            </remarks>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.ApiMemberAttribute.Description">
+            <summary>
+            Gets or sets the human-readable description for the parameter.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.ApiMemberAttribute.DataType">
+            <summary>
+            For path, query, and header paramTypes, this field must be a primitive. For body, this can be a complex or container datatype.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.ApiMemberAttribute.IsRequired">
+            <summary>
+            For path, this is always true. Otherwise, this field tells the client whether or not the field must be supplied.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.ApiMemberAttribute.AllowMultiple">
+            <summary>
+            For query params, this specifies that a comma-separated list of values can be passed to the API. For path and body types, this field cannot be true.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.ApiResponseAttribute.StatusCode">
+            <summary>
+            The status code of a response
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.ApiResponseAttribute.Description">
+            <summary>
+            The description of a response status code
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRestOptionsService`1">
+            <summary>
+            If the Service also implements this interface,
+            IRestPutService.Options() will be used instead of IService.Execute() for 
+            EndpointAttributes.HttpPut requests
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IService">
+            <summary>
+            Marker interfaces
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IExpress">
+            <summary>
+            Marker interface to mark an Express controller with different routes for each method
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRequiresRequestStream">
+            <summary>
+            Implement on Request DTOs that need access to the raw Request Stream
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IRequiresRequestStream.RequestStream">
+            <summary>
+            The raw Http Request Input Stream
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IAsyncService`1">
+            <summary>
+            If the Service also implements this interface,
+            IAsyncService.ExecuteAsync() will be used instead of IService.Execute() for 
+            EndpointAttributes.AsyncOneWay requests
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IResolver.TryResolve``1">
+            <summary>
+            Resolve a dependency from the AppHost's IOC
+            </summary>
+            <typeparam name="T"></typeparam>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IHasRequestFilter">
+            <summary>
+            This interface can be implemented by an attribute
+            which adds an request filter for the specific request DTO the attribute marked.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IHasRequestFilter.RequestFilter(ServiceStack.ServiceHost.IHttpRequest,ServiceStack.ServiceHost.IHttpResponse,System.Object)">
+            <summary>
+            The request filter is executed before the service.
+            </summary>
+            <param name="req">The http request wrapper</param>
+            <param name="res">The http response wrapper</param>
+            <param name="requestDto">The request DTO</param>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IHasRequestFilter.Copy">
+            <summary>
+            A new shallow copy of this filter is used on every request.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHasRequestFilter.Priority">
+            <summary>
+            Order in which Request Filters are executed. 
+            &lt;0 Executed before global request filters
+            &gt;0 Executed after global request filters
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IHasResponseFilter">
+            <summary>
+            This interface can be implemented by an attribute
+            which adds an response filter for the specific response DTO the attribute marked.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IHasResponseFilter.ResponseFilter(ServiceStack.ServiceHost.IHttpRequest,ServiceStack.ServiceHost.IHttpResponse,System.Object)">
+            <summary>
+            The response filter is executed after the service
+            </summary>
+            <param name="req">The http request wrapper</param>
+            <param name="res">The http response wrapper</param>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IHasResponseFilter.Copy">
+            <summary>
+            A new shallow copy of this filter is used on every request.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHasResponseFilter.Priority">
+            <summary>
+            Order in which Response Filters are executed. 
+            &lt;0 Executed before global response filters
+            &gt;0 Executed after global response filters
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResult.Status">
+            <summary>
+            The HTTP Response Status
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResult.StatusCode">
+            <summary>
+            The HTTP Response Status Code
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResult.StatusDescription">
+            <summary>
+            The HTTP Status Description
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResult.ContentType">
+            <summary>
+            The HTTP Response ContentType
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResult.Headers">
+            <summary>
+            Additional HTTP Headers
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResult.Response">
+            <summary>
+            Response DTO
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResult.ResponseFilter">
+            <summary>
+            if not provided, get's injected by ServiceStack
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResult.RequestContext">
+            <summary>
+            Holds the request call context
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IHttpRequest">
+            <summary>
+            A thin wrapper around ASP.NET or HttpListener's HttpRequest
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IHttpRequest.GetRawBody">
+            <summary>
+            The entire string contents of Request.InputStream
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpRequest.OriginalRequest">
+            <summary>
+            The underlying ASP.NET or HttpListener HttpRequest
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpRequest.OperationName">
+            <summary>
+            The name of the service being called (e.g. Request DTO Name)
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpRequest.ContentType">
+            <summary>
+            The request ContentType
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpRequest.ResponseContentType">
+            <summary>
+            The expected Response ContentType for this request
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpRequest.Items">
+            <summary>
+            Attach any data to this request that all filters and services can access.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpRequest.UseBufferedStream">
+            <summary>
+            Buffer the Request InputStream so it can be re-read
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpRequest.UserHostAddress">
+            <summary>
+            The Remote Ip as reported by Request.UserHostAddress
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpRequest.RemoteIp">
+            <summary>
+            The Remote Ip as reported by X-Forwarded-For, X-Real-IP or Request.UserHostAddress
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpRequest.XForwardedFor">
+            <summary>
+            The value of the X-Forwarded-For header, null if null or empty
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpRequest.XRealIp">
+            <summary>
+            The value of the X-Real-IP header, null if null or empty
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpRequest.IsSecureConnection">
+            <summary>
+            e.g. is https or not
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpRequest.Files">
+            <summary>
+            Access to the multi-part/formdata files posted on this request
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IHttpResponse">
+            <summary>
+            A thin wrapper around ASP.NET or HttpListener's HttpResponse
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IHttpResponse.Close">
+            <summary>
+            Signal that this response has been handled and no more processing should be done.
+            When used in a request or response filter, no more filters or processing is done on this request.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IHttpResponse.End">
+            <summary>
+            Calls Response.End() on ASP.NET HttpResponse otherwise is an alias for Close().
+            Useful when you want to prevent ASP.NET to provide it's own custom error page.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IHttpResponse.Flush">
+            <summary>
+            Response.Flush() and OutputStream.Flush() seem to have different behaviour in ASP.NET
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResponse.OriginalResponse">
+            <summary>
+            The underlying ASP.NET or HttpListener HttpResponse
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResponse.IsClosed">
+            <summary>
+            Gets a value indicating whether this instance is closed.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRequestLogger">
+            <summary>
+            Log every service request
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IRequestLogger.Log(ServiceStack.ServiceHost.IRequestContext,System.Object,System.Object,System.TimeSpan)">
+            <summary>
+            Log a request
+            </summary>
+            <param name="requestContext">The RequestContext</param>
+            <param name="requestDto">Request DTO</param>
+            <param name="response">Response DTO or Exception</param>
+            <param name="elapsed">How long did the Request take</param>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IRequestLogger.GetLatestLogs(System.Nullable{System.Int32})">
+            <summary>
+            View the most recent logs
+            </summary>
+            <param name="take"></param>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IRequestLogger.EnableSessionTracking">
+            <summary>
+            Turn On/Off Session Tracking
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IRequestLogger.EnableRequestBodyTracking">
+            <summary>
+            Turn On/Off Raw Request Body Tracking
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IRequestLogger.EnableResponseTracking">
+            <summary>
+            Turn On/Off Tracking of Responses
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IRequestLogger.EnableErrorTracking">
+            <summary>
+            Turn On/Off Tracking of Exceptions
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IRequestLogger.RequiredRoles">
+            <summary>
+            Limit access to /requestlogs service to role
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IRequestLogger.ExcludeRequestDtoTypes">
+            <summary>
+            Don't log requests of these types.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IRequestLogger.HideRequestBodyForRequestDtoTypes">
+            <summary>
+            Don't log request bodys for services with sensitive information.
+            By default Auth and Registration requests are hidden.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRequiresRequestContext">
+            <summary>
+            Implement on services that need access to the RequestContext
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRestDeleteService`1">
+            <summary>
+            If the Service also implements this interface,
+            IRestDeleteService.Delete() will be used instead of IService.Execute() for 
+            EndpointAttributes.HttpDelete requests
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRestGetService`1">
+            <summary>
+            If the Service also implements this interface,
+            IRestGetService.Get() will be used instead of IService.Execute() for 
+            EndpointAttributes.HttpGet requests
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRestPatchService`1">
+            <summary>
+            If the Service also implements this interface,
+            IRestPutService.Patch() will be used instead of IService.Execute() for 
+            EndpointAttributes.HttpPatch requests
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRestPostService`1">
+            <summary>
+            If the Service also implements this interface,
+            IRestPostService.Post() will be used instead of IService.Execute() for 
+            EndpointAttributes.HttpPost requests
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRestPutService`1">
+            <summary>
+            If the Service also implements this interface,
+            IRestPutService.Put() will be used instead of IService.Execute() for 
+            EndpointAttributes.HttpPut requests
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRestService`1">
+            <summary>
+            Utility interface that implements all Rest operations
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IService`1">
+            <summary>
+            Base interface all webservices need to implement.
+            For simplicity this is the only interface you need to implement
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IServiceController">
+            <summary>
+            Responsible for executing the operation within the specified context.
+            </summary>
+            <value>The operation types.</value>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IServiceController.GetRestPathForRequest(System.String,System.String)">
+            <summary>
+            Returns the first matching RestPath
+            </summary>
+            <param name="httpMethod"></param>
+            <param name="pathInfo"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IServiceController.ExecuteMessage``1(ServiceStack.Messaging.IMessage{``0})">
+            <summary>
+            Executes the MQ DTO request.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IServiceController.ExecuteMessage``1(ServiceStack.Messaging.IMessage{``0},ServiceStack.ServiceHost.IRequestContext)">
+            <summary>
+            Executes the MQ DTO request with the supplied requestContext
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IServiceController.Execute(System.Object,ServiceStack.ServiceHost.IRequestContext)">
+            <summary>
+            Executes the DTO request under the supplied requestContext.
+            </summary>
+            <param name="request"></param>
+            <param name="requestContext"></param>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IServiceController.Routes">
+            <summary>
+            Allow the registration of custom routes
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IServiceRoutes">
+            <summary>
+            Allow the registration of user-defined routes for services
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IServiceRoutes.Add``1(System.String)">
+            <summary>
+            	Maps the specified REST path to the specified request DTO.
+            </summary>
+            <typeparam name="TRequest">The type of request DTO to map 
+            	the path to.</typeparam>
+            <param name="restPath">The path to map the request DTO to.
+            	See <see cref="!:RestServiceAttribute.Path">RestServiceAttribute.Path</see>
+            	for details on the correct format.</param>
+            <returns>The same <see cref="T:ServiceStack.ServiceHost.IServiceRoutes"/> instance;
+            	never <see langword="null"/>.</returns>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IServiceRoutes.Add``1(System.String,System.String)">
+            <summary>
+            	Maps the specified REST path to the specified request DTO, and
+            	specifies the HTTP verbs supported by the path.
+            </summary>
+            <typeparam name="TRequest">The type of request DTO to map 
+            	the path to.</typeparam>
+            <param name="restPath">The path to map the request DTO to.
+            	See <see cref="!:RestServiceAttribute.Path">RestServiceAttribute.Path</see>
+            	for details on the correct format.</param>
+            <param name="verbs">
+            	The comma-delimited list of HTTP verbs supported by the path, 
+            	such as "GET,PUT,DELETE".  Specify empty or <see langword="null"/>
+            	to indicate that all verbs are supported.
+            </param>
+            <returns>The same <see cref="T:ServiceStack.ServiceHost.IServiceRoutes"/> instance;
+            	never <see langword="null"/>.</returns>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IServiceRoutes.Add(System.Type,System.String,System.String)">
+            <summary>
+            	Maps the specified REST path to the specified request DTO, 
+            	specifies the HTTP verbs supported by the path, and indicates
+            	the default MIME type of the returned response.
+            </summary>
+            <param name="requestType">
+            	The type of request DTO to map the path to.
+            </param>
+            <param name="restPath">The path to map the request DTO to.
+            	See <see cref="!:RestServiceAttribute.Path">RestServiceAttribute.Path</see>
+            	for details on the correct format.</param>
+            <param name="verbs">
+            	The comma-delimited list of HTTP verbs supported by the path, 
+            	such as "GET,PUT,DELETE".
+            </param>
+            <returns>The same <see cref="T:ServiceStack.ServiceHost.IServiceRoutes"/> instance;
+            	never <see langword="null"/>.</returns>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IServiceRoutes.Add(System.Type,System.String,System.String,System.String,System.String)">
+            <summary>
+            	Maps the specified REST path to the specified request DTO, 
+            	specifies the HTTP verbs supported by the path, and indicates
+            	the default MIME type of the returned response.
+            </summary>
+            <param name="requestType">
+            	The type of request DTO to map the path to.
+            </param>
+            <param name="restPath">The path to map the request DTO to.
+            	See <see cref="!:RestServiceAttribute.Path">RestServiceAttribute.Path</see>
+            	for details on the correct format.</param>
+            <param name="verbs">
+            	The comma-delimited list of HTTP verbs supported by the path, 
+            	such as "GET,PUT,DELETE".
+            </param>
+            <param name="summary">
+                The short summary of what the REST does. 
+            </param>
+            <param name="notes">
+                The longer text to explain the behaviour of the REST. 
+            </param>
+            <returns>The same <see cref="T:ServiceStack.ServiceHost.IServiceRoutes"/> instance;
+            	never <see langword="null"/>.</returns>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.RouteAttribute">
+            <summary>
+            	Used to decorate Request DTO's to associate a RESTful request 
+            	path mapping with a service.  Multiple attributes can be applied to 
+            	each request DTO, to map multiple paths to the service.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.RouteAttribute.#ctor(System.String)">
+            <summary>
+            	<para>Initializes an instance of the <see cref="T:ServiceStack.ServiceHost.RouteAttribute"/> class.</para>
+            </summary>
+            <param name="path">
+            	<para>The path template to map to the request.  See 
+            	<see cref="P:ServiceStack.ServiceHost.RouteAttribute.Path">RouteAttribute.Path</see>
+            	for details on the correct format.</para>
+            </param>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.RouteAttribute.#ctor(System.String,System.String)">
+            <summary>
+            	<para>Initializes an instance of the <see cref="T:ServiceStack.ServiceHost.RouteAttribute"/> class.</para>
+            </summary>
+            <param name="path">
+            	<para>The path template to map to the request.  See 
+            	<see cref="P:ServiceStack.ServiceHost.RouteAttribute.Path">RouteAttribute.Path</see>
+            	for details on the correct format.</para>
+            </param>
+            <param name="verbs">A comma-delimited list of HTTP verbs supported by the 
+            	service.  If unspecified, all verbs are assumed to be supported.</param>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.RouteAttribute.Path">
+            <summary>
+            	Gets or sets the path template to be mapped to the request.
+            </summary>
+            <value>
+            	A <see cref="T:System.String"/> value providing the path mapped to
+            	the request.  Never <see langword="null"/>.
+            </value>
+            <remarks>
+            	<para>Some examples of valid paths are:</para>
+            
+            	<list>
+            		<item>"/Inventory"</item>
+            		<item>"/Inventory/{Category}/{ItemId}"</item>
+            		<item>"/Inventory/{ItemPath*}"</item>
+            	</list>
+            
+            	<para>Variables are specified within "{}"
+            	brackets.  Each variable in the path is mapped to the same-named property 
+            	on the request DTO.  At runtime, ServiceStack will parse the 
+            	request URL, extract the variable values, instantiate the request DTO,
+            	and assign the variable values into the corresponding request properties,
+            	prior to passing the request DTO to the service object for processing.</para>
+            
+            	<para>It is not necessary to specify all request properties as
+            	variables in the path.  For unspecified properties, callers may provide 
+            	values in the query string.  For example: the URL 
+            	"http://services/Inventory?Category=Books&amp;ItemId=12345" causes the same 
+            	request DTO to be processed as "http://services/Inventory/Books/12345", 
+            	provided that the paths "/Inventory" (which supports the first URL) and 
+            	"/Inventory/{Category}/{ItemId}" (which supports the second URL)
+            	are both mapped to the request DTO.</para>
+            
+            	<para>Please note that while it is possible to specify property values
+            	in the query string, it is generally considered to be less RESTful and
+            	less desirable than to specify them as variables in the path.  Using the 
+            	query string to specify property values may also interfere with HTTP
+            	caching.</para>
+            
+            	<para>The final variable in the path may contain a "*" suffix
+            	to grab all remaining segments in the path portion of the request URL and assign
+            	them to a single property on the request DTO.
+            	For example, if the path "/Inventory/{ItemPath*}" is mapped to the request DTO,
+            	then the request URL "http://services/Inventory/Books/12345" will result
+            	in a request DTO whose ItemPath property contains "Books/12345".
+            	You may only specify one such variable in the path, and it must be positioned at
+            	the end of the path.</para>
+            </remarks>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.RouteAttribute.Summary">
+            <summary>
+               Gets or sets short summary of what the route does.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.RouteAttribute.Notes">
+            <summary>
+               Gets or sets longer text to explain the behaviour of the route. 
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.RouteAttribute.Verbs">
+            <summary>
+            	Gets or sets a comma-delimited list of HTTP verbs supported by the service, such as
+            	"GET,PUT,POST,DELETE".
+            </summary>
+            <value>
+            	A <see cref="T:System.String"/> providing a comma-delimited list of HTTP verbs supported
+            	by the service, <see langword="null"/> or empty if all verbs are supported.
+            </value>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.RouteAttribute.TypeId">
+            <summary>
+            Required when using a TypeDescriptor to make it unique
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceInterface.ServiceModel.ErrorResponse">
+            <summary>
+            Generic ResponseStatus for when Response Type can't be inferred.
+            In schemaless formats like JSON, JSV it has the same shape as a typed Response DTO
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceInterface.ServiceModel.IHasResponseStatus">
+            <summary>
+            Contract indication that the Response DTO has a ResponseStatus
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceInterface.ServiceModel.RequestLogEntry">
+            <summary>
+            A log entry added by the IRequestLogger
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.RestServiceAttribute">
+            <summary>
+            	Used to decorate Request DTO's to associate a RESTful request 
+            	path mapping with a service.  Multiple attributes can be applied to 
+            	each request DTO, to map multiple paths to the service.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.RestServiceAttribute.#ctor(System.String)">
+            <summary>
+            	<para>Initializes an instance of the <see cref="T:ServiceStack.ServiceHost.RestServiceAttribute"/> class.</para>
+            </summary>
+            <param name="path">
+            	<para>The path template to map to the request.  See 
+            	<see cref="!:Path">RestServiceAttribute.Path</see>
+            	for details on the correct format.</para>
+            </param>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.RestServiceAttribute.#ctor(System.String,System.String)">
+            <summary>
+            	<para>Initializes an instance of the <see cref="T:ServiceStack.ServiceHost.RestServiceAttribute"/> class.</para>
+            </summary>
+            <param name="path">
+            	<para>The path template to map to the request.  See 
+            	<see cref="!:Path">RestServiceAttribute.Path</see>
+            	for details on the correct format.</para>
+            </param>
+            <param name="verbs">A comma-delimited list of HTTP verbs supported by the 
+            	service.  If unspecified, all verbs are assumed to be supported.</param>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.RestrictAttribute">
+            <summary>
+            Decorate on Request DTO's to alter the accessibility of a service and its visibility on /metadata pages
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.RestrictAttribute.#ctor(ServiceStack.ServiceHost.EndpointAttributes[])">
+            <summary>
+            Restrict access and metadata visibility to any of the specified access scenarios
+            </summary>
+            <value>The restrict access to scenarios.</value>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.RestrictAttribute.#ctor(ServiceStack.ServiceHost.EndpointAttributes[],ServiceStack.ServiceHost.EndpointAttributes[])">
+            <summary>
+            Restrict access and metadata visibility to any of the specified access scenarios
+            </summary>
+            <value>The restrict access to scenarios.</value>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.RestrictAttribute.ToAllowedFlagsSet(ServiceStack.ServiceHost.EndpointAttributes[])">
+            <summary>
+            Returns the allowed set of scenarios based on the user-specified restrictions
+            </summary>
+            <param name="restrictToAny"></param>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.RestrictAttribute.VisibleInternalOnly">
+            <summary>
+            Allow access but hide from metadata to requests from Localhost only
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.RestrictAttribute.VisibleLocalhostOnly">
+            <summary>
+            Allow access but hide from metadata to requests from Localhost and Local Intranet only
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.RestrictAttribute.InternalOnly">
+            <summary>
+            Restrict access and hide from metadata to requests from Localhost and Local Intranet only
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.RestrictAttribute.LocalhostOnly">
+            <summary>
+            Restrict access and hide from metadata to requests from Localhost only
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.RestrictAttribute.AccessTo">
+            <summary>
+            Sets a single access restriction
+            </summary>
+            <value>Restrict Access to.</value>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.RestrictAttribute.AccessibleToAny">
+            <summary>
+            Restrict access to any of the specified access scenarios
+            </summary>
+            <value>Access restrictions</value>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.RestrictAttribute.VisibilityTo">
+            <summary>
+            Sets a single metadata Visibility restriction
+            </summary>
+            <value>Restrict metadata Visibility to.</value>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.RestrictAttribute.VisibleToAny">
+            <summary>
+            Restrict metadata visibility to any of the specified access scenarios
+            </summary>
+            <value>Visibility restrictions</value>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.RestrictExtensions.ToAllowedFlagsSet(ServiceStack.ServiceHost.EndpointAttributes)">
+            <summary>
+            Converts from a User intended restriction to a flag with all the allowed attribute flags set, e.g:
+            
+            If No Network restrictions were specified all Network access types are allowed, e.g:
+                restrict EndpointAttributes.None => ... 111
+            
+            If a Network restriction was specified, only it will be allowed, e.g:
+                restrict EndpointAttributes.LocalSubnet => ... 010
+            
+            The returned Enum will have a flag with all the allowed attributes set
+            </summary>
+            <param name="restrictTo"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.ServiceInterface.ServiceModel.ResponseError">
+            <summary>
+            Error information pertaining to a particular named field.
+            Used for returning multiple field validation errors.s
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus">
+            <summary>
+            Common ResponseStatus class that should be present on all response DTO's
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus"/> class.
+            
+            A response status without an errorcode == success
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus"/> class.
+            
+            A response status with an errorcode == failure
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus.#ctor(System.String,System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus"/> class.
+            
+            A response status with an errorcode == failure
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus.ErrorCode">
+            <summary>
+            Holds the custom ErrorCode enum if provided in ValidationException
+            otherwise will hold the name of the Exception type, e.g. typeof(Exception).Name
+            
+            A value of non-null means the service encountered an error while processing the request.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus.Message">
+            <summary>
+            A human friendly error message
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus.StackTrace">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus.Errors">
+            <summary>
+            For multiple detailed validation errors.
+            Can hold a specific error message for each named field.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Service.IPartialWriter.WritePartialTo(ServiceStack.ServiceHost.IHttpResponse)">
+            <summary>
+            Write a partial content result
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Service.IPartialWriter.IsPartialRequest">
+            <summary>
+            Whether this HttpResult allows Partial Response
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Service.IReplyClient.Send``1(System.Object)">
+            <summary>
+            Sends the specified request.
+            </summary>
+            <param name="request">The request.</param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Translators.TranslateAttribute">
+            <summary>
+            This instructs the generator tool to generate translator methods for the types supplied.
+            A {TypeName}.generated.cs partial class will be generated that contains the methods required
+            to generate to and from that type.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Translators.TranslateExtensionAttribute">
+            <summary>
+            This instructs the generator tool to generate translator extension methods for the types supplied.
+            A {TypeName}.generated.cs static class will be generated that contains the extension methods required
+            to generate to and from that type.
+            
+            The source type is what the type the attribute is decorated on which can only be resolved at runtime.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Translators.TranslateMemberAttribute">
+            <summary>
+            This changes the default behaviour for the 
+            </summary>
+        </member>
+    </members>
+</doc>

+ 3 - 0
servicestack/lib/ServiceStack.Common.3.9.46/lib/sl4/README.txt

@@ -0,0 +1,3 @@
+ServiceStack Client builds for Silverlight.
+
+Due to restrictions in Silverlight only the Async operations are supported.

BIN
servicestack/lib/ServiceStack.Common.3.9.46/lib/sl4/ServiceStack.Common.dll


+ 475 - 0
servicestack/lib/ServiceStack.Common.3.9.46/lib/sl4/ServiceStack.Common.xml

@@ -0,0 +1,475 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>ServiceStack.Common</name>
+    </assembly>
+    <members>
+        <member name="T:ServiceStack.Validation.ValidationError">
+            <summary>
+            The exception which is thrown when a validation error occured.
+            This validation is serialized in a extra clean and human-readable way by ServiceStack.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Validation.ValidationError.ToXml">
+            <summary>
+            Used if we need to serialize this exception to XML
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.Validation.ValidationError.ErrorCode">
+            <summary>
+            Returns the first error code
+            </summary>
+            <value>The error code.</value>
+        </member>
+        <member name="T:ServiceStack.ServiceClient.Web.ServiceClientBase">
+            Need to provide async request options
+            http://msdn.microsoft.com/en-us/library/86wf6409(VS.71).aspx
+        </member>
+        <member name="M:ServiceStack.ServiceClient.Web.ServiceClientBase.SetCredentials(System.String,System.String)">
+            <summary>
+            Sets the username and the password for basic authentication.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.ServiceClient.Web.ServiceClientBase.storeCookies">
+            <summary>
+            Specifies if cookies should be stored
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.ServiceClientBase.HttpWebRequestFilter">
+            <summary>
+            The request filter is called before any request.
+            This request filter is executed globally.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.ServiceClientBase.UserName">
+            <summary>
+            The user name for basic authentication
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.ServiceClientBase.Password">
+            <summary>
+            The password for basic authentication
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.ServiceClientBase.Credentials">
+            <summary>
+            Gets or sets authentication information for the request.
+            Warning: It's recommened to use <see cref="P:ServiceStack.ServiceClient.Web.ServiceClientBase.UserName"/> and <see cref="P:ServiceStack.ServiceClient.Web.ServiceClientBase.Password"/> for basic auth.
+            This property is only used for IIS level authentication.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.ServiceClientBase.AlwaysSendBasicAuthHeader">
+            <summary>
+            Determines if the basic auth header should be sent with every request.
+            By default, the basic auth header is only sent when "401 Unauthorized" is returned.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.ServiceClientBase.LocalHttpWebRequestFilter">
+            <summary>
+            The request filter is called before any request.
+            This request filter only works with the instance where it was set (not global).
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Messaging.IMessageHandlerFactory">
+            <summary>
+            Encapsulates creating a new message handler
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Common.Extensions.IPAddressExtensions">
+            <summary>
+            Useful IPAddressExtensions from: 
+            http://blogs.msdn.com/knom/archive/2008/12/31/ip-address-calculations-with-c-subnetmasks-networks.aspx
+            
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Extensions.IPAddressExtensions.GetAllNetworkInterfaceIpv4Addresses">
+            <summary>
+            Gets the ipv4 addresses from all Network Interfaces that have Subnet masks.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.Extensions.IPAddressExtensions.GetAllNetworkInterfaceIpv6Addresses">
+            <summary>
+            Gets the ipv6 addresses from all Network Interfaces.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Common.Extensions.EnumerableExtensions">
+            <summary>
+            These extensions have a potential to conflict with the LINQ extensions methods so
+            leaving the implmentation in the 'Extensions' sub-namespace to force explicit opt-in
+            </summary>
+        </member>
+        <!-- Badly formed XML comment ignored for member "M:ServiceStack.Common.Utils.AssertUtils.AreNotNull(System.Collections.Generic.IDictionary{System.String,System.Object})" -->
+        <member name="M:ServiceStack.Common.Utils.FuncUtils.TryExec(System.Action)">
+            <summary>
+            Invokes the action provided and returns true if no excpetion was thrown.
+            Otherwise logs the exception and returns false if an exception was thrown.
+            </summary>
+            <param name="action">The action.</param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Messaging.Rcon.PacketCodec">
+            <summary>
+            Contains methods required for encoding and decoding rcon packets.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.PacketCodec.DecodePacket(System.Byte[])">
+            <summary>
+            Decodes a packet.
+            </summary>
+            <param name="packet">The packet.</param>
+            <returns>A packet object.</returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.PacketCodec.DecodeHeader(System.Byte[])">
+            <summary>
+            Decodes the packet header.
+            </summary>
+            <param name="packet"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.PacketCodec.DecodeWords(System.Byte[])">
+            <summary>
+            Decodes words in a packet.
+            </summary>
+            <param name="packet"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.PacketCodec.EncodePacket(System.Boolean,System.Boolean,System.UInt32,System.Byte[][])">
+            <summary>
+            Encodes a packet for transmission to the server.
+            </summary>
+            <param name="fromServer"></param>
+            <param name="isResponse"></param>
+            <param name="id"></param>
+            <param name="words"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.PacketCodec.EncodeHeader(System.Boolean,System.Boolean,System.UInt32)">
+            <summary>
+            Encodes a packet header.
+            </summary>
+            <param name="fromServer"></param>
+            <param name="isResponse"></param>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.PacketCodec.EncodeWords(System.Byte[][])">
+            <summary>
+            Encodes words.
+            </summary>
+            <param name="words"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.Utils.PathUtils.MapProjectPath(System.String)">
+            <summary>
+            Maps the path of a file in the context of a VS project
+            </summary>
+            <param name="relativePath">the relative path</param>
+            <returns>the absolute path</returns>
+            <remarks>Assumes static content is two directories above the /bin/ directory,
+            eg. in a unit test scenario  the assembly would be in /bin/Debug/.</remarks>
+        </member>
+        <member name="M:ServiceStack.Common.Utils.PathUtils.MapAbsolutePath(System.String)">
+            <summary>
+            Maps the path of a file in a self-hosted scenario
+            </summary>
+            <param name="relativePath">the relative path</param>
+            <returns>the absolute path</returns>
+            <remarks>Assumes static content is copied to /bin/ folder with the assemblies</remarks>
+        </member>
+        <member name="M:ServiceStack.Common.Utils.PathUtils.MapHostAbsolutePath(System.String)">
+            <summary>
+            Maps the path of a file in an Asp.Net hosted scenario
+            </summary>
+            <param name="relativePath">the relative path</param>
+            <returns>the absolute path</returns>
+            <remarks>Assumes static content is in the parent folder of the /bin/ directory</remarks>
+        </member>
+        <member name="T:ServiceStack.Validation.ValidationErrorResult">
+            <summary>
+            Encapsulates a validation result.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Validation.ValidationErrorResult.#ctor">
+            <summary>
+            Constructs a new ValidationResult
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Validation.ValidationErrorResult.#ctor(System.Collections.Generic.IList{ServiceStack.Validation.ValidationErrorField})">
+            <summary>
+            Constructs a new ValidationResult
+            </summary>
+            <param name="errors">A list of validation results</param>
+        </member>
+        <member name="M:ServiceStack.Validation.ValidationErrorResult.#ctor(System.Collections.Generic.IList{ServiceStack.Validation.ValidationErrorField},System.String,System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Validation.ValidationErrorResult"/> class.
+            </summary>
+            <param name="errors">The errors.</param>
+            <param name="successCode">The success code.</param>
+            <param name="errorCode">The error code.</param>
+        </member>
+        <member name="P:ServiceStack.Validation.ValidationErrorResult.SuccessCode">
+            <summary>
+            Gets or sets the success code.
+            </summary>
+            <value>The success code.</value>
+        </member>
+        <member name="P:ServiceStack.Validation.ValidationErrorResult.ErrorCode">
+            <summary>
+            Gets or sets the error code.
+            </summary>
+            <value>The error code.</value>
+        </member>
+        <member name="P:ServiceStack.Validation.ValidationErrorResult.SuccessMessage">
+            <summary>
+            Gets or sets the success message.
+            </summary>
+            <value>The success message.</value>
+        </member>
+        <member name="P:ServiceStack.Validation.ValidationErrorResult.ErrorMessage">
+            <summary>
+            Gets or sets the error message.
+            </summary>
+            <value>The error message.</value>
+        </member>
+        <member name="P:ServiceStack.Validation.ValidationErrorResult.Errors">
+            <summary>
+            The errors generated by the validation.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Validation.ValidationErrorResult.IsValid">
+            <summary>
+            Returns True if the validation was successful (errors list is empty).
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Utils.ReflectionUtils.PopulateObject(System.Object)">
+            <summary>
+            Populate an object with Example data.
+            </summary>
+            <param name="obj"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.Utils.ReflectionUtils.PopulateObjectInternal(System.Object,System.Collections.Generic.Dictionary{System.Type,System.Int32})">
+            <summary>
+            Populates the object with example data.
+            </summary>
+            <param name="obj"></param>
+            <param name="recursionInfo">Tracks how deeply nested we are</param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Messaging.MessageHandler`1">
+            <summary>
+            Processes all messages in a Normal and Priority Queue.
+            Expects to be called in 1 thread. i.e. Non Thread-Safe.
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.Messaging.IMessageHandler">
+            <summary>
+            Single threaded message handler that can process all messages
+            of a particular message type.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageHandler.Process(ServiceStack.Messaging.IMessageQueueClient)">
+            <summary>
+            Process all messages pending
+            </summary>
+            <param name="mqClient"></param>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageHandler.GetStats">
+            <summary>
+            Get Current Stats for this Message Handler
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.Messaging.IMessageHandler.MessageType">
+            <summary>
+            The type of the message this handler processes
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.EnumExtensions.ToDescription(System.Enum)">
+            <summary>
+            Gets the textual description of the enum if it has one. e.g.
+            
+            <code>
+            enum UserColors
+            {
+                [Description("Bright Red")]
+                BrightRed
+            }
+            UserColors.BrightRed.ToDescription();
+            </code>
+            </summary>
+            <param name="enum"></param>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.Messaging.Rcon.Packet.FromServer">
+            <summary>
+            True if the packet originated on the server.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Messaging.Rcon.Packet.IsResponse">
+            <summary>
+            True if the packet is a response from a sent packet.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Messaging.Rcon.Packet.Sequence">
+            <summary>
+            Sequence identifier. Unique to the connection.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Messaging.Rcon.Packet.Words">
+            <summary>
+            Words.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Common.UrnId">
+            <summary>
+            Creates a Unified Resource Name (URN) with the following formats:
+            
+            	- urn:{TypeName}:{IdFieldValue}						e.g. urn:UserSession:1
+            	- urn:{TypeName}:{IdFieldName}:{IdFieldValue}		e.g. urn:UserSession:UserId:1			
+            
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Common.Support.AdapterBase">
+            <summary>
+            Common functionality when creating adapters
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Support.AdapterBase.Execute``1(System.Func{``0})">
+            <summary>
+            Executes the specified expression. 
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="action">The action.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.Support.AdapterBase.Execute(System.Action)">
+            <summary>
+            Executes the specified action (for void methods).
+            </summary>
+            <param name="action">The action.</param>
+        </member>
+        <member name="T:ServiceStack.ServiceClient.Web.AsyncServiceClient">
+            Need to provide async request options
+            http://msdn.microsoft.com/en-us/library/86wf6409(VS.71).aspx
+        </member>
+        <member name="F:ServiceStack.ServiceModel.Serialization.DataContractDeserializer.quotas">
+            <summary>
+            Default MaxStringContentLength is 8k, and throws an exception when reached
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.PropertyAccessor`1.TypedGetPropertyFn``1">
+            <summary>
+            Func to get the Strongly-typed field
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.PropertyAccessor`1.ValueTypedGetPropertyFn``1">
+            <summary>
+            Required to cast the return ValueType to an object for caching
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.PropertyAccessor`1.TypedSetPropertyFn``1">
+            <summary>
+            Func to set the Strongly-typed field
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.PropertyAccessor`1.ValueTypesSetPropertyFn``1">
+            <summary>
+            Required to cast the ValueType to an object for caching
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.PropertyAccessor`1.UnTypedSetPropertyFn``1">
+            <summary>
+            Required to cast the ValueType to an object for caching
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Support.LogicFacadeBase.Execute``1(ServiceStack.DesignPatterns.Command.ICommand{``0})">
+            <summary>
+            Executes the specified action.
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="action">The action.</param>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.Common.Support.LogicFacadeBase.CurrentContext">
+            <summary>
+            Gets the current context (or null if none).
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Common.Support.LogicFacadeBase.IsCurrentlyInitializeOnly">
+            <summary>
+            Checks if the current context is set to "initialize only".
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Common.Support.LogicFacadeBase.InitialisationContext.initOptions">
+            <summary>
+            Determines whether this context is initialise only or not
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Support.LogicFacadeBase.InitialisationContext.#ctor(ServiceStack.Common.Support.LogicFacadeBase,ServiceStack.LogicFacade.InitOptions)">
+            <summary>
+            Constructs a new InitialiseOnlyContext
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Support.LogicFacadeBase.InitialisationContext.Dispose">
+            <summary>
+            Call to remove this current context and reveal the previous context (if any).
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Common.Support.LogicFacadeBase.InitialisationContext.InitialisedObject">
+            <summary>
+            Gets or sets the object that has been initialized only.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceModel.Serialization.StringMapTypeDeserializer">
+            <summary>
+            Serializer cache of delegates required to create a type from a string map (e.g. for REST urls)
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Utils.CommandsUtils.ExecuteAsyncCommandExec(System.Collections.Generic.IEnumerable{ServiceStack.DesignPatterns.Command.ICommandExec})">
+            <summary>
+            Provide the an option for the callee to block until all commands are executed
+            </summary>
+            <param name="commands"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Common.Support.InMemoryLogFactory">
+            <summary>
+            Note: InMemoryLog keeps all logs in memory, so don't use it long running exceptions
+            
+            Returns a thread-safe InMemoryLog which you can use while *TESTING*
+            to provide a detailed analysis of your logs.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.StaticAccessors`1.TypedGetPropertyFn``1(System.Reflection.PropertyInfo)">
+            <summary>
+            Func to get the Strongly-typed field
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.StaticAccessors`1.ValueUnTypedGetPropertyFn``1(System.Reflection.PropertyInfo)">
+            <summary>
+            Required to cast the return ValueType to an object for caching
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.StaticAccessors`1.TypedSetPropertyFn``1(System.Reflection.PropertyInfo)">
+            <summary>
+            Func to set the Strongly-typed field
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.StaticAccessors`1.ValueUnTypedSetPropertyFn``1(System.Reflection.PropertyInfo)">
+            <summary>
+            Required to cast the ValueType to an object for caching
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.StaticAccessors`1.UnTypedSetPropertyFn``1(System.Reflection.PropertyInfo)">
+            <summary>
+            Required to cast the ValueType to an object for caching
+            </summary>
+        </member>
+    </members>
+</doc>

BIN
servicestack/lib/ServiceStack.Common.3.9.46/lib/sl4/ServiceStack.Interfaces.dll


+ 1343 - 0
servicestack/lib/ServiceStack.Common.3.9.46/lib/sl4/ServiceStack.Interfaces.xml

@@ -0,0 +1,1343 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>ServiceStack.Interfaces</name>
+    </assembly>
+    <members>
+        <member name="T:ServiceStack.Translators.TranslateAttribute">
+            <summary>
+            This instructs the generator tool to generate translator methods for the types supplied.
+            A {TypeName}.generated.cs partial class will be generated that contains the methods required
+            to generate to and from that type.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceInterface.ServiceModel.ResponseError">
+            <summary>
+            Error information pertaining to a particular named field.
+            Used for returning multiple field validation errors.s
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRestPutService`1">
+            <summary>
+            If the Service also implements this interface,
+            IRestPutService.Put() will be used instead of IService.Execute() for 
+            EndpointAttributes.HttpPut requests
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IHttpResponse">
+            <summary>
+            A thin wrapper around ASP.NET or HttpListener's HttpResponse
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IHttpResponse.Close">
+            <summary>
+            Signal that this response has been handled and no more processing should be done.
+            When used in a request or response filter, no more filters or processing is done on this request.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IHttpResponse.End">
+            <summary>
+            Calls Response.End() on ASP.NET HttpResponse otherwise is an alias for Close().
+            Useful when you want to prevent ASP.NET to provide it's own custom error page.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IHttpResponse.Flush">
+            <summary>
+            Response.Flush() and OutputStream.Flush() seem to have different behaviour in ASP.NET
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResponse.OriginalResponse">
+            <summary>
+            The underlying ASP.NET or HttpListener HttpResponse
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResponse.IsClosed">
+            <summary>
+            Gets a value indicating whether this instance is closed.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisSubscription.SubscribeToChannels(System.String[])">
+            <summary>
+            Subscribe to channels by name
+            </summary>
+            <param name="channels"></param>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisSubscription.SubscribeToChannelsMatching(System.String[])">
+            <summary>
+            Subscribe to channels matching the supplied patterns
+            </summary>
+            <param name="patterns"></param>
+        </member>
+        <member name="P:ServiceStack.Redis.IRedisSubscription.SubscriptionCount">
+            <summary>
+            The number of active subscriptions this client has
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Redis.IRedisSubscription.OnSubscribe">
+            <summary>
+            Registered handler called after client *Subscribes* to each new channel
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Redis.IRedisSubscription.OnMessage">
+            <summary>
+            Registered handler called when each message is received
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Redis.IRedisSubscription.OnUnSubscribe">
+            <summary>
+            Registered handler called when each channel is unsubscribed
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Generic.IRedisList`1">
+            <summary>
+            Wrap the common redis list operations under a IList[string] interface.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Logging.Support.Logging.DebugLogFactory">
+            <summary>
+            Creates a Debug Logger, that logs all messages to: System.Diagnostics.Debug
+            
+            Made public so its testable
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Logging.ILogFactory">
+            <summary>
+            Factory to create ILog instances
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Logging.ILogFactory.GetLogger(System.Type)">
+            <summary>
+            Gets the logger.
+            </summary>
+            <param name="type">The type.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Logging.ILogFactory.GetLogger(System.String)">
+            <summary>
+            Gets the logger.
+            </summary>
+            <param name="typeName">Name of the type.</param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.ServiceInterface.ServiceModel.IHasResponseStatus">
+            <summary>
+            Contract indication that the Response DTO has a ResponseStatus
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Pipeline.IRedisQueueableOperation">
+            <summary>
+            interface to operation that can queue commands
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Messaging.UnRetryableMessagingException">
+            <summary>
+            For messaging exceptions that should by-pass the messaging service's configured
+            retry attempts and store the message straight into the DLQ
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Messaging.MessagingException">
+            <summary>
+            Base Exception for all ServiceStack.Messaging exceptions
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Logging.Support.Logging.ConsoleLogger">
+            <summary>
+            Default logger is to Console.WriteLine
+            
+            Made public so its testable
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Logging.ILog">
+            <summary>
+            Logs a message in a running application
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Debug(System.Object)">
+            <summary>
+            Logs a Debug message.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Debug(System.Object,System.Exception)">
+            <summary>
+            Logs a Debug message and exception.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.DebugFormat(System.String,System.Object[])">
+            <summary>
+            Logs a Debug format message.
+            </summary>
+            <param name="format">The format.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Error(System.Object)">
+            <summary>
+            Logs a Error message.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Error(System.Object,System.Exception)">
+            <summary>
+            Logs a Error message and exception.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.ErrorFormat(System.String,System.Object[])">
+            <summary>
+            Logs a Error format message.
+            </summary>
+            <param name="format">The format.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Fatal(System.Object)">
+            <summary>
+            Logs a Fatal message.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Fatal(System.Object,System.Exception)">
+            <summary>
+            Logs a Fatal message and exception.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.FatalFormat(System.String,System.Object[])">
+            <summary>
+            Logs a Error format message.
+            </summary>
+            <param name="format">The format.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Info(System.Object)">
+            <summary>
+            Logs an Info message and exception.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Info(System.Object,System.Exception)">
+            <summary>
+            Logs an Info message and exception.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.InfoFormat(System.String,System.Object[])">
+            <summary>
+            Logs an Info format message.
+            </summary>
+            <param name="format">The format.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Warn(System.Object)">
+            <summary>
+            Logs a Warning message.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Warn(System.Object,System.Exception)">
+            <summary>
+            Logs a Warning message and exception.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.WarnFormat(System.String,System.Object[])">
+            <summary>
+            Logs a Warning format message.
+            </summary>
+            <param name="format">The format.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="P:ServiceStack.Logging.ILog.IsDebugEnabled">
+            <summary>
+            Gets or sets a value indicating whether this instance is debug enabled.
+            </summary>
+            <value>
+            	<c>true</c> if this instance is debug enabled; otherwise, <c>false</c>.
+            </value>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.ConsoleLogger.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Logging.Support.Logging.DebugLogger"/> class.
+            </summary>
+            <param name="type">The type.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.ConsoleLogger.#ctor(System.Type)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Logging.Support.Logging.DebugLogger"/> class.
+            </summary>
+            <param name="type">The type.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.ConsoleLogger.Log(System.Object,System.Exception)">
+            <summary>
+            Logs the specified message.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.ConsoleLogger.LogFormat(System.Object,System.Object[])">
+            <summary>
+            Logs the format.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.ConsoleLogger.Log(System.Object)">
+            <summary>
+            Logs the specified message.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IService`1">
+            <summary>
+            Base interface all webservices need to implement.
+            For simplicity this is the only interface you need to implement
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResult.StatusCode">
+            <summary>
+            The HTTP Response Status Code
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResult.StatusDescription">
+            <summary>
+            The HTTP Status Description
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResult.ContentType">
+            <summary>
+            The HTTP Response ContentType
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResult.Headers">
+            <summary>
+            Additional HTTP Headers
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResult.Response">
+            <summary>
+            Response DTO
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResult.TemplateName">
+            <summary>
+            A specific template, if not the default (for HTML, Markdown, etc. ContentTypes)
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResult.ResponseFilter">
+            <summary>
+            if not provided, get's injected by ServiceStack
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResult.RequestContext">
+            <summary>
+            Holds the request call context
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IResolver.TryResolve``1">
+            <summary>
+            Resolve a dependency from the AppHost's IOC
+            </summary>
+            <typeparam name="T"></typeparam>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Redis.Pipeline.IRedisPipelineShared">
+            <summary>
+            Pipeline interface shared by typed and non-typed pipelines
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperation">
+            <summary>
+            Interface to operations that allow queued commands to be completed
+            </summary>
+        </member>
+        <member name="T:ServiceStack.LogicFacade.IServiceModelFinder">
+            <summary>
+            The same functionality is on IServiceResolver
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Logging.Support.Logging.ConsoleLogFactory">
+            <summary>
+            Creates a Debug Logger, that logs all messages to: System.Diagnostics.Debug
+            
+            Made public so its testable
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Translators.TranslateExtensionAttribute">
+            <summary>
+            This instructs the generator tool to generate translator extension methods for the types supplied.
+            A {TypeName}.generated.cs static class will be generated that contains the extension methods required
+            to generate to and from that type.
+            
+            The source type is what the type the attribute is decorated on which can only be resolved at runtime.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRestService`1">
+            <summary>
+            Utility interface that implements all Rest operations
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRestGetService`1">
+            <summary>
+            If the Service also implements this interface,
+            IRestGetService.Get() will be used instead of IService.Execute() for 
+            EndpointAttributes.HttpGet requests
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRestPostService`1">
+            <summary>
+            If the Service also implements this interface,
+            IRestPostService.Post() will be used instead of IService.Execute() for 
+            EndpointAttributes.HttpPost requests
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRestDeleteService`1">
+            <summary>
+            If the Service also implements this interface,
+            IRestDeleteService.Delete() will be used instead of IService.Execute() for 
+            EndpointAttributes.HttpDelete requests
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRestPatchService`1">
+            <summary>
+            If the Service also implements this interface,
+            IRestPutService.Patch() will be used instead of IService.Execute() for 
+            EndpointAttributes.HttpPatch requests
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.Redis.Generic.IRedisTypedPipeline`1">
+            <summary>
+            Interface to redis typed pipeline
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Generic.IRedisTypedQueueableOperation`1">
+            <summary>
+            interface to queueable operation using typed redis client
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageQueueClient.Publish(System.String,System.Byte[])">
+            <summary>
+            Publish the specified message into the durable queue @queueName
+            </summary>
+            <param name="queueName"></param>
+            <param name="messageBytes"></param>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageQueueClient.Notify(System.String,System.Byte[])">
+            <summary>
+            Publish the specified message into the transient queue @queueName
+            </summary>
+            <param name="queueName"></param>
+            <param name="messageBytes"></param>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageQueueClient.Get(System.String,System.Nullable{System.TimeSpan})">
+            <summary>
+            Synchronous blocking get.
+            </summary>
+            <param name="queueName"></param>
+            <param name="timeOut"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageQueueClient.GetAsync(System.String)">
+            <summary>
+            Non blocking get message
+            </summary>
+            <param name="queueName"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageQueueClient.WaitForNotifyOnAny(System.String[])">
+            <summary>
+            Blocking wait for notifications on any of the supplied channels
+            </summary>
+            <param name="channelNames"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Logging.LogManager">
+            <summary>
+            Logging API for this library. You can inject your own implementation otherwise
+            will use the DebugLogFactory to write to System.Diagnostics.Debug
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Logging.LogManager.GetLogger(System.Type)">
+            <summary>
+            Gets the logger.
+            </summary>
+            <param name="type">The type.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Logging.LogManager.GetLogger(System.String)">
+            <summary>
+            Gets the logger.
+            </summary>
+            <param name="typeName">Name of the type.</param>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.Logging.LogManager.LogFactory">
+            <summary>
+            Gets or sets the log factory.
+            Use this to override the factory that is used to create loggers
+            </summary>
+            <value>The log factory.</value>
+        </member>
+        <member name="M:ServiceStack.Service.IReplyClient.Send``1(System.Object)">
+            <summary>
+            Sends the specified request.
+            </summary>
+            <param name="request">The request.</param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus">
+            <summary>
+            Common ResponseStatus class that should be present on all response DTO's
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus"/> class.
+            
+            A response status without an errorcode == success
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus"/> class.
+            
+            A response status with an errorcode == failure
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus.#ctor(System.String,System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus"/> class.
+            
+            A response status with an errorcode == failure
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus.ErrorCode">
+            <summary>
+            Holds the custom ErrorCode enum if provided in ValidationException
+            otherwise will hold the name of the Exception type, e.g. typeof(Exception).Name
+            
+            A value of non-null means the service encountered an error while processing the request.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus.Message">
+            <summary>
+            A human friendly error message
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus.StackTrace">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus.Errors">
+            <summary>
+            For multiple detailed validation errors.
+            Can hold a specific error message for each named field.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRequestLogger">
+            <summary>
+            Log every service request
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IRequestLogger.Log(ServiceStack.ServiceHost.IRequestContext,System.Object)">
+            <summary>
+            Log a request
+            </summary>
+            <param name="requestContext"></param>
+            <param name="requestDto"></param>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClientCacheManager.GetClient">
+            <summary>
+            Returns a Read/Write client (The default) using the hosts defined in ReadWriteHosts
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClientCacheManager.GetReadOnlyClient">
+            <summary>
+            Returns a ReadOnly client using the hosts defined in ReadOnlyHosts.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClientCacheManager.GetCacheClient">
+            <summary>
+            Returns a Read/Write ICacheClient (The default) using the hosts defined in ReadWriteHosts
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClientCacheManager.GetReadOnlyCacheClient">
+            <summary>
+            Returns a ReadOnly ICacheClient using the hosts defined in ReadOnlyHosts.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Messaging.Message`1">
+            <summary>
+            Basic implementation of IMessage[T]
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.Logging.Support.Logging.TestLogger">
+            <summary>
+            Tests logger which  stores all log messages in a member list which can be examined later
+            
+            Made public so its testable
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.TestLogger.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Logging.Support.Logging.TestLogger"/> class.
+            </summary>
+            <param name="type">The type.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.TestLogger.#ctor(System.Type)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Logging.Support.Logging.TestLogger"/> class.
+            </summary>
+            <param name="type">The type.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.TestLogger.Log(ServiceStack.Logging.Support.Logging.TestLogger.Levels,System.Object,System.Exception)">
+            <summary>
+            Logs the specified message.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.TestLogger.LogFormat(ServiceStack.Logging.Support.Logging.TestLogger.Levels,System.Object,System.Object[])">
+            <summary>
+            Logs the format.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.TestLogger.Log(ServiceStack.Logging.Support.Logging.TestLogger.Levels,System.Object)">
+            <summary>
+            Logs the specified message.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IServiceRoutes">
+            <summary>
+            Allow the registration of user-defined routes for services
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IServiceRoutes.Add``1(System.String)">
+            <summary>
+            	Maps the specified REST path to the specified request DTO.
+            </summary>
+            <typeparam name="TRequest">The type of request DTO to map 
+            	the path to.</typeparam>
+            <param name="restPath">The path to map the request DTO to.
+            	See <see cref="P:ServiceStack.ServiceHost.RestServiceAttribute.Path">RestServiceAttribute.Path</see>
+            	for details on the correct format.</param>
+            <returns>The same <see cref="T:ServiceStack.ServiceHost.IServiceRoutes"/> instance;
+            	never <see langword="null"/>.</returns>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IServiceRoutes.Add``1(System.String,System.String)">
+            <summary>
+            	Maps the specified REST path to the specified request DTO, and
+            	specifies the HTTP verbs supported by the path.
+            </summary>
+            <typeparam name="TRequest">The type of request DTO to map 
+            	the path to.</typeparam>
+            <param name="restPath">The path to map the request DTO to.
+            	See <see cref="P:ServiceStack.ServiceHost.RestServiceAttribute.Path">RestServiceAttribute.Path</see>
+            	for details on the correct format.</param>
+            <param name="verbs">
+            	The comma-delimited list of HTTP verbs supported by the path, 
+            	such as "GET,PUT,DELETE".  Specify empty or <see langword="null"/>
+            	to indicate that all verbs are supported.
+            </param>
+            <returns>The same <see cref="T:ServiceStack.ServiceHost.IServiceRoutes"/> instance;
+            	never <see langword="null"/>.</returns>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IServiceRoutes.Add``1(System.String,System.String,System.String)">
+            <summary>
+            	Maps the specified REST path to the specified request DTO, 
+            	specifies the HTTP verbs supported by the path, and indicates
+            	the default MIME type of the returned response.
+            </summary>
+            <typeparam name="TRequest">The type of request DTO to map 
+            	the path to.</typeparam>
+            <param name="restPath">The path to map the request DTO to.
+            	See <see cref="P:ServiceStack.ServiceHost.RestServiceAttribute.Path">RestServiceAttribute.Path</see>
+            	for details on the correct format.</param>
+            <param name="verbs">
+            	The comma-delimited list of HTTP verbs supported by the path, 
+            	such as "GET,PUT,DELETE".
+            </param>
+            <param name="defaultContentType">
+            	The default MIME type in which the response object returned to the client
+            	is formatted, if formatting hints are not provided by the client.
+            	Specify <see langword="null"/> or empty to require formatting hints from
+            	the client.
+            </param>
+            <returns>The same <see cref="T:ServiceStack.ServiceHost.IServiceRoutes"/> instance;
+            	never <see langword="null"/>.</returns>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IServiceRoutes.Add(System.Type,System.String,System.String,System.String)">
+            <summary>
+            	Maps the specified REST path to the specified request DTO, 
+            	specifies the HTTP verbs supported by the path, and indicates
+            	the default MIME type of the returned response.
+            </summary>
+            <param name="requestType">
+            	The type of request DTO to map the path to.
+            </param>
+            <param name="restPath">The path to map the request DTO to.
+            	See <see cref="P:ServiceStack.ServiceHost.RestServiceAttribute.Path">RestServiceAttribute.Path</see>
+            	for details on the correct format.</param>
+            <param name="verbs">
+            	The comma-delimited list of HTTP verbs supported by the path, 
+            	such as "GET,PUT,DELETE".
+            </param>
+            <param name="defaultContentType">
+            	The default MIME type in which the response object returned to the client
+            	is formatted, if formatting hints are not provided by the client.
+            	Specify <see langword="null"/> or empty to require formatting hints from
+            	the client.
+            </param>
+            <returns>The same <see cref="T:ServiceStack.ServiceHost.IServiceRoutes"/> instance;
+            	never <see langword="null"/>.</returns>
+        </member>
+        <member name="T:ServiceStack.CacheAccess.IMemcachedClient">
+            <summary>
+            A light interface over a cache client.
+            This interface was inspired by Enyim.Caching.MemcachedClient
+            
+            Only the methods that are intended to be used are required, if you require
+            extra functionality you can uncomment the unused methods below as they have been
+            implemented in DdnMemcachedClient
+            </summary>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.Remove(System.String)">
+            <summary>
+            Removes the specified item from the cache.
+            </summary>
+            <param name="key">The identifier for the item to delete.</param>
+            <returns>
+            true if the item was successfully removed from the cache; false otherwise.
+            </returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.RemoveAll(System.Collections.Generic.IEnumerable{System.String})">
+            <summary>
+            Removes the cache for all the keys provided.
+            </summary>
+            <param name="keys">The keys.</param>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.Get(System.String)">
+            <summary>
+            Retrieves the specified item from the cache.
+            </summary>
+            <param ICTname="key">The identifier for the item to retrieve.</param>
+            <returns>
+            The retrieved item, or <value>null</value> if the key was not found.
+            </returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.Increment(System.String,System.UInt32)">
+            <summary>
+            Increments the value of the specified key by the given amount. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The identifier for the item to increment.</param>
+            <param name="amount">The amount by which the client wants to increase the item.</param>
+            <returns>
+            The new value of the item or -1 if not found.
+            </returns>
+            <remarks>The item must be inserted into the cache before it can be changed. The item must be inserted as a <see cref="T:System.String"/>. The operation only works with <see cref="T:System.UInt32"/> values, so -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.Decrement(System.String,System.UInt32)">
+            <summary>
+            Increments the value of the specified key by the given amount. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The identifier for the item to increment.</param>
+            <param name="amount">The amount by which the client wants to decrease the item.</param>
+            <returns>
+            The new value of the item or -1 if not found.
+            </returns>
+            <remarks>The item must be inserted into the cache before it can be changed. The item must be inserted as a <see cref="T:System.String"/>. The operation only works with <see cref="T:System.UInt32"/> values, so -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.Add(System.String,System.Object)">
+            <summary>
+            Inserts an item into the cache with a cache key to reference its location.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="value">The object to be inserted into the cache.</param>
+            <returns>
+            true if the item was successfully stored in the cache; false otherwise.
+            </returns>
+            <remarks>The item does not expire unless it is removed due memory pressure.</remarks>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.Add(System.String,System.Object,System.DateTime)">
+            <summary>
+            Inserts an item into the cache with a cache key to reference its location.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="value">The object to be inserted into the cache.</param>
+            <param name="expiresAt">The time when the item is invalidated in the cache.</param>
+            <returns>true if the item was successfully stored in the cache; false otherwise.</returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.FlushAll">
+            <summary>
+            Removes all data from the cache.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.GetAll(System.Collections.Generic.IEnumerable{System.String})">
+            <summary>
+            Retrieves multiple items from the cache.
+            </summary>
+            <param name="keys">The list of identifiers for the items to retrieve.</param>
+            <returns>
+            a Dictionary holding all items indexed by their key.
+            </returns>
+        </member>
+        <member name="T:ServiceStack.Redis.IRedisTransactionBase">
+            <summary>
+            Base transaction interface, shared by typed and non-typed transactions
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Generic.IRedisTypedTransaction`1">
+            <summary>
+            Redis transaction for typed client
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.Logging.Support.Logging.DebugLogger">
+            <summary>
+            Default logger is to System.Diagnostics.Debug.WriteLine
+            
+            Made public so its testable
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.DebugLogger.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Logging.Support.Logging.DebugLogger"/> class.
+            </summary>
+            <param name="type">The type.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.DebugLogger.#ctor(System.Type)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Logging.Support.Logging.DebugLogger"/> class.
+            </summary>
+            <param name="type">The type.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.DebugLogger.Log(System.Object,System.Exception)">
+            <summary>
+            Logs the specified message.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.DebugLogger.LogFormat(System.Object,System.Object[])">
+            <summary>
+            Logs the format.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.DebugLogger.Log(System.Object)">
+            <summary>
+            Logs the specified message.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="T:ServiceStack.DataAccess.IBasicPersistenceProvider`1">
+            <summary>
+            For providers that want a cleaner API with a little more perf
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.Configuration.IContainerAdapter">
+            <summary>
+            Allow delegation of dependencies to other IOC's
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Configuration.IContainerAdapter.TryResolve``1">
+            <summary>
+            Resolve Property Dependency
+            </summary>
+            <typeparam name="T"></typeparam>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Configuration.IContainerAdapter.Resolve``1">
+            <summary>
+            Resolve Constructor Dependency
+            </summary>
+            <typeparam name="T"></typeparam>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Messaging.MessageError">
+            <summary>
+            An Error Message Type that can be easily serialized
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Messaging.IMessageService">
+            <summary>
+            Simple definition of an MQ Host
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageService.RegisterHandler``1(System.Func{ServiceStack.Messaging.IMessage{``0},System.Object})">
+            <summary>
+            Register DTOs and hanlders the MQ Host will process
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="processMessageFn"></param>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageService.RegisterHandler``1(System.Func{ServiceStack.Messaging.IMessage{``0},System.Object},System.Action{ServiceStack.Messaging.IMessage{``0},System.Exception})">
+            <summary>
+            Register DTOs and hanlders the MQ Host will process
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="processMessageFn"></param>
+            <param name="processExceptionEx"></param>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageService.GetStats">
+            <summary>
+            Get Total Current Stats for all Message Handlers
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageService.GetStatsDescription">
+            <summary>
+            Get a Stats dump
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageService.Start">
+            <summary>
+            Start the MQ Host if not already started.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageService.Stop">
+            <summary>
+            Stop the MQ Host if not already stopped. 
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Messaging.IMessageService.MessageFactory">
+            <summary>
+            Factory to create consumers and producers that work with this service
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Logging.Support.Logging.NullDebugLogger">
+            <summary>
+            Default logger is to System.Diagnostics.Debug.Print
+            
+            Made public so its testable
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.NullDebugLogger.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Logging.Support.Logging.DebugLogger"/> class.
+            </summary>
+            <param name="type">The type.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.NullDebugLogger.#ctor(System.Type)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Logging.Support.Logging.DebugLogger"/> class.
+            </summary>
+            <param name="type">The type.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.NullDebugLogger.Log(System.Object,System.Exception)">
+            <summary>
+            Logs the specified message.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.NullDebugLogger.LogFormat(System.Object,System.Object[])">
+            <summary>
+            Logs the format.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.NullDebugLogger.Log(System.Object)">
+            <summary>
+            Logs the specified message.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="T:ServiceStack.DataAccess.IPersistenceProviderManager">
+            <summary>
+            Manages a connection to a persistance provider
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Translators.TranslateMemberAttribute">
+            <summary>
+            This changes the default behaviour for the 
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.RestServiceAttribute">
+            <summary>
+            	Used to decorate Request DTO's to associate a RESTful request 
+            	path mapping with a service.  Multiple attributes can be applied to 
+            	each request DTO, to map multiple paths to the service.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.RestServiceAttribute.#ctor(System.String)">
+            <summary>
+            	<para>Initializes an instance of the <see cref="T:ServiceStack.ServiceHost.RestServiceAttribute"/> class.</para>
+            </summary>
+            <param name="path">
+            	<para>The path template to map to the request.  See 
+            	<see cref="P:ServiceStack.ServiceHost.RestServiceAttribute.Path">RestServiceAttribute.Path</see>
+            	for details on the correct format.</para>
+            </param>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.RestServiceAttribute.#ctor(System.String,System.String)">
+            <summary>
+            	<para>Initializes an instance of the <see cref="T:ServiceStack.ServiceHost.RestServiceAttribute"/> class.</para>
+            </summary>
+            <param name="path">
+            	<para>The path template to map to the request.  See 
+            	<see cref="P:ServiceStack.ServiceHost.RestServiceAttribute.Path">RestServiceAttribute.Path</see>
+            	for details on the correct format.</para>
+            </param>
+            <param name="verbs">A comma-delimited list of HTTP verbs supported by the 
+            	service.  If unspecified, all verbs are assumed to be supported.</param>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.RestServiceAttribute.#ctor(System.String,System.String,System.String)">
+            <summary>
+            	<para>Initializes an instance of the <see cref="T:ServiceStack.ServiceHost.RestServiceAttribute"/> class.</para>
+            </summary>
+            <param name="path">
+            	<para>The path template to map to the request.  See 
+            	<see cref="P:ServiceStack.ServiceHost.RestServiceAttribute.Path">RestServiceAttribute.Path</see>
+            	for details on the correct format.</para>
+            </param>
+            <param name="verbs">A comma-delimited list of HTTP verbs supported by the 
+            	service.  If unspecified, all verbs are assumed to be supported.</param>
+            <param name="defaultContentType">The default MIME type in which the response
+            	object returned to the client is formatted, if formatting hints are unspecified
+            	in the URL. Specify <see langword="null"/> or empty to require formatting
+            	hints from the client.</param>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.RestServiceAttribute.Path">
+            <summary>
+            	Gets or sets the path template to be mapped to the request.
+            </summary>
+            <value>
+            	A <see cref="T:System.String"/> value providing the path mapped to
+            	the request.  Never <see langword="null"/>.
+            </value>
+            <remarks>
+            	<para>Some examples of valid paths are:</para>
+            
+            	<list>
+            		<item>"/Inventory"</item>
+            		<item>"/Inventory/{Category}/{ItemId}"</item>
+            		<item>"/Inventory/{ItemPath*}"</item>
+            	</list>
+            
+            	<para>Variables are specified within "{}"
+            	brackets.  Each variable in the path is mapped to the same-named property 
+            	on the request DTO.  At runtime, ServiceStack will parse the 
+            	request URL, extract the variable values, instantiate the request DTO,
+            	and assign the variable values into the corresponding request properties,
+            	prior to passing the request DTO to the service object for processing.</para>
+            
+            	<para>It is not necessary to specify all request properties as
+            	variables in the path.  For unspecified properties, callers may provide 
+            	values in the query string.  For example: the URL 
+            	"http://services/Inventory?Category=Books&amp;ItemId=12345" causes the same 
+            	request DTO to be processed as "http://services/Inventory/Books/12345", 
+            	provided that the paths "/Inventory" (which supports the first URL) and 
+            	"/Inventory/{Category}/{ItemId}" (which supports the second URL)
+            	are both mapped to the request DTO.</para>
+            
+            	<para>Please note that while it is possible to specify property values
+            	in the query string, it is generally considered to be less RESTful and
+            	less desirable than to specify them as variables in the path.  Using the 
+            	query string to specify property values may also interfere with HTTP
+            	caching.</para>
+            
+            	<para>The final variable in the path may contain a "*" suffix
+            	to grab all remaining segments in the path portion of the request URL and assign
+            	them to a single property on the request DTO.
+            	For example, if the path "/Inventory/{ItemPath*}" is mapped to the request DTO,
+            	then the request URL "http://services/Inventory/Books/12345" will result
+            	in a request DTO whose ItemPath property contains "Books/12345".
+            	You may only specify one such variable in the path, and it must be positioned at
+            	the end of the path.</para>
+            </remarks>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.RestServiceAttribute.Verbs">
+            <summary>
+            	Gets or sets a comma-delimited list of HTTP verbs supported by the service, such as
+            	"GET,PUT,POST,DELETE".
+            </summary>
+            <value>
+            	A <see cref="T:System.String"/> providing a comma-delimited list of HTTP verbs supported
+            	by the service, <see langword="null"/> or empty if all verbs are supported.
+            </value>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.RestServiceAttribute.DefaultContentType">
+            <summary>
+            	Gets or sets the default MIME type in which the response 
+            	object returned to the client is formatted, when format hints 
+            	are not provided in the URI.  Some valid examples are such as 
+            	"application/json", or "application/xml".
+            </summary>
+            <value>
+            	A <see cref="T:System.String"/> providing the default MIME type of the response;
+            	<see langword="null"/> or empty if formatting hints are required 
+            	from the client.
+            </value>
+        </member>
+        <member name="T:ServiceStack.Redis.IRedisTransaction">
+            <summary>
+            Interface to redis transaction
+            </summary>
+        </member>
+        <member name="T:ServiceStack.CacheAccess.ICacheClient">
+            <summary>
+            A common interface implementation that is implemeneted by most cache providers
+            </summary>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.Remove(System.String)">
+            <summary>
+            Removes the specified item from the cache.
+            </summary>
+            <param name="key">The identifier for the item to delete.</param>
+            <returns>
+            true if the item was successfully removed from the cache; false otherwise.
+            </returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.RemoveAll(System.Collections.Generic.IEnumerable{System.String})">
+            <summary>
+            Removes the cache for all the keys provided.
+            </summary>
+            <param name="keys">The keys.</param>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.Get``1(System.String)">
+            <summary>
+            Retrieves the specified item from the cache.
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="key">The identifier for the item to retrieve.</param>
+            <returns>
+            The retrieved item, or <value>null</value> if the key was not found.
+            </returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.Increment(System.String,System.UInt32)">
+            <summary>
+            Increments the value of the specified key by the given amount. 
+            The operation is atomic and happens on the server.
+            A non existent value at key starts at 0
+            </summary>
+            <param name="key">The identifier for the item to increment.</param>
+            <param name="amount">The amount by which the client wants to increase the item.</param>
+            <returns>
+            The new value of the item or -1 if not found.
+            </returns>
+            <remarks>The item must be inserted into the cache before it can be changed. The item must be inserted as a <see cref="T:System.String"/>. The operation only works with <see cref="T:System.UInt32"/> values, so -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.Decrement(System.String,System.UInt32)">
+            <summary>
+            Increments the value of the specified key by the given amount. 
+            The operation is atomic and happens on the server.
+            A non existent value at key starts at 0
+            </summary>
+            <param name="key">The identifier for the item to increment.</param>
+            <param name="amount">The amount by which the client wants to decrease the item.</param>
+            <returns>
+            The new value of the item or -1 if not found.
+            </returns>
+            <remarks>The item must be inserted into the cache before it can be changed. The item must be inserted as a <see cref="T:System.String"/>. The operation only works with <see cref="T:System.UInt32"/> values, so -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.Add``1(System.String,``0)">
+            <summary>
+            Adds a new item into the cache at the specified cache key only if the cache is empty.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="value">The object to be inserted into the cache.</param>
+            <returns>
+            true if the item was successfully stored in the cache; false otherwise.
+            </returns>
+            <remarks>The item does not expire unless it is removed due memory pressure.</remarks>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.Set``1(System.String,``0)">
+            <summary>
+            Sets an item into the cache at the cache key specified regardless if it already exists or not.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.Replace``1(System.String,``0)">
+            <summary>
+            Replaces the item at the cachekey specified only if an items exists at the location already. 
+            </summary>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.FlushAll">
+            <summary>
+            Invalidates all data on the cache.
+            </summary>
+        </member>
+        <!-- Badly formed XML comment ignored for member "M:ServiceStack.CacheAccess.ICacheClient.GetAll``1(System.Collections.Generic.IEnumerable{System.String})" -->
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.SetAll``1(System.Collections.Generic.IDictionary{System.String,``0})">
+            <summary>
+            Sets multiple items to the cache. 
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="values">The values.</param>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.ServiceAttribute">
+            <summary>
+            Used to decorate Request DTO's to alter the behaviour of a service.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.ServiceAttribute.RestrictAccessTo">
+            <summary>
+            Sets a single access restriction
+            </summary>
+            <value>The restrict access to.</value>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.ServiceAttribute.RestrictAccessToScenarios">
+            <summary>
+            Set multiple access scenarios
+            </summary>
+            <value>The restrict access to scenarios.</value>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IAsyncService`1">
+            <summary>
+            If the Service also implements this interface,
+            IAsyncService.ExecuteAsync() will be used instead of IService.Execute() for 
+            EndpointAttributes.AsyncOneWay requests
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.Redis.Pipeline.IRedisPipeline">
+            <summary>
+            Interface to redis pipeline
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Logging.Support.Logging.NullLogFactory">
+            <summary>
+            Creates a Debug Logger, that logs all messages to: System.Diagnostics.Debug
+            
+            Made public so its testable
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClientsManager.GetClient">
+            <summary>
+            Returns a Read/Write client (The default) using the hosts defined in ReadWriteHosts
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClientsManager.GetReadOnlyClient">
+            <summary>
+            Returns a ReadOnly client using the hosts defined in ReadOnlyHosts.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClientsManager.GetCacheClient">
+            <summary>
+            Returns a Read/Write ICacheClient (The default) using the hosts defined in ReadWriteHosts
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClientsManager.GetReadOnlyCacheClient">
+            <summary>
+            Returns a ReadOnly ICacheClient using the hosts defined in ReadOnlyHosts.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Messaging.QueueNames`1">
+            <summary>
+            Util static generic class to create unique queue names for types
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.Messaging.QueueNames">
+            <summary>
+            Util class to create unique queue names for runtime types
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IServiceController">
+            <summary>
+            Responsible for executing the operation within the specified context.
+            </summary>
+            <value>The operation types.</value>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IServiceController.GetRestPathForRequest(System.String,System.String)">
+            <summary>
+            Returns the first matching RestPath
+            </summary>
+            <param name="httpMethod"></param>
+            <param name="pathInfo"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IServiceController.Execute(System.Object,ServiceStack.ServiceHost.IRequestContext)">
+            <summary>
+            Executes the DTO request under the supplied requestContext.
+            </summary>
+            <param name="request"></param>
+            <param name="requestContext"></param>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IServiceController.OperationTypes">
+            <summary>
+            Returns a list of operation types available in this service
+            </summary>
+            <value>The operation types.</value>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IServiceController.AllOperationTypes">
+            <summary>
+            Returns a list of ALL operation types available in this service
+            </summary>
+            <value>The operation types.</value>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IServiceController.Routes">
+            <summary>
+            Allow the registration of custom routes
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRequiresRequestContext">
+            <summary>
+            Implement on services that need access to the RequestContext
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Logging.Support.Logging.TestLogFactory">
+            <summary>
+            Creates a test Logger, that stores all log messages in a member list
+            </summary>
+        </member>
+        <member name="T:ServiceStack.CacheAccess.ISession">
+            <summary>
+            A Users Session
+            </summary>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ISession.Set``1(System.String,``0)">
+            <summary>
+            Set a typed value at key
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="key"></param>
+            <param name="value"></param>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ISession.Get``1(System.String)">
+            <summary>
+            Get a typed value at key
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.CacheAccess.ISession.Item(System.String)">
+            <summary>
+            Store any object at key
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+    </members>
+</doc>

+ 3 - 0
servicestack/lib/ServiceStack.Common.3.9.46/lib/sl5/README.txt

@@ -0,0 +1,3 @@
+ServiceStack Client builds for Silverlight.
+
+Due to restrictions in Silverlight only the Async operations are supported.

BIN
servicestack/lib/ServiceStack.Common.3.9.46/lib/sl5/ServiceStack.Common.dll


+ 629 - 0
servicestack/lib/ServiceStack.Common.3.9.46/lib/sl5/ServiceStack.Common.xml

@@ -0,0 +1,629 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>ServiceStack.Common</name>
+    </assembly>
+    <members>
+        <member name="M:ServiceStack.Common.EnumExtensions.ToDescription(System.Enum)">
+            <summary>
+            Gets the textual description of the enum if it has one. e.g.
+            
+            <code>
+            enum UserColors
+            {
+                [Description("Bright Red")]
+                BrightRed
+            }
+            UserColors.BrightRed.ToDescription();
+            </code>
+            </summary>
+            <param name="enum"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Common.Extensions.EnumerableExtensions">
+            <summary>
+            These extensions have a potential to conflict with the LINQ extensions methods so
+            leaving the implmentation in the 'Extensions' sub-namespace to force explicit opt-in
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Common.Extensions.IPAddressExtensions">
+            <summary>
+            Useful IPAddressExtensions from: 
+            http://blogs.msdn.com/knom/archive/2008/12/31/ip-address-calculations-with-c-subnetmasks-networks.aspx
+            
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Extensions.IPAddressExtensions.GetAllNetworkInterfaceIpv4Addresses">
+            <summary>
+            Gets the ipv4 addresses from all Network Interfaces that have Subnet masks.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.Extensions.IPAddressExtensions.GetAllNetworkInterfaceIpv6Addresses">
+            <summary>
+            Gets the ipv6 addresses from all Network Interfaces.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Messaging.IMessageHandler">
+            <summary>
+            Single threaded message handler that can process all messages
+            of a particular message type.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageHandler.Process(ServiceStack.Messaging.IMessageQueueClient)">
+            <summary>
+            Process all messages pending
+            </summary>
+            <param name="mqClient"></param>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageHandler.ProcessQueue(ServiceStack.Messaging.IMessageQueueClient,System.String,System.Func{System.Boolean})">
+            <summary>
+            Process messages from a single queue.
+            </summary>
+            <param name="mqClient"></param>
+            <param name="queueName">The queue to process</param>
+            <param name="doNext">A predicate on whether to continue processing the next message if any</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageHandler.GetStats">
+            <summary>
+            Get Current Stats for this Message Handler
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.Messaging.IMessageHandler.MessageType">
+            <summary>
+            The type of the message this handler processes
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Messaging.IMessageHandlerFactory">
+            <summary>
+            Encapsulates creating a new message handler
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Messaging.MessageHandler`1">
+            <summary>
+            Processes all messages in a Normal and Priority Queue.
+            Expects to be called in 1 thread. i.e. Non Thread-Safe.
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="M:ServiceStack.Messaging.MessageQueueClientFactory.GetMessageAsync(System.String)">
+            <summary>
+            Returns the next message from queueName or null if no message
+            </summary>
+            <param name="queueName"></param>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.Messaging.Rcon.Packet.FromServer">
+            <summary>
+            True if the packet originated on the server.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Messaging.Rcon.Packet.IsResponse">
+            <summary>
+            True if the packet is a response from a sent packet.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Messaging.Rcon.Packet.Sequence">
+            <summary>
+            Sequence identifier. Unique to the connection.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Messaging.Rcon.Packet.Words">
+            <summary>
+            Words.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Messaging.Rcon.PacketCodec">
+            <summary>
+            Contains methods required for encoding and decoding rcon packets.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.PacketCodec.DecodePacket(System.Byte[])">
+            <summary>
+            Decodes a packet.
+            </summary>
+            <param name="packet">The packet.</param>
+            <returns>A packet object.</returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.PacketCodec.DecodeHeader(System.Byte[])">
+            <summary>
+            Decodes the packet header.
+            </summary>
+            <param name="packet"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.PacketCodec.DecodeWords(System.Byte[])">
+            <summary>
+            Decodes words in a packet.
+            </summary>
+            <param name="packet"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.PacketCodec.EncodePacket(System.Boolean,System.Boolean,System.UInt32,System.Byte[][])">
+            <summary>
+            Encodes a packet for transmission to the server.
+            </summary>
+            <param name="fromServer"></param>
+            <param name="isResponse"></param>
+            <param name="id"></param>
+            <param name="words"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.PacketCodec.EncodeHeader(System.Boolean,System.Boolean,System.UInt32)">
+            <summary>
+            Encodes a packet header.
+            </summary>
+            <param name="fromServer"></param>
+            <param name="isResponse"></param>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.Rcon.PacketCodec.EncodeWords(System.Byte[][])">
+            <summary>
+            Encodes words.
+            </summary>
+            <param name="words"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.PropertyAccessor`1.TypedGetPropertyFn``1">
+            <summary>
+            Func to get the Strongly-typed field
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.PropertyAccessor`1.ValueTypedGetPropertyFn``1">
+            <summary>
+            Required to cast the return ValueType to an object for caching
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.PropertyAccessor`1.TypedSetPropertyFn``1">
+            <summary>
+            Func to set the Strongly-typed field
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.PropertyAccessor`1.ValueTypesSetPropertyFn``1">
+            <summary>
+            Required to cast the ValueType to an object for caching
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.PropertyAccessor`1.UnTypedSetPropertyFn``1">
+            <summary>
+            Required to cast the ValueType to an object for caching
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.StaticAccessors`1.TypedGetPropertyFn``1(System.Reflection.PropertyInfo)">
+            <summary>
+            Func to get the Strongly-typed field
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.StaticAccessors`1.ValueUnTypedGetPropertyFn``1(System.Reflection.PropertyInfo)">
+            <summary>
+            Required to cast the return ValueType to an object for caching
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.StaticAccessors`1.TypedSetPropertyFn``1(System.Reflection.PropertyInfo)">
+            <summary>
+            Func to set the Strongly-typed field
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.StaticAccessors`1.ValueUnTypedSetPropertyFn``1(System.Reflection.PropertyInfo)">
+            <summary>
+            Required to cast the ValueType to an object for caching
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Reflection.StaticAccessors`1.UnTypedSetPropertyFn``1(System.Reflection.PropertyInfo)">
+            <summary>
+            Required to cast the ValueType to an object for caching
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceClient.Web.AsyncServiceClient">
+            Need to provide async request options
+            http://msdn.microsoft.com/en-us/library/86wf6409(VS.71).aspx
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.AsyncServiceClient.HttpWebRequestFilter">
+            <summary>
+            The request filter is called before any request.
+            This request filter is executed globally.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.AsyncServiceClient.HttpWebResponseFilter">
+            <summary>
+            The response action is called once the server response is available.
+            It will allow you to access raw response information. 
+            This response action is executed globally.
+            Note that you should NOT consume the response stream as this is handled by ServiceStack
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.AsyncServiceClient.OnAuthenticationRequired">
+            <summary>
+            Called before request resend, when the initial request required authentication
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.AsyncServiceClient.LocalHttpWebRequestFilter">
+            <summary>
+            The request filter is called before any request.
+            This request filter only works with the instance where it was set (not global).
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.AsyncServiceClient.LocalHttpWebResponseFilter">
+            <summary>
+            The response action is called once the server response is available.
+            It will allow you to access raw response information. 
+            Note that you should NOT consume the response stream as this is handled by ServiceStack
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceClient.Web.ServiceClientBase">
+            Need to provide async request options
+            http://msdn.microsoft.com/en-us/library/86wf6409(VS.71).aspx
+        </member>
+        <member name="F:ServiceStack.ServiceClient.Web.ServiceClientBase.httpWebRequestFilter">
+            <summary>
+            The request filter is called before any request.
+            This request filter is executed globally.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.ServiceClient.Web.ServiceClientBase.httpWebResponseFilter">
+            <summary>
+            The response action is called once the server response is available.
+            It will allow you to access raw response information. 
+            This response action is executed globally.
+            Note that you should NOT consume the response stream as this is handled by ServiceStack
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceClient.Web.ServiceClientBase.SetBaseUri(System.String)">
+            <summary>
+            Sets all baseUri properties, using the Format property for the SyncReplyBaseUri and AsyncOneWayBaseUri
+            </summary>
+            <param name="baseUri">Base URI of the service</param>
+        </member>
+        <member name="M:ServiceStack.ServiceClient.Web.ServiceClientBase.SetBaseUri(System.String,System.String)">
+            <summary>
+            Sets all baseUri properties allowing for a temporary override of the Format property
+            </summary>
+            <param name="baseUri">Base URI of the service</param>
+            <param name="format">Override of the Format property for the service</param>
+        </member>
+        <member name="F:ServiceStack.ServiceClient.Web.ServiceClientBase.disableAutoCompression">
+            <summary>
+            Whether to Accept Gzip,Deflate Content-Encoding and to auto decompress responses
+            </summary>
+        </member>
+        <member name="F:ServiceStack.ServiceClient.Web.ServiceClientBase.username">
+            <summary>
+            The user name for basic authentication
+            </summary>
+        </member>
+        <member name="F:ServiceStack.ServiceClient.Web.ServiceClientBase.password">
+            <summary>
+            The password for basic authentication
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceClient.Web.ServiceClientBase.SetCredentials(System.String,System.String)">
+            <summary>
+            Sets the username and the password for basic authentication.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.ServiceClient.Web.ServiceClientBase.alwaysSendBasicAuthHeader">
+            <summary>
+            Determines if the basic auth header should be sent with every request.
+            By default, the basic auth header is only sent when "401 Unauthorized" is returned.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.ServiceClient.Web.ServiceClientBase.storeCookies">
+            <summary>
+            Specifies if cookies should be stored
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.ServiceClientBase.Headers">
+            <summary>
+            Gets the collection of headers to be added to outgoing requests.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.ServiceClientBase.Credentials">
+            <summary>
+            Gets or sets authentication information for the request.
+            Warning: It's recommened to use <see cref="P:ServiceStack.ServiceClient.Web.ServiceClientBase.UserName"/> and <see cref="P:ServiceStack.ServiceClient.Web.ServiceClientBase.Password"/> for basic auth.
+            This property is only used for IIS level authentication.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.ServiceClientBase.onAuthenticationRequired">
+            <summary>
+            Called before request resend, when the initial request required authentication
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.ServiceClientBase.localHttpWebRequestFilter">
+            <summary>
+            The request filter is called before any request.
+            This request filter only works with the instance where it was set (not global).
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceClient.Web.ServiceClientBase.localHttpWebResponseFilter">
+            <summary>
+            The response action is called once the server response is available.
+            It will allow you to access raw response information. 
+            Note that you should NOT consume the response stream as this is handled by ServiceStack
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceClient.Web.UrlExtensions">
+            <summary>
+            Donated by Ivan Korneliuk from his post:
+            http://korneliuk.blogspot.com/2012/08/servicestack-reusing-dtos.html
+            
+            Modified to only allow using routes matching the supplied HTTP Verb
+            </summary>
+        </member>
+        <member name="F:ServiceStack.ServiceClient.Web.WebRequestUtils.ResponseDtoSuffix">
+            <summary>
+            Naming convention for the request's Response DTO
+            </summary>
+        </member>
+        <member name="F:ServiceStack.ServiceModel.Serialization.DataContractDeserializer.Instance">
+            <summary>
+            Default MaxStringContentLength is 8k, and throws an exception when reached
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceModel.Serialization.StringMapTypeDeserializer">
+            <summary>
+            Serializer cache of delegates required to create a type from a string map (e.g. for REST urls)
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Validation.ValidationError">
+            <summary>
+            The exception which is thrown when a validation error occurred.
+            This validation is serialized in a extra clean and human-readable way by ServiceStack.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Validation.ValidationError.ToXml">
+            <summary>
+            Used if we need to serialize this exception to XML
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.Validation.ValidationError.ErrorCode">
+            <summary>
+            Returns the first error code
+            </summary>
+            <value>The error code.</value>
+        </member>
+        <member name="T:ServiceStack.Validation.ValidationErrorResult">
+            <summary>
+            Encapsulates a validation result.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Validation.ValidationErrorResult.#ctor">
+            <summary>
+            Constructs a new ValidationResult
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Validation.ValidationErrorResult.#ctor(System.Collections.Generic.IList{ServiceStack.Validation.ValidationErrorField})">
+            <summary>
+            Constructs a new ValidationResult
+            </summary>
+            <param name="errors">A list of validation results</param>
+        </member>
+        <member name="M:ServiceStack.Validation.ValidationErrorResult.#ctor(System.Collections.Generic.IList{ServiceStack.Validation.ValidationErrorField},System.String,System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Validation.ValidationErrorResult"/> class.
+            </summary>
+            <param name="errors">The errors.</param>
+            <param name="successCode">The success code.</param>
+            <param name="errorCode">The error code.</param>
+        </member>
+        <member name="P:ServiceStack.Validation.ValidationErrorResult.SuccessCode">
+            <summary>
+            Gets or sets the success code.
+            </summary>
+            <value>The success code.</value>
+        </member>
+        <member name="P:ServiceStack.Validation.ValidationErrorResult.ErrorCode">
+            <summary>
+            Gets or sets the error code.
+            </summary>
+            <value>The error code.</value>
+        </member>
+        <member name="P:ServiceStack.Validation.ValidationErrorResult.SuccessMessage">
+            <summary>
+            Gets or sets the success message.
+            </summary>
+            <value>The success message.</value>
+        </member>
+        <member name="P:ServiceStack.Validation.ValidationErrorResult.ErrorMessage">
+            <summary>
+            Gets or sets the error message.
+            </summary>
+            <value>The error message.</value>
+        </member>
+        <member name="P:ServiceStack.Validation.ValidationErrorResult.Errors">
+            <summary>
+            The errors generated by the validation.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Validation.ValidationErrorResult.IsValid">
+            <summary>
+            Returns True if the validation was successful (errors list is empty).
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Common.Support.AdapterBase">
+            <summary>
+            Common functionality when creating adapters
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Support.AdapterBase.Execute``1(System.Func{``0})">
+            <summary>
+            Executes the specified expression. 
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="action">The action.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.Support.AdapterBase.Execute(System.Action)">
+            <summary>
+            Executes the specified action (for void methods).
+            </summary>
+            <param name="action">The action.</param>
+        </member>
+        <member name="T:ServiceStack.Common.Support.InMemoryLogFactory">
+            <summary>
+            Note: InMemoryLog keeps all logs in memory, so don't use it long running exceptions
+            
+            Returns a thread-safe InMemoryLog which you can use while *TESTING*
+            to provide a detailed analysis of your logs.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Support.LogicFacadeBase.Execute``1(ServiceStack.DesignPatterns.Command.ICommand{``0})">
+            <summary>
+            Executes the specified action.
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="action">The action.</param>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.Common.Support.LogicFacadeBase.CurrentContext">
+            <summary>
+            Gets the current context (or null if none).
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Common.Support.LogicFacadeBase.IsCurrentlyInitializeOnly">
+            <summary>
+            Checks if the current context is set to "initialize only".
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Common.Support.LogicFacadeBase.InitialisationContext.initOptions">
+            <summary>
+            Determines whether this context is initialise only or not
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Support.LogicFacadeBase.InitialisationContext.#ctor(ServiceStack.Common.Support.LogicFacadeBase,ServiceStack.LogicFacade.InitOptions)">
+            <summary>
+            Constructs a new InitialiseOnlyContext
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Support.LogicFacadeBase.InitialisationContext.Dispose">
+            <summary>
+            Call to remove this current context and reveal the previous context (if any).
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Common.Support.LogicFacadeBase.InitialisationContext.InitialisedObject">
+            <summary>
+            Gets or sets the object that has been initialized only.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Common.UrnId">
+            <summary>
+            Creates a Unified Resource Name (URN) with the following formats:
+            
+            	- urn:{TypeName}:{IdFieldValue}						e.g. urn:UserSession:1
+            	- urn:{TypeName}:{IdFieldName}:{IdFieldValue}		e.g. urn:UserSession:UserId:1			
+            
+            </summary>
+        </member>
+        <!-- Badly formed XML comment ignored for member "M:ServiceStack.Common.Utils.AssertUtils.AreNotNull(System.Collections.Generic.IDictionary{System.String,System.Object})" -->
+        <member name="M:ServiceStack.Common.Utils.CommandsUtils.ExecuteAsyncCommandExec(System.Collections.Generic.IEnumerable{ServiceStack.DesignPatterns.Command.ICommandExec})">
+            <summary>
+            Provide the an option for the callee to block until all commands are executed
+            </summary>
+            <param name="commands"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.Utils.FuncUtils.TryExec(System.Action)">
+            <summary>
+            Invokes the action provided and returns true if no excpetion was thrown.
+            Otherwise logs the exception and returns false if an exception was thrown.
+            </summary>
+            <param name="action">The action.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.Utils.PathUtils.MapProjectPath(System.String)">
+            <summary>
+            Maps the path of a file in the context of a VS project
+            </summary>
+            <param name="relativePath">the relative path</param>
+            <returns>the absolute path</returns>
+            <remarks>Assumes static content is two directories above the /bin/ directory,
+            eg. in a unit test scenario  the assembly would be in /bin/Debug/.</remarks>
+        </member>
+        <member name="M:ServiceStack.Common.Utils.PathUtils.MapAbsolutePath(System.String)">
+            <summary>
+            Maps the path of a file in a self-hosted scenario
+            </summary>
+            <param name="relativePath">the relative path</param>
+            <returns>the absolute path</returns>
+            <remarks>Assumes static content is copied to /bin/ folder with the assemblies</remarks>
+        </member>
+        <member name="M:ServiceStack.Common.Utils.PathUtils.MapHostAbsolutePath(System.String)">
+            <summary>
+            Maps the path of a file in an Asp.Net hosted scenario
+            </summary>
+            <param name="relativePath">the relative path</param>
+            <returns>the absolute path</returns>
+            <remarks>Assumes static content is in the parent folder of the /bin/ directory</remarks>
+        </member>
+        <member name="M:ServiceStack.Common.Utils.ReflectionUtils.PopulateObject(System.Object)">
+            <summary>
+            Populate an object with Example data.
+            </summary>
+            <param name="obj"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.Utils.ReflectionUtils.PopulateObjectInternal(System.Object,System.Collections.Generic.Dictionary{System.Type,System.Int32})">
+            <summary>
+            Populates the object with example data.
+            </summary>
+            <param name="obj"></param>
+            <param name="recursionInfo">Tracks how deeply nested we are</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.Utils.ResponseStatusUtils.CreateResponseStatus(System.String,System.String,System.Collections.Generic.IEnumerable{ServiceStack.Validation.ValidationErrorField})">
+            <summary>
+            Creates the error response from the values provided.
+            
+            If the errorCode is empty it will use the first validation error code, 
+            if there is none it will throw an error.
+            </summary>
+            <param name="errorCode">The error code.</param>
+            <param name="errorMessage">The error message.</param>
+            <param name="validationErrors">The validation errors.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.Web.HttpResultExtensions.ToDto(System.Object)">
+            <summary>
+            Shortcut to get the ResponseDTO whether it's bare or inside a IHttpResult
+            </summary>
+            <param name="response"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.Web.HttpResultExtensions.ToResponseDto(System.Object)">
+            <summary>
+            Alias of ToDto
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Web.HttpResultExtensions.ToDto``1(System.Object)">
+            <summary>
+            Shortcut to get the ResponseDTO whether it's bare or inside a IHttpResult
+            </summary>
+            <param name="response"></param>
+            <returns>TResponse if found; otherwise null</returns>
+        </member>
+        <member name="M:ServiceStack.Common.Web.HttpResultExtensions.ToResponseDto``1(System.Object)">
+            <summary>
+            Alias of ToDto
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Common.Web.HttpResultExtensions.ToResponseStatus(System.Object)">
+            <summary>
+            Shortcut to get the ResponseStatus whether it's bare or inside a IHttpResult
+            </summary>
+            <param name="response"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Common.Web.HttpResultExtensions.IsErrorResponse(System.Object)">
+            <summary>
+            Whether the response is an IHttpError or Exception
+            </summary>
+            <param name="response"></param>
+            <returns></returns>
+        </member>
+    </members>
+</doc>

BIN
servicestack/lib/ServiceStack.Common.3.9.46/lib/sl5/ServiceStack.Interfaces.dll


+ 1400 - 0
servicestack/lib/ServiceStack.Common.3.9.46/lib/sl5/ServiceStack.Interfaces.xml

@@ -0,0 +1,1400 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>ServiceStack.Interfaces</name>
+    </assembly>
+    <members>
+        <member name="T:ServiceStack.CacheAccess.ICacheClient">
+            <summary>
+            A common interface implementation that is implemeneted by most cache providers
+            </summary>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.Remove(System.String)">
+            <summary>
+            Removes the specified item from the cache.
+            </summary>
+            <param name="key">The identifier for the item to delete.</param>
+            <returns>
+            true if the item was successfully removed from the cache; false otherwise.
+            </returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.RemoveAll(System.Collections.Generic.IEnumerable{System.String})">
+            <summary>
+            Removes the cache for all the keys provided.
+            </summary>
+            <param name="keys">The keys.</param>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.Get``1(System.String)">
+            <summary>
+            Retrieves the specified item from the cache.
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="key">The identifier for the item to retrieve.</param>
+            <returns>
+            The retrieved item, or <value>null</value> if the key was not found.
+            </returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.Increment(System.String,System.UInt32)">
+            <summary>
+            Increments the value of the specified key by the given amount. 
+            The operation is atomic and happens on the server.
+            A non existent value at key starts at 0
+            </summary>
+            <param name="key">The identifier for the item to increment.</param>
+            <param name="amount">The amount by which the client wants to increase the item.</param>
+            <returns>
+            The new value of the item or -1 if not found.
+            </returns>
+            <remarks>The item must be inserted into the cache before it can be changed. The item must be inserted as a <see cref="T:System.String"/>. The operation only works with <see cref="T:System.UInt32"/> values, so -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.Decrement(System.String,System.UInt32)">
+            <summary>
+            Increments the value of the specified key by the given amount. 
+            The operation is atomic and happens on the server.
+            A non existent value at key starts at 0
+            </summary>
+            <param name="key">The identifier for the item to increment.</param>
+            <param name="amount">The amount by which the client wants to decrease the item.</param>
+            <returns>
+            The new value of the item or -1 if not found.
+            </returns>
+            <remarks>The item must be inserted into the cache before it can be changed. The item must be inserted as a <see cref="T:System.String"/>. The operation only works with <see cref="T:System.UInt32"/> values, so -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.Add``1(System.String,``0)">
+            <summary>
+            Adds a new item into the cache at the specified cache key only if the cache is empty.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="value">The object to be inserted into the cache.</param>
+            <returns>
+            true if the item was successfully stored in the cache; false otherwise.
+            </returns>
+            <remarks>The item does not expire unless it is removed due memory pressure.</remarks>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.Set``1(System.String,``0)">
+            <summary>
+            Sets an item into the cache at the cache key specified regardless if it already exists or not.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.Replace``1(System.String,``0)">
+            <summary>
+            Replaces the item at the cachekey specified only if an items exists at the location already. 
+            </summary>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.FlushAll">
+            <summary>
+            Invalidates all data on the cache.
+            </summary>
+        </member>
+        <!-- Badly formed XML comment ignored for member "M:ServiceStack.CacheAccess.ICacheClient.GetAll``1(System.Collections.Generic.IEnumerable{System.String})" -->
+        <member name="M:ServiceStack.CacheAccess.ICacheClient.SetAll``1(System.Collections.Generic.IDictionary{System.String,``0})">
+            <summary>
+            Sets multiple items to the cache. 
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="values">The values.</param>
+        </member>
+        <member name="T:ServiceStack.CacheAccess.IMemcachedClient">
+            <summary>
+            A light interface over a cache client.
+            This interface was inspired by Enyim.Caching.MemcachedClient
+            
+            Only the methods that are intended to be used are required, if you require
+            extra functionality you can uncomment the unused methods below as they have been
+            implemented in DdnMemcachedClient
+            </summary>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.Remove(System.String)">
+            <summary>
+            Removes the specified item from the cache.
+            </summary>
+            <param name="key">The identifier for the item to delete.</param>
+            <returns>
+            true if the item was successfully removed from the cache; false otherwise.
+            </returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.RemoveAll(System.Collections.Generic.IEnumerable{System.String})">
+            <summary>
+            Removes the cache for all the keys provided.
+            </summary>
+            <param name="keys">The keys.</param>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.Get(System.String)">
+            <summary>
+            Retrieves the specified item from the cache.
+            </summary>
+            <param ICTname="key">The identifier for the item to retrieve.</param>
+            <returns>
+            The retrieved item, or <value>null</value> if the key was not found.
+            </returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.Increment(System.String,System.UInt32)">
+            <summary>
+            Increments the value of the specified key by the given amount. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The identifier for the item to increment.</param>
+            <param name="amount">The amount by which the client wants to increase the item.</param>
+            <returns>
+            The new value of the item or -1 if not found.
+            </returns>
+            <remarks>The item must be inserted into the cache before it can be changed. The item must be inserted as a <see cref="T:System.String"/>. The operation only works with <see cref="T:System.UInt32"/> values, so -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.Decrement(System.String,System.UInt32)">
+            <summary>
+            Increments the value of the specified key by the given amount. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The identifier for the item to increment.</param>
+            <param name="amount">The amount by which the client wants to decrease the item.</param>
+            <returns>
+            The new value of the item or -1 if not found.
+            </returns>
+            <remarks>The item must be inserted into the cache before it can be changed. The item must be inserted as a <see cref="T:System.String"/>. The operation only works with <see cref="T:System.UInt32"/> values, so -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.Add(System.String,System.Object)">
+            <summary>
+            Inserts an item into the cache with a cache key to reference its location.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="value">The object to be inserted into the cache.</param>
+            <returns>
+            true if the item was successfully stored in the cache; false otherwise.
+            </returns>
+            <remarks>The item does not expire unless it is removed due memory pressure.</remarks>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.Add(System.String,System.Object,System.DateTime)">
+            <summary>
+            Inserts an item into the cache with a cache key to reference its location.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="value">The object to be inserted into the cache.</param>
+            <param name="expiresAt">The time when the item is invalidated in the cache.</param>
+            <returns>true if the item was successfully stored in the cache; false otherwise.</returns>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.FlushAll">
+            <summary>
+            Removes all data from the cache.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.IMemcachedClient.GetAll(System.Collections.Generic.IEnumerable{System.String})">
+            <summary>
+            Retrieves multiple items from the cache.
+            </summary>
+            <param name="keys">The list of identifiers for the items to retrieve.</param>
+            <returns>
+            a Dictionary holding all items indexed by their key.
+            </returns>
+        </member>
+        <member name="T:ServiceStack.CacheAccess.ISession">
+            <summary>
+            A Users Session
+            </summary>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ISession.Set``1(System.String,``0)">
+            <summary>
+            Set a typed value at key
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="key"></param>
+            <param name="value"></param>
+        </member>
+        <member name="M:ServiceStack.CacheAccess.ISession.Get``1(System.String)">
+            <summary>
+            Get a typed value at key
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.CacheAccess.ISession.Item(System.String)">
+            <summary>
+            Store any object at key
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Configuration.IContainerAdapter">
+            <summary>
+            Allow delegation of dependencies to other IOC's
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Configuration.IContainerAdapter.TryResolve``1">
+            <summary>
+            Resolve Property Dependency
+            </summary>
+            <typeparam name="T"></typeparam>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Configuration.IContainerAdapter.Resolve``1">
+            <summary>
+            Resolve Constructor Dependency
+            </summary>
+            <typeparam name="T"></typeparam>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.DataAccess.IBasicPersistenceProvider`1">
+            <summary>
+            For providers that want a cleaner API with a little more perf
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.DataAccess.IPersistenceProviderManager">
+            <summary>
+            Manages a connection to a persistance provider
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Logging.ILog">
+            <summary>
+            Logs a message in a running application
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Debug(System.Object)">
+            <summary>
+            Logs a Debug message.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Debug(System.Object,System.Exception)">
+            <summary>
+            Logs a Debug message and exception.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.DebugFormat(System.String,System.Object[])">
+            <summary>
+            Logs a Debug format message.
+            </summary>
+            <param name="format">The format.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Error(System.Object)">
+            <summary>
+            Logs a Error message.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Error(System.Object,System.Exception)">
+            <summary>
+            Logs a Error message and exception.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.ErrorFormat(System.String,System.Object[])">
+            <summary>
+            Logs a Error format message.
+            </summary>
+            <param name="format">The format.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Fatal(System.Object)">
+            <summary>
+            Logs a Fatal message.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Fatal(System.Object,System.Exception)">
+            <summary>
+            Logs a Fatal message and exception.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.FatalFormat(System.String,System.Object[])">
+            <summary>
+            Logs a Error format message.
+            </summary>
+            <param name="format">The format.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Info(System.Object)">
+            <summary>
+            Logs an Info message and exception.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Info(System.Object,System.Exception)">
+            <summary>
+            Logs an Info message and exception.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.InfoFormat(System.String,System.Object[])">
+            <summary>
+            Logs an Info format message.
+            </summary>
+            <param name="format">The format.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Warn(System.Object)">
+            <summary>
+            Logs a Warning message.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.Warn(System.Object,System.Exception)">
+            <summary>
+            Logs a Warning message and exception.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.ILog.WarnFormat(System.String,System.Object[])">
+            <summary>
+            Logs a Warning format message.
+            </summary>
+            <param name="format">The format.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="P:ServiceStack.Logging.ILog.IsDebugEnabled">
+            <summary>
+            Gets or sets a value indicating whether this instance is debug enabled.
+            </summary>
+            <value>
+            	<c>true</c> if this instance is debug enabled; otherwise, <c>false</c>.
+            </value>
+        </member>
+        <member name="T:ServiceStack.Logging.ILogFactory">
+            <summary>
+            Factory to create ILog instances
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Logging.ILogFactory.GetLogger(System.Type)">
+            <summary>
+            Gets the logger.
+            </summary>
+            <param name="type">The type.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Logging.ILogFactory.GetLogger(System.String)">
+            <summary>
+            Gets the logger.
+            </summary>
+            <param name="typeName">Name of the type.</param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Logging.LogManager">
+            <summary>
+            Logging API for this library. You can inject your own implementation otherwise
+            will use the DebugLogFactory to write to System.Diagnostics.Debug
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Logging.LogManager.GetLogger(System.Type)">
+            <summary>
+            Gets the logger.
+            </summary>
+            <param name="type">The type.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Logging.LogManager.GetLogger(System.String)">
+            <summary>
+            Gets the logger.
+            </summary>
+            <param name="typeName">Name of the type.</param>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.Logging.LogManager.LogFactory">
+            <summary>
+            Gets or sets the log factory.
+            Use this to override the factory that is used to create loggers
+            </summary>
+            <value>The log factory.</value>
+        </member>
+        <member name="T:ServiceStack.Logging.Support.Logging.ConsoleLogFactory">
+            <summary>
+            Creates a Console Logger, that logs all messages to: System.Console
+            
+            Made public so its testable
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Logging.Support.Logging.ConsoleLogger">
+            <summary>
+            Default logger is to Console.WriteLine
+            
+            Made public so its testable
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.ConsoleLogger.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Logging.Support.Logging.DebugLogger"/> class.
+            </summary>
+            <param name="type">The type.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.ConsoleLogger.#ctor(System.Type)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Logging.Support.Logging.DebugLogger"/> class.
+            </summary>
+            <param name="type">The type.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.ConsoleLogger.Log(System.Object,System.Exception)">
+            <summary>
+            Logs the specified message.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.ConsoleLogger.LogFormat(System.Object,System.Object[])">
+            <summary>
+            Logs the format.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.ConsoleLogger.Log(System.Object)">
+            <summary>
+            Logs the specified message.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="T:ServiceStack.Logging.Support.Logging.DebugLogFactory">
+            <summary>
+            Creates a Debug Logger, that logs all messages to: System.Diagnostics.Debug
+            
+            Made public so its testable
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Logging.Support.Logging.DebugLogger">
+            <summary>
+            Default logger is to System.Diagnostics.Debug.WriteLine
+            
+            Made public so its testable
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.DebugLogger.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Logging.Support.Logging.DebugLogger"/> class.
+            </summary>
+            <param name="type">The type.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.DebugLogger.#ctor(System.Type)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Logging.Support.Logging.DebugLogger"/> class.
+            </summary>
+            <param name="type">The type.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.DebugLogger.Log(System.Object,System.Exception)">
+            <summary>
+            Logs the specified message.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.DebugLogger.LogFormat(System.Object,System.Object[])">
+            <summary>
+            Logs the format.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.DebugLogger.Log(System.Object)">
+            <summary>
+            Logs the specified message.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="T:ServiceStack.Logging.Support.Logging.NullDebugLogger">
+            <summary>
+            Default logger is to System.Diagnostics.Debug.Print
+            
+            Made public so its testable
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.NullDebugLogger.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Logging.Support.Logging.DebugLogger"/> class.
+            </summary>
+            <param name="type">The type.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.NullDebugLogger.#ctor(System.Type)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Logging.Support.Logging.DebugLogger"/> class.
+            </summary>
+            <param name="type">The type.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.NullDebugLogger.Log(System.Object,System.Exception)">
+            <summary>
+            Logs the specified message.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.NullDebugLogger.LogFormat(System.Object,System.Object[])">
+            <summary>
+            Logs the format.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.NullDebugLogger.Log(System.Object)">
+            <summary>
+            Logs the specified message.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="T:ServiceStack.Logging.Support.Logging.NullLogFactory">
+            <summary>
+            Creates a Debug Logger, that logs all messages to: System.Diagnostics.Debug
+            
+            Made public so its testable
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Logging.Support.Logging.TestLogFactory">
+            <summary>
+            Creates a test Logger, that stores all log messages in a member list
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Logging.Support.Logging.TestLogger">
+            <summary>
+            Tests logger which  stores all log messages in a member list which can be examined later
+            
+            Made public so its testable
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.TestLogger.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Logging.Support.Logging.TestLogger"/> class.
+            </summary>
+            <param name="type">The type.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.TestLogger.#ctor(System.Type)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Logging.Support.Logging.TestLogger"/> class.
+            </summary>
+            <param name="type">The type.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.TestLogger.Log(ServiceStack.Logging.Support.Logging.TestLogger.Levels,System.Object,System.Exception)">
+            <summary>
+            Logs the specified message.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="exception">The exception.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.TestLogger.LogFormat(ServiceStack.Logging.Support.Logging.TestLogger.Levels,System.Object,System.Object[])">
+            <summary>
+            Logs the format.
+            </summary>
+            <param name="message">The message.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:ServiceStack.Logging.Support.Logging.TestLogger.Log(ServiceStack.Logging.Support.Logging.TestLogger.Levels,System.Object)">
+            <summary>
+            Logs the specified message.
+            </summary>
+            <param name="message">The message.</param>
+        </member>
+        <member name="T:ServiceStack.LogicFacade.IServiceModelFinder">
+            <summary>
+            The same functionality is on IServiceResolver
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageQueueClient.Publish(System.String,System.Byte[])">
+            <summary>
+            Publish the specified message into the durable queue @queueName
+            </summary>
+            <param name="queueName"></param>
+            <param name="messageBytes"></param>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageQueueClient.Notify(System.String,System.Byte[])">
+            <summary>
+            Publish the specified message into the transient queue @queueName
+            </summary>
+            <param name="queueName"></param>
+            <param name="messageBytes"></param>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageQueueClient.Get(System.String,System.Nullable{System.TimeSpan})">
+            <summary>
+            Synchronous blocking get.
+            </summary>
+            <param name="queueName"></param>
+            <param name="timeOut"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageQueueClient.GetAsync(System.String)">
+            <summary>
+            Non blocking get message
+            </summary>
+            <param name="queueName"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageQueueClient.WaitForNotifyOnAny(System.String[])">
+            <summary>
+            Blocking wait for notifications on any of the supplied channels
+            </summary>
+            <param name="channelNames"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Messaging.IMessageService">
+            <summary>
+            Simple definition of an MQ Host
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageService.RegisterHandler``1(System.Func{ServiceStack.Messaging.IMessage{``0},System.Object})">
+            <summary>
+            Register DTOs and hanlders the MQ Host will process
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="processMessageFn"></param>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageService.RegisterHandler``1(System.Func{ServiceStack.Messaging.IMessage{``0},System.Object},System.Action{ServiceStack.Messaging.IMessage{``0},System.Exception})">
+            <summary>
+            Register DTOs and hanlders the MQ Host will process
+            </summary>
+            <typeparam name="T"></typeparam>
+            <param name="processMessageFn"></param>
+            <param name="processExceptionEx"></param>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageService.GetStats">
+            <summary>
+            Get Total Current Stats for all Message Handlers
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageService.GetStatus">
+            <summary>
+            Get the status of the service. Potential Statuses: Disposed, Stopped, Stopping, Starting, Started
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageService.GetStatsDescription">
+            <summary>
+            Get a Stats dump
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageService.Start">
+            <summary>
+            Start the MQ Host if not already started.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Messaging.IMessageService.Stop">
+            <summary>
+            Stop the MQ Host if not already stopped. 
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Messaging.IMessageService.MessageFactory">
+            <summary>
+            Factory to create consumers and producers that work with this service
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Messaging.MessageError">
+            <summary>
+            An Error Message Type that can be easily serialized
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Messaging.Message`1">
+            <summary>
+            Basic implementation of IMessage[T]
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.Messaging.MessagingException">
+            <summary>
+            Base Exception for all ServiceStack.Messaging exceptions
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Messaging.QueueNames`1">
+            <summary>
+            Util static generic class to create unique queue names for types
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.Messaging.QueueNames">
+            <summary>
+            Util class to create unique queue names for runtime types
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Messaging.UnRetryableMessagingException">
+            <summary>
+            For messaging exceptions that should by-pass the messaging service's configured
+            retry attempts and store the message straight into the DLQ
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Generic.IRedisList`1">
+            <summary>
+            Wrap the common redis list operations under a IList[string] interface.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Generic.IRedisTypedTransaction`1">
+            <summary>
+            Redis transaction for typed client
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.Redis.Generic.IRedisTypedQueueableOperation`1">
+            <summary>
+            interface to queueable operation using typed redis client
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.Redis.Generic.IRedisTypedPipeline`1">
+            <summary>
+            Interface to redis typed pipeline
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Pipeline.IRedisPipelineShared">
+            <summary>
+            Pipeline interface shared by typed and non-typed pipelines
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Pipeline.IRedisQueueCompletableOperation">
+            <summary>
+            Interface to operations that allow queued commands to be completed
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClient.GetTypedClient``1">
+            <summary>
+            Returns a high-level typed client API
+            Shorter Alias is As&lt;T&gt;();
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClient.As``1">
+            <summary>
+            Returns a high-level typed client API
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClientCacheManager.GetClient">
+            <summary>
+            Returns a Read/Write client (The default) using the hosts defined in ReadWriteHosts
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClientCacheManager.GetReadOnlyClient">
+            <summary>
+            Returns a ReadOnly client using the hosts defined in ReadOnlyHosts.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClientCacheManager.GetCacheClient">
+            <summary>
+            Returns a Read/Write ICacheClient (The default) using the hosts defined in ReadWriteHosts
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClientCacheManager.GetReadOnlyCacheClient">
+            <summary>
+            Returns a ReadOnly ICacheClient using the hosts defined in ReadOnlyHosts.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClientsManager.GetClient">
+            <summary>
+            Returns a Read/Write client (The default) using the hosts defined in ReadWriteHosts
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClientsManager.GetReadOnlyClient">
+            <summary>
+            Returns a ReadOnly client using the hosts defined in ReadOnlyHosts.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClientsManager.GetCacheClient">
+            <summary>
+            Returns a Read/Write ICacheClient (The default) using the hosts defined in ReadWriteHosts
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisClientsManager.GetReadOnlyCacheClient">
+            <summary>
+            Returns a ReadOnly ICacheClient using the hosts defined in ReadOnlyHosts.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisSubscription.SubscribeToChannels(System.String[])">
+            <summary>
+            Subscribe to channels by name
+            </summary>
+            <param name="channels"></param>
+        </member>
+        <member name="M:ServiceStack.Redis.IRedisSubscription.SubscribeToChannelsMatching(System.String[])">
+            <summary>
+            Subscribe to channels matching the supplied patterns
+            </summary>
+            <param name="patterns"></param>
+        </member>
+        <member name="P:ServiceStack.Redis.IRedisSubscription.SubscriptionCount">
+            <summary>
+            The number of active subscriptions this client has
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Redis.IRedisSubscription.OnSubscribe">
+            <summary>
+            Registered handler called after client *Subscribes* to each new channel
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Redis.IRedisSubscription.OnMessage">
+            <summary>
+            Registered handler called when each message is received
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Redis.IRedisSubscription.OnUnSubscribe">
+            <summary>
+            Registered handler called when each channel is unsubscribed
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.IRedisTransaction">
+            <summary>
+            Interface to redis transaction
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.IRedisTransactionBase">
+            <summary>
+            Base transaction interface, shared by typed and non-typed transactions
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Pipeline.IRedisQueueableOperation">
+            <summary>
+            interface to operation that can queue commands
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Pipeline.IRedisPipeline">
+            <summary>
+            Interface to redis pipeline
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IAsyncService`1">
+            <summary>
+            If the Service also implements this interface,
+            IAsyncService.ExecuteAsync() will be used instead of IService.Execute() for 
+            EndpointAttributes.AsyncOneWay requests
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResult.Status">
+            <summary>
+            The HTTP Response Status
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResult.StatusCode">
+            <summary>
+            The HTTP Response Status Code
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResult.StatusDescription">
+            <summary>
+            The HTTP Status Description
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResult.ContentType">
+            <summary>
+            The HTTP Response ContentType
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResult.Headers">
+            <summary>
+            Additional HTTP Headers
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResult.Response">
+            <summary>
+            Response DTO
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResult.ResponseFilter">
+            <summary>
+            if not provided, get's injected by ServiceStack
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResult.RequestContext">
+            <summary>
+            Holds the request call context
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IHttpResponse">
+            <summary>
+            A thin wrapper around ASP.NET or HttpListener's HttpResponse
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IHttpResponse.Close">
+            <summary>
+            Signal that this response has been handled and no more processing should be done.
+            When used in a request or response filter, no more filters or processing is done on this request.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IHttpResponse.End">
+            <summary>
+            Calls Response.End() on ASP.NET HttpResponse otherwise is an alias for Close().
+            Useful when you want to prevent ASP.NET to provide it's own custom error page.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IHttpResponse.Flush">
+            <summary>
+            Response.Flush() and OutputStream.Flush() seem to have different behaviour in ASP.NET
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResponse.OriginalResponse">
+            <summary>
+            The underlying ASP.NET or HttpListener HttpResponse
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IHttpResponse.IsClosed">
+            <summary>
+            Gets a value indicating whether this instance is closed.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRequestLogger">
+            <summary>
+            Log every service request
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IRequestLogger.Log(ServiceStack.ServiceHost.IRequestContext,System.Object,System.Object,System.TimeSpan)">
+            <summary>
+            Log a request
+            </summary>
+            <param name="requestContext">The RequestContext</param>
+            <param name="requestDto">Request DTO</param>
+            <param name="response">Response DTO or Exception</param>
+            <param name="elapsed">How long did the Request take</param>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IRequestLogger.GetLatestLogs(System.Nullable{System.Int32})">
+            <summary>
+            View the most recent logs
+            </summary>
+            <param name="take"></param>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IRequestLogger.EnableSessionTracking">
+            <summary>
+            Turn On/Off Session Tracking
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IRequestLogger.EnableRequestBodyTracking">
+            <summary>
+            Turn On/Off Raw Request Body Tracking
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IRequestLogger.EnableResponseTracking">
+            <summary>
+            Turn On/Off Tracking of Responses
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IRequestLogger.EnableErrorTracking">
+            <summary>
+            Turn On/Off Tracking of Exceptions
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IRequestLogger.RequiredRoles">
+            <summary>
+            Limit access to /requestlogs service to role
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IRequestLogger.ExcludeRequestDtoTypes">
+            <summary>
+            Don't log requests of these types.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IRequestLogger.HideRequestBodyForRequestDtoTypes">
+            <summary>
+            Don't log request bodys for services with sensitive information.
+            By default Auth and Registration requests are hidden.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRequiresRequestContext">
+            <summary>
+            Implement on services that need access to the RequestContext
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRestDeleteService`1">
+            <summary>
+            If the Service also implements this interface,
+            IRestDeleteService.Delete() will be used instead of IService.Execute() for 
+            EndpointAttributes.HttpDelete requests
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRestGetService`1">
+            <summary>
+            If the Service also implements this interface,
+            IRestGetService.Get() will be used instead of IService.Execute() for 
+            EndpointAttributes.HttpGet requests
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRestPatchService`1">
+            <summary>
+            If the Service also implements this interface,
+            IRestPutService.Patch() will be used instead of IService.Execute() for 
+            EndpointAttributes.HttpPatch requests
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRestPostService`1">
+            <summary>
+            If the Service also implements this interface,
+            IRestPostService.Post() will be used instead of IService.Execute() for 
+            EndpointAttributes.HttpPost requests
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRestPutService`1">
+            <summary>
+            If the Service also implements this interface,
+            IRestPutService.Put() will be used instead of IService.Execute() for 
+            EndpointAttributes.HttpPut requests
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IRestService`1">
+            <summary>
+            Utility interface that implements all Rest operations
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IService">
+            <summary>
+            Marker interfaces
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IServiceController">
+            <summary>
+            Responsible for executing the operation within the specified context.
+            </summary>
+            <value>The operation types.</value>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IServiceController.GetRestPathForRequest(System.String,System.String)">
+            <summary>
+            Returns the first matching RestPath
+            </summary>
+            <param name="httpMethod"></param>
+            <param name="pathInfo"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IServiceController.ExecuteMessage``1(ServiceStack.Messaging.IMessage{``0})">
+            <summary>
+            Executes the MQ DTO request.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IServiceController.ExecuteMessage``1(ServiceStack.Messaging.IMessage{``0},ServiceStack.ServiceHost.IRequestContext)">
+            <summary>
+            Executes the MQ DTO request with the supplied requestContext
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IServiceController.Execute(System.Object,ServiceStack.ServiceHost.IRequestContext)">
+            <summary>
+            Executes the DTO request under the supplied requestContext.
+            </summary>
+            <param name="request"></param>
+            <param name="requestContext"></param>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.IServiceController.Routes">
+            <summary>
+            Allow the registration of custom routes
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.IServiceRoutes">
+            <summary>
+            Allow the registration of user-defined routes for services
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IServiceRoutes.Add``1(System.String)">
+            <summary>
+            	Maps the specified REST path to the specified request DTO.
+            </summary>
+            <typeparam name="TRequest">The type of request DTO to map 
+            	the path to.</typeparam>
+            <param name="restPath">The path to map the request DTO to.
+            	See <see cref="!:RestServiceAttribute.Path">RestServiceAttribute.Path</see>
+            	for details on the correct format.</param>
+            <returns>The same <see cref="T:ServiceStack.ServiceHost.IServiceRoutes"/> instance;
+            	never <see langword="null"/>.</returns>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IServiceRoutes.Add``1(System.String,System.String)">
+            <summary>
+            	Maps the specified REST path to the specified request DTO, and
+            	specifies the HTTP verbs supported by the path.
+            </summary>
+            <typeparam name="TRequest">The type of request DTO to map 
+            	the path to.</typeparam>
+            <param name="restPath">The path to map the request DTO to.
+            	See <see cref="!:RestServiceAttribute.Path">RestServiceAttribute.Path</see>
+            	for details on the correct format.</param>
+            <param name="verbs">
+            	The comma-delimited list of HTTP verbs supported by the path, 
+            	such as "GET,PUT,DELETE".  Specify empty or <see langword="null"/>
+            	to indicate that all verbs are supported.
+            </param>
+            <returns>The same <see cref="T:ServiceStack.ServiceHost.IServiceRoutes"/> instance;
+            	never <see langword="null"/>.</returns>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IServiceRoutes.Add(System.Type,System.String,System.String)">
+            <summary>
+            	Maps the specified REST path to the specified request DTO, 
+            	specifies the HTTP verbs supported by the path, and indicates
+            	the default MIME type of the returned response.
+            </summary>
+            <param name="requestType">
+            	The type of request DTO to map the path to.
+            </param>
+            <param name="restPath">The path to map the request DTO to.
+            	See <see cref="!:RestServiceAttribute.Path">RestServiceAttribute.Path</see>
+            	for details on the correct format.</param>
+            <param name="verbs">
+            	The comma-delimited list of HTTP verbs supported by the path, 
+            	such as "GET,PUT,DELETE".
+            </param>
+            <returns>The same <see cref="T:ServiceStack.ServiceHost.IServiceRoutes"/> instance;
+            	never <see langword="null"/>.</returns>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.IServiceRoutes.Add(System.Type,System.String,System.String,System.String,System.String)">
+            <summary>
+            	Maps the specified REST path to the specified request DTO, 
+            	specifies the HTTP verbs supported by the path, and indicates
+            	the default MIME type of the returned response.
+            </summary>
+            <param name="requestType">
+            	The type of request DTO to map the path to.
+            </param>
+            <param name="restPath">The path to map the request DTO to.
+            	See <see cref="!:RestServiceAttribute.Path">RestServiceAttribute.Path</see>
+            	for details on the correct format.</param>
+            <param name="verbs">
+            	The comma-delimited list of HTTP verbs supported by the path, 
+            	such as "GET,PUT,DELETE".
+            </param>
+            <param name="summary">
+                The short summary of what the REST does. 
+            </param>
+            <param name="notes">
+                The longer text to explain the behaviour of the REST. 
+            </param>
+            <returns>The same <see cref="T:ServiceStack.ServiceHost.IServiceRoutes"/> instance;
+            	never <see langword="null"/>.</returns>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.RestServiceAttribute">
+            <summary>
+            	Used to decorate Request DTO's to associate a RESTful request 
+            	path mapping with a service.  Multiple attributes can be applied to 
+            	each request DTO, to map multiple paths to the service.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceHost.RouteAttribute">
+            <summary>
+            	Used to decorate Request DTO's to associate a RESTful request 
+            	path mapping with a service.  Multiple attributes can be applied to 
+            	each request DTO, to map multiple paths to the service.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.RouteAttribute.#ctor(System.String)">
+            <summary>
+            	<para>Initializes an instance of the <see cref="T:ServiceStack.ServiceHost.RouteAttribute"/> class.</para>
+            </summary>
+            <param name="path">
+            	<para>The path template to map to the request.  See 
+            	<see cref="P:ServiceStack.ServiceHost.RouteAttribute.Path">RouteAttribute.Path</see>
+            	for details on the correct format.</para>
+            </param>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.RouteAttribute.#ctor(System.String,System.String)">
+            <summary>
+            	<para>Initializes an instance of the <see cref="T:ServiceStack.ServiceHost.RouteAttribute"/> class.</para>
+            </summary>
+            <param name="path">
+            	<para>The path template to map to the request.  See 
+            	<see cref="P:ServiceStack.ServiceHost.RouteAttribute.Path">RouteAttribute.Path</see>
+            	for details on the correct format.</para>
+            </param>
+            <param name="verbs">A comma-delimited list of HTTP verbs supported by the 
+            	service.  If unspecified, all verbs are assumed to be supported.</param>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.RouteAttribute.Path">
+            <summary>
+            	Gets or sets the path template to be mapped to the request.
+            </summary>
+            <value>
+            	A <see cref="T:System.String"/> value providing the path mapped to
+            	the request.  Never <see langword="null"/>.
+            </value>
+            <remarks>
+            	<para>Some examples of valid paths are:</para>
+            
+            	<list>
+            		<item>"/Inventory"</item>
+            		<item>"/Inventory/{Category}/{ItemId}"</item>
+            		<item>"/Inventory/{ItemPath*}"</item>
+            	</list>
+            
+            	<para>Variables are specified within "{}"
+            	brackets.  Each variable in the path is mapped to the same-named property 
+            	on the request DTO.  At runtime, ServiceStack will parse the 
+            	request URL, extract the variable values, instantiate the request DTO,
+            	and assign the variable values into the corresponding request properties,
+            	prior to passing the request DTO to the service object for processing.</para>
+            
+            	<para>It is not necessary to specify all request properties as
+            	variables in the path.  For unspecified properties, callers may provide 
+            	values in the query string.  For example: the URL 
+            	"http://services/Inventory?Category=Books&amp;ItemId=12345" causes the same 
+            	request DTO to be processed as "http://services/Inventory/Books/12345", 
+            	provided that the paths "/Inventory" (which supports the first URL) and 
+            	"/Inventory/{Category}/{ItemId}" (which supports the second URL)
+            	are both mapped to the request DTO.</para>
+            
+            	<para>Please note that while it is possible to specify property values
+            	in the query string, it is generally considered to be less RESTful and
+            	less desirable than to specify them as variables in the path.  Using the 
+            	query string to specify property values may also interfere with HTTP
+            	caching.</para>
+            
+            	<para>The final variable in the path may contain a "*" suffix
+            	to grab all remaining segments in the path portion of the request URL and assign
+            	them to a single property on the request DTO.
+            	For example, if the path "/Inventory/{ItemPath*}" is mapped to the request DTO,
+            	then the request URL "http://services/Inventory/Books/12345" will result
+            	in a request DTO whose ItemPath property contains "Books/12345".
+            	You may only specify one such variable in the path, and it must be positioned at
+            	the end of the path.</para>
+            </remarks>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.RouteAttribute.Summary">
+            <summary>
+               Gets or sets short summary of what the route does.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.RouteAttribute.Notes">
+            <summary>
+               Gets or sets longer text to explain the behaviour of the route. 
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.RouteAttribute.Verbs">
+            <summary>
+            	Gets or sets a comma-delimited list of HTTP verbs supported by the service, such as
+            	"GET,PUT,POST,DELETE".
+            </summary>
+            <value>
+            	A <see cref="T:System.String"/> providing a comma-delimited list of HTTP verbs supported
+            	by the service, <see langword="null"/> or empty if all verbs are supported.
+            </value>
+        </member>
+        <member name="P:ServiceStack.ServiceHost.RouteAttribute.TypeId">
+            <summary>
+            Required when using a TypeDescriptor to make it unique
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.RestServiceAttribute.#ctor(System.String)">
+            <summary>
+            	<para>Initializes an instance of the <see cref="T:ServiceStack.ServiceHost.RestServiceAttribute"/> class.</para>
+            </summary>
+            <param name="path">
+            	<para>The path template to map to the request.  See 
+            	<see cref="!:Path">RestServiceAttribute.Path</see>
+            	for details on the correct format.</para>
+            </param>
+        </member>
+        <member name="M:ServiceStack.ServiceHost.RestServiceAttribute.#ctor(System.String,System.String)">
+            <summary>
+            	<para>Initializes an instance of the <see cref="T:ServiceStack.ServiceHost.RestServiceAttribute"/> class.</para>
+            </summary>
+            <param name="path">
+            	<para>The path template to map to the request.  See 
+            	<see cref="!:Path">RestServiceAttribute.Path</see>
+            	for details on the correct format.</para>
+            </param>
+            <param name="verbs">A comma-delimited list of HTTP verbs supported by the 
+            	service.  If unspecified, all verbs are assumed to be supported.</param>
+        </member>
+        <member name="T:ServiceStack.ServiceInterface.ServiceModel.ErrorResponse">
+            <summary>
+            Generic ResponseStatus for when Response Type can't be inferred.
+            In schemaless formats like JSON, JSV it has the same shape as a typed Response DTO
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceInterface.ServiceModel.IHasResponseStatus">
+            <summary>
+            Contract indication that the Response DTO has a ResponseStatus
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceInterface.ServiceModel.RequestLogEntry">
+            <summary>
+            A log entry added by the IRequestLogger
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceInterface.ServiceModel.ResponseError">
+            <summary>
+            Error information pertaining to a particular named field.
+            Used for returning multiple field validation errors.s
+            </summary>
+        </member>
+        <member name="T:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus">
+            <summary>
+            Common ResponseStatus class that should be present on all response DTO's
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus"/> class.
+            
+            A response status without an errorcode == success
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus"/> class.
+            
+            A response status with an errorcode == failure
+            </summary>
+        </member>
+        <member name="M:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus.#ctor(System.String,System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus"/> class.
+            
+            A response status with an errorcode == failure
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus.ErrorCode">
+            <summary>
+            Holds the custom ErrorCode enum if provided in ValidationException
+            otherwise will hold the name of the Exception type, e.g. typeof(Exception).Name
+            
+            A value of non-null means the service encountered an error while processing the request.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus.Message">
+            <summary>
+            A human friendly error message
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus.StackTrace">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="P:ServiceStack.ServiceInterface.ServiceModel.ResponseStatus.Errors">
+            <summary>
+            For multiple detailed validation errors.
+            Can hold a specific error message for each named field.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Service.IReplyClient.Send``1(System.Object)">
+            <summary>
+            Sends the specified request.
+            </summary>
+            <param name="request">The request.</param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Translators.TranslateAttribute">
+            <summary>
+            This instructs the generator tool to generate translator methods for the types supplied.
+            A {TypeName}.generated.cs partial class will be generated that contains the methods required
+            to generate to and from that type.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Translators.TranslateExtensionAttribute">
+            <summary>
+            This instructs the generator tool to generate translator extension methods for the types supplied.
+            A {TypeName}.generated.cs static class will be generated that contains the extension methods required
+            to generate to and from that type.
+            
+            The source type is what the type the attribute is decorated on which can only be resolved at runtime.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Translators.TranslateMemberAttribute">
+            <summary>
+            This changes the default behaviour for the 
+            </summary>
+        </member>
+    </members>
+</doc>

BIN
servicestack/lib/ServiceStack.OrmLite.MySql.3.9.45/ServiceStack.OrmLite.MySql.3.9.45.nupkg


+ 24 - 0
servicestack/lib/ServiceStack.OrmLite.MySql.3.9.45/ServiceStack.OrmLite.MySql.3.9.45.nuspec

@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
+  <metadata>
+    <id>ServiceStack.OrmLite.MySql</id>
+    <version>3.9.45</version>
+    <title>OrmLite.MySQL - Fast, code-first, config-free Poco ORM</title>
+    <authors>Demis Bellot,  Thomas Grassauer</authors>
+    <owners>Demis Bellot,  Thomas Grassauer</owners>
+    <licenseUrl>https://github.com/ServiceStack/ServiceStack.OrmLite/blob/master/LICENSE</licenseUrl>
+    <projectUrl>https://github.com/ServiceStack/ServiceStack.OrmLite</projectUrl>
+    <iconUrl>http://www.servicestack.net/logo-100x100.png</iconUrl>
+    <requireLicenseAcceptance>false</requireLicenseAcceptance>
+    <description>Light, simple and fast convention-based code-first POCO ORM for MySQL. 
+		Support for Creating and Dropping Table Schemas from POCOs, Complex Property types transparently stored in schemaless text blobs in MySQL.</description>
+    <releaseNotes />
+    <copyright>ServiceStack 2013 and contributors</copyright>
+    <language>en-US</language>
+    <tags>MySql OrmLite POCO Code-First Orm Schema-less Blobs</tags>
+    <dependencies>
+      <dependency id="MySql.Data" />
+      <dependency id="ServiceStack.Common" />
+    </dependencies>
+  </metadata>
+</package>

BIN
servicestack/lib/ServiceStack.OrmLite.MySql.3.9.45/lib/ServiceStack.OrmLite.MySql.dll


BIN
servicestack/lib/ServiceStack.OrmLite.MySql.3.9.45/lib/ServiceStack.OrmLite.MySql.pdb


BIN
servicestack/lib/ServiceStack.OrmLite.MySql.3.9.45/lib/ServiceStack.OrmLite.dll


BIN
servicestack/lib/ServiceStack.OrmLite.MySql.3.9.45/lib/ServiceStack.OrmLite.pdb


BIN
servicestack/lib/ServiceStack.OrmLite.SqlServer.3.9.45/ServiceStack.OrmLite.SqlServer.3.9.45.nupkg


+ 22 - 0
servicestack/lib/ServiceStack.OrmLite.SqlServer.3.9.45/ServiceStack.OrmLite.SqlServer.3.9.45.nuspec

@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
+  <metadata>
+    <id>ServiceStack.OrmLite.SqlServer</id>
+    <version>3.9.45</version>
+    <title>OrmLite.SqlServer - Fast, code-first, config-free Poco ORM</title>
+    <authors>Demis Bellot</authors>
+    <owners>Demis Bellot</owners>
+    <licenseUrl>https://github.com/ServiceStack/ServiceStack.OrmLite/blob/master/LICENSE</licenseUrl>
+    <projectUrl>https://github.com/ServiceStack/ServiceStack.OrmLite</projectUrl>
+    <iconUrl>http://www.servicestack.net/logo-100x100.png</iconUrl>
+    <requireLicenseAcceptance>false</requireLicenseAcceptance>
+    <description>Light, simple and fast convention-based code-first POCO ORM for Sql Server.
+		Support for Creating and Dropping Table Schemas from POCOs, Complex Property types transparently stored in schemaless text blobs in SQLServer.</description>
+    <copyright>ServiceStack 2013 and contributors</copyright>
+    <language>en-US</language>
+    <tags>SQLServer SQL Server OrmLite POCO Code-First Orm Schema-less Blobs</tags>
+    <dependencies>
+      <dependency id="ServiceStack.Common" />
+    </dependencies>
+  </metadata>
+</package>

BIN
servicestack/lib/ServiceStack.OrmLite.SqlServer.3.9.45/lib/ServiceStack.OrmLite.SqlServer.dll


BIN
servicestack/lib/ServiceStack.OrmLite.SqlServer.3.9.45/lib/ServiceStack.OrmLite.SqlServer.pdb


BIN
servicestack/lib/ServiceStack.OrmLite.SqlServer.3.9.45/lib/ServiceStack.OrmLite.dll


BIN
servicestack/lib/ServiceStack.OrmLite.SqlServer.3.9.45/lib/ServiceStack.OrmLite.pdb


BIN
servicestack/lib/ServiceStack.Redis.3.9.45/ServiceStack.Redis.3.9.45.nupkg


+ 22 - 0
servicestack/lib/ServiceStack.Redis.3.9.45/ServiceStack.Redis.3.9.45.nuspec

@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
+  <metadata>
+    <id>ServiceStack.Redis</id>
+    <version>3.9.45</version>
+    <title>C# Redis client for the Redis NoSQL DB</title>
+    <authors>Demis Bellot</authors>
+    <owners>Demis Bellot</owners>
+    <licenseUrl>https://github.com/ServiceStack/ServiceStack.Redis/blob/master/LICENSE</licenseUrl>
+    <projectUrl>https://github.com/ServiceStack/ServiceStack.Redis</projectUrl>
+    <iconUrl>http://www.servicestack.net/logo-100x100.png</iconUrl>
+    <requireLicenseAcceptance>false</requireLicenseAcceptance>
+    <description>C# Redis Client for the worlds fastest distributed NoSQL datastore. Byte[], String and POCO Typed clients.
+		Thread-Safe Basic and Pooled client managers included.</description>
+    <copyright>ServiceStack 2013 and contributors</copyright>
+    <language>en-US</language>
+    <tags>Redis NoSQL Client Distributed Cache PubSub Messaging Transactions</tags>
+    <dependencies>
+      <dependency id="ServiceStack.Common" />
+    </dependencies>
+  </metadata>
+</package>

+ 1355 - 0
servicestack/lib/ServiceStack.Redis.3.9.45/lib/net35/ServiceStack.Redis.XML

@@ -0,0 +1,1355 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>ServiceStack.Redis</name>
+    </assembly>
+    <members>
+        <member name="T:ServiceStack.Redis.BasicRedisClientManager">
+            <summary>
+            Provides thread-safe retrievel of redis clients since each client is a new one.
+            Allows the configuration of different ReadWrite and ReadOnly hosts
+            </summary>
+            <summary>
+            BasicRedisClientManager for ICacheClient
+            
+            For more interoperabilty I'm also implementing the ICacheClient on
+            this cache client manager which has the affect of calling 
+            GetCacheClient() for all write operations and GetReadOnlyCacheClient() 
+            for the read ones.
+            
+            This works well for master-slave replication scenarios where you have 
+            1 master that replicates to multiple read slaves.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.BasicRedisClientManager.#ctor(System.Collections.Generic.IEnumerable{System.String},System.Collections.Generic.IEnumerable{System.String})">
+            <summary>
+            Hosts can be an IP Address or Hostname in the format: host[:port]
+            e.g. 127.0.0.1:6379
+            default is: localhost:6379
+            </summary>
+            <param name="readWriteHosts">The write hosts.</param>
+            <param name="readOnlyHosts">The read hosts.</param>
+        </member>
+        <member name="M:ServiceStack.Redis.BasicRedisClientManager.GetClient">
+            <summary>
+            Returns a Read/Write client (The default) using the hosts defined in ReadWriteHosts
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.BasicRedisClientManager.GetReadOnlyClient">
+            <summary>
+            Returns a ReadOnly client using the hosts defined in ReadOnlyHosts.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.Redis.BasicRedisClientManager.NamespacePrefix">
+            <summary>
+            Gets or sets object key prefix.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.BufferPool">
+            <summary>
+            Courtesy of @marcgravell
+            http://code.google.com/p/protobuf-net/source/browse/trunk/protobuf-net/BufferPool.cs
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Generic.QueuedRedisTypedCommand`1">
+            <summary>
+            A complete redis command, with method to send command, receive response, and run callback on success or failure
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Generic.RedisTypedClient`1">
+            <summary>
+            Allows you to get Redis value operations to operate against POCO types.
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="M:ServiceStack.Redis.Generic.RedisTypedClient`1.#ctor(ServiceStack.Redis.RedisClient)">
+            <summary>
+            Use this to share the same redis connection with another
+            </summary>
+            <param name="client">The client.</param>
+        </member>
+        <member name="T:ServiceStack.Redis.RedisTypedPipeline`1">
+            <summary>
+            Pipeline for redis typed client
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.Redis.Generic.RedisTypedCommandQueue`1">
+            <summary>
+            Queue of commands for redis typed client
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.Redis.RedisQueueCompletableOperation">
+            <summary>
+            Redis operation (transaction/pipeline) that allows queued commands to be completed
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Messaging.RedisMqHost">
+            <summary>
+            Creates an MQ Host that processes all messages on a single background thread. 
+            i.e. If you register 3 handlers it will only create 1 background thread.
+            
+            The same background thread that listens to the Redis MQ Subscription for new messages 
+            also cycles through each registered handler processing all pending messages one-at-a-time:
+            first in the message PriorityQ, then in the normal message InQ.
+            
+            The Start/Stop methods are idempotent i.e. It's safe to call them repeatedly on multiple threads 
+            and the Redis MQ Host will only have Started/Stopped once.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Redis.Messaging.RedisMqHost.ReplyClientFactory">
+            <summary>
+            Inject your own Reply Client Factory to handle custom Message.ReplyTo urls.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Messaging.RedisMqServer">
+            <summary>
+            Creates a Redis MQ Server that processes each message on its own background thread.
+            i.e. if you register 3 handlers it will create 7 background threads:
+              - 1 listening to the Redis MQ Subscription, getting notified of each new message
+              - 3x1 Normal InQ for each message handler
+              - 3x1 PriorityQ for each message handler
+            
+            When RedisMqServer Starts it creates a background thread subscribed to the Redis MQ Topic that
+            listens for new incoming messages. It also starts 2 background threads for each message type:
+             - 1 for processing the services Priority Queue and 1 processing the services normal Inbox Queue.
+            
+            Priority Queue's can be enabled on a message-per-message basis by specifying types in the 
+            OnlyEnablePriortyQueuesForTypes property. The DisableAllPriorityQueues property disables all Queues.
+            
+            The Start/Stop methods are idempotent i.e. It's safe to call them repeatedly on multiple threads 
+            and the Redis MQ Server will only have Started or Stopped once.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Redis.Messaging.RedisMqServer.RequestFilter">
+            <summary>
+            Execute global transformation or custom logic before a request is processed.
+            Must be thread-safe.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Redis.Messaging.RedisMqServer.ResponseFilter">
+            <summary>
+            Execute global transformation or custom logic on the response.
+            Must be thread-safe.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Redis.Messaging.RedisMqServer.ErrorHandler">
+            <summary>
+            Execute global error handler logic. Must be thread-safe.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Redis.Messaging.RedisMqServer.OnlyEnablePriortyQueuesForTypes">
+            <summary>
+            If you only want to enable priority queue handlers (and threads) for specific msg types
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Redis.Messaging.RedisMqServer.DisableAllPriorityQueues">
+            <summary>
+            Don't listen on any Priority Queues
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.RedisClientManagerCacheClient.Dispose">
+            <summary>
+            Ignore dispose on RedisClientsManager, which should be registered as a singleton
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.RedisClientsManagerExtensions">
+            <summary>
+            Useful wrapper IRedisClientsManager to cut down the boiler plat of most IRedisClient access
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Pipeline.QueuedRedisCommand">
+            <summary>
+            A complete redis command, with method to send command, receive response, and run callback on success or failure
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.RedisCommand">
+            <summary>
+            Redis command that does not get queued
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.RedisClient">
+            <summary>
+            The client wraps the native redis operations into a more readable c# API.
+            
+            Where possible these operations are also exposed in common c# interfaces, 
+            e.g. RedisClient.Lists => IList[string]
+            	 RedisClient.Sets => ICollection[string]
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.RedisNativeClient">
+            <summary>
+            This class contains all the common operations for the RedisClient.
+            The client contains a 1:1 mapping of c# methods to redis operations of the same name.
+            
+            Not threadsafe use a pooled manager
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.RedisNativeClient.Exec">
+            <summary>
+            Requires custom result parsing
+            </summary>
+            <returns>Number of results</returns>
+        </member>
+        <member name="M:ServiceStack.Redis.RedisNativeClient.SendCommand(System.Byte[][])">
+            <summary>
+            Command to set multuple binary safe arguments
+            </summary>
+            <param name="cmdWithBinaryArgs"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.RedisNativeClient.ResetSendBuffer">
+            <summary>
+            reset buffer index in send buffer
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Redis.RedisNativeClient.Active">
+            <summary>
+            Used to manage connection pooling
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Redis.RedisNativeClient.NamespacePrefix">
+            <summary>
+            Gets or sets object key prefix.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.RedisClient.New">
+            <summary>
+            Creates a new instance of the Redis Client from NewFactoryFn. 
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.RedisClient.UrnKey``1(``0)">
+            <summary>
+            Returns key with automatic object id detection in provided value with <typeparam name="T">generic type</typeparam>.
+            </summary>
+            <param name="value"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.RedisClient.UrnKey``1(System.Object)">
+            <summary>
+            Returns key with explicit object id.
+            </summary>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.RedisClient.UrnKey(System.Type,System.Object)">
+            <summary>
+            Returns key with explicit object type and id.
+            </summary>
+            <param name="type"></param>
+            <param name="id"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Redis.ShardedConnectionPool">
+            <summary>
+            Provides a redis connection pool that can be sharded
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.PooledRedisClientManager">
+            <summary>
+            For interoperabilty GetCacheClient() and GetReadOnlyCacheClient()
+            return an ICacheClient wrapper around the redis manager which has the affect of calling 
+            GetClient() for all write operations and GetReadOnlyClient() for the read ones.
+            
+            This works well for master-slave replication scenarios where you have 
+            1 master that replicates to multiple read slaves.
+            </summary>
+            <summary>
+            Provides thread-safe pooling of redis client connections.
+            Allows load-balancing of master-write and read-slave hosts, ideal for
+            1 master and multiple replicated read slaves.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.PooledRedisClientManager.#ctor(System.Collections.Generic.IEnumerable{System.String},System.Collections.Generic.IEnumerable{System.String},ServiceStack.Redis.RedisClientManagerConfig)">
+            <summary>
+            Hosts can be an IP Address or Hostname in the format: host[:port]
+            e.g. 127.0.0.1:6379
+            default is: localhost:6379
+            </summary>
+            <param name="readWriteHosts">The write hosts.</param>
+            <param name="readOnlyHosts">The read hosts.</param>
+            <param name="config">The config.</param>
+        </member>
+        <member name="M:ServiceStack.Redis.PooledRedisClientManager.GetClient">
+            <summary>
+            Returns a Read/Write client (The default) using the hosts defined in ReadWriteHosts
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.PooledRedisClientManager.GetInActiveWriteClient">
+            <summary>
+            Called within a lock
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.PooledRedisClientManager.GetReadOnlyClient">
+            <summary>
+            Returns a ReadOnly client using the hosts defined in ReadOnlyHosts.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.PooledRedisClientManager.GetInActiveReadClient">
+            <summary>
+            Called within a lock
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.PooledRedisClientManager.DisposeReadOnlyClient(ServiceStack.Redis.RedisNativeClient)">
+            <summary>
+            Disposes the read only client.
+            </summary>
+            <param name="client">The client.</param>
+        </member>
+        <member name="M:ServiceStack.Redis.PooledRedisClientManager.DisposeWriteClient(ServiceStack.Redis.RedisNativeClient)">
+            <summary>
+            Disposes the write client.
+            </summary>
+            <param name="client">The client.</param>
+        </member>
+        <member name="P:ServiceStack.Redis.PooledRedisClientManager.NamespacePrefix">
+            <summary>
+            Gets or sets object key prefix.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.PooledRedisClientManager.DisposablePooledClient`1">
+            <summary>
+            Manage a client acquired from the PooledRedisClientManager
+            Dispose method will release the client back to the pool.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.PooledRedisClientManager.DisposablePooledClient`1.#ctor(ServiceStack.Redis.PooledRedisClientManager)">
+            <summary>
+            wrap the acquired client
+            </summary>
+            <param name="clientManager"></param>
+        </member>
+        <member name="M:ServiceStack.Redis.PooledRedisClientManager.DisposablePooledClient`1.Dispose">
+            <summary>
+            release the wrapped client back to the pool
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Redis.PooledRedisClientManager.DisposablePooledClient`1.Client">
+            <summary>
+            access the wrapped client
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Redis.ShardedConnectionPool.name">
+            <summary>
+            logical name
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Redis.ShardedConnectionPool.weight">
+            <summary>
+            An arbitrary weight relative to other nodes
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.ShardedConnectionPool.#ctor(System.String,System.Int32,System.String[])">
+            <param name="name">logical name</param>
+            <param name="weight">An arbitrary weight relative to other nodes</param>
+            <param name="readWriteHosts">redis nodes</param>
+        </member>
+        <member name="T:ServiceStack.Redis.ShardedRedisClientManager">
+            <summary>
+            Provides sharding of redis client connections.
+            uses consistent hashing to distribute keys across connection pools
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.ShardedRedisClientManager.GetConnectionPool(System.String)">
+            <summary>
+            maps a key to a redis connection pool
+            </summary>
+            <param name="key">key to map</param>
+            <returns>a redis connection pool</returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.ConsistentHash`1.AddTarget(`0,System.Int32)">
+            <summary>
+             Adds a node and maps points across the circle
+            </summary>
+            <param name="node"> node to add </param>
+            <param name="weight"> An arbitrary number, specifies how often it occurs relative to other targets. </param>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.ConsistentHash`1.ModifiedBinarySearch(System.UInt64[],System.UInt64)">
+            <summary>
+              A variation of Binary Search algorithm. Given a number, matches the next highest number from the sorted array. 
+              If a higher number does not exist, then the first number in the array is returned.
+            </summary>
+            <param name="sortedArray"> a sorted array to perform the search </param>
+            <param name="val"> number to find the next highest number against </param>
+            <returns> next highest number </returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.ConsistentHash`1.Md5Hash(System.String)">
+            <summary>
+              Given a key, generates an unsigned 64 bit hash code using MD5
+            </summary>
+            <param name="key"> </param>
+            <returns> </returns>
+        </member>
+        <member name="T:ServiceStack.Redis.Support.Locking.IDistributedLock">
+            <summary>
+            Distributed lock interface
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Support.OptimizedObjectSerializer">
+            <summary>
+            Optimized  <see cref="T:ServiceStack.Redis.Support.ISerializer"/> implementation. Primitive types are manually serialized, the rest are serialized using binary serializer /&gt;.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Support.ObjectSerializer">
+            <summary>
+            serialize/deserialize arbitrary objects
+            (objects must be serializable)
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.ObjectSerializer.Serialize(System.Object)">
+            <summary>
+             Serialize object to buffer
+            </summary>
+            <param name="value">serializable object</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.ObjectSerializer.Deserialize(System.Byte[])">
+            <summary>
+                Deserialize buffer to object
+            </summary>
+            <param name="someBytes">byte array to deserialize</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OptimizedObjectSerializer.Serialize(System.Object)">
+            <summary>
+            
+            </summary>
+            <param name="value"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OptimizedObjectSerializer.Deserialize(System.Byte[])">
+            <summary>
+            
+            </summary>
+            <param name="someBytes"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OptimizedObjectSerializer.SerializeToWrapper(System.Object)">
+            <summary>
+            serialize value and wrap with <see cref="T:ServiceStack.Redis.Support.SerializedObjectWrapper"/>
+            </summary>
+            <param name="value"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OptimizedObjectSerializer.Unwrap(ServiceStack.Redis.Support.SerializedObjectWrapper)">
+            <summary>
+            Unwrap object wrapped in <see cref="T:ServiceStack.Redis.Support.SerializedObjectWrapper"/>
+            </summary>
+            <param name="item"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.ISequentialData`1.PopAndUnlock">
+            <summary>
+            pop numProcessed items from queue and unlock queue for work item id that dequeued
+            items are associated with
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.ISequentialData`1.DoneProcessedWorkItem">
+            <summary>
+            A dequeued work item has been processed. When all of the dequeued items have been processed,
+            all items will be popped from the queue,and the queue unlocked for the work item id that
+            the dequeued items are associated with
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.ISequentialData`1.UpdateNextUnprocessed(`0)">
+            <summary>
+            Update first unprocessed item with new work item.
+            </summary>
+            <param name="newWorkItem"></param>
+        </member>
+        <member name="P:ServiceStack.Redis.Support.Queue.ISequentialData`1.DequeueItems">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Support.Queue.Implementation.RedisSequentialWorkQueue`1">
+            <summary>
+            distributed work item queue. Each message must have an associated
+            work item  id. For a given id, all work items are guaranteed to be processed
+            in the order in which they are received.
+            
+            
+            </summary>
+            <summary>
+            distributed work item queue. Each message must have an associated
+            work item  id. For a given id, all work items are guaranteed to be processed
+            in the order in which they are received.
+            
+            
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Support.Queue.Implementation.RedisWorkQueue`1">
+            <summary>
+            distributed work item queue
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.ISequentialWorkQueue`1.Enqueue(System.String,`0)">
+            <summary>
+            Enqueue item in priority queue corresponding to workItemId identifier
+            </summary>
+            <param name="workItemId"></param>
+            <param name="workItem"></param>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.ISequentialWorkQueue`1.PrepareNextWorkItem">
+            <summary>
+            Preprare next work item id for dequeueing
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.ISequentialWorkQueue`1.Dequeue(System.Int32)">
+            <summary>
+            Dequeue up to maxBatchSize items from queue corresponding to workItemId identifier.
+            Once this method is called, <see cref="M:ServiceStack.Redis.Support.Queue.ISequentialWorkQueue`1.Dequeue(System.Int32)"/> or <see cref="!:Peek"/> will not
+            return any items for workItemId until the dequeue lock returned is unlocked.
+            </summary>
+            <param name="maxBatchSize"></param>
+            <param name="defer"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.ISequentialWorkQueue`1.Update(System.String,System.Int32,`0)">
+            <summary>
+            Replace existing work item in workItemId queue
+            </summary>
+            <param name="workItemId"></param>
+            <param name="index"></param>
+            <param name="newWorkItem"></param>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.Implementation.RedisSequentialWorkQueue`1.Enqueue(System.String,`0)">
+            <summary>
+            Queue incoming messages
+            </summary>
+            <param name="workItem"></param>
+            <param name="workItemId"></param>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.Implementation.RedisSequentialWorkQueue`1.PrepareNextWorkItem">
+            <summary>
+            Must call this periodically to move work items from priority queue to pending queue
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.Implementation.RedisSequentialWorkQueue`1.Update(System.String,System.Int32,`0)">
+            <summary>
+            Replace existing work item in workItemId queue
+            </summary>
+            <param name="workItemId"></param>
+            <param name="index"></param>
+            <param name="newWorkItem"></param>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.Implementation.RedisSequentialWorkQueue`1.Pop(System.String,System.Int32)">
+            <summary>
+            Pop items from list
+            </summary>
+            <param name="workItemId"></param>
+            <param name="itemCount"></param>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.Implementation.RedisSequentialWorkQueue`1.HarvestZombies">
+            <summary>
+            Force release of locks held by crashed servers
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.Implementation.RedisSequentialWorkQueue`1.TryForceReleaseLock(ServiceStack.Redis.Support.Queue.Implementation.SerializingRedisClient,System.String)">
+            <summary>
+            release lock held by crashed server
+            </summary>
+            <param name="client"></param>
+            <param name="workItemId"></param>
+            <returns>true if lock is released, either by this method or by another client; false otherwise</returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.Implementation.RedisSequentialWorkQueue`1.Unlock(System.String)">
+            <summary>
+            Unlock work item id, so other servers can process items for this id
+            </summary>
+            <param name="workItemId"></param>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.Implementation.RedisSequentialWorkQueue`1.DequeueManager.UpdateNextUnprocessed(`0)">
+            <summary>
+            
+            </summary>
+            <param name="newWorkItem"></param>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.Implementation.RedisSequentialWorkQueue`1.DequeueManager.PopAndUnlock(System.Int32,ServiceStack.Redis.IRedisClient)">
+            <summary>
+            
+            </summary>
+            <param name="numProcessed"></param>
+            <param name="client"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.Implementation.RedisSequentialWorkQueue`1.DequeueManager.PopAndUnlock(System.Int32)">
+            <summary>
+            
+            </summary>
+            <param name="numProcessed"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.Implementation.SequentialData`1.PopAndUnlock">
+            <summary>
+            pop remaining items that were returned by dequeue, and unlock queue
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.Implementation.SequentialData`1.DoneProcessedWorkItem">
+            <summary>
+            indicate that an item has been processed by the caller
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.Implementation.SequentialData`1.UpdateNextUnprocessed(`0)">
+            <summary>
+            Update first unprocessed work item
+            </summary>
+            <param name="newWorkItem"></param>
+        </member>
+        <member name="T:ServiceStack.Redis.Support.SerializedObjectWrapper">
+            <summary>
+            wraps a serialized representation of an object
+            </summary>
+            
+        </member>
+        <member name="M:ServiceStack.Redis.Support.SerializedObjectWrapper.#ctor(System.UInt16,System.ArraySegment{System.Byte})">
+            <summary>
+            Initializes a new instance of <see cref="T:ServiceStack.Redis.Support.SerializedObjectWrapper"/>.
+            </summary>
+            <param name="flags">Custom item data.</param>
+            <param name="data">The serialized item.</param>
+        </member>
+        <member name="P:ServiceStack.Redis.Support.SerializedObjectWrapper.Data">
+            <summary>
+            The data representing the item being stored/retireved.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Redis.Support.SerializedObjectWrapper.Flags">
+            <summary>
+            Flags set for this instance.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Support.Locking.DisposableDistributedLock">
+            <summary>
+            distributed lock class that follows the Resource Allocation Is Initialization pattern
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Locking.DisposableDistributedLock.#ctor(ServiceStack.Redis.IRedisClient,System.String,System.Int32,System.Int32)">
+            <summary>
+            Lock
+            </summary>
+            <param name="client"></param>
+            <param name="globalLockKey"></param>
+            <param name="acquisitionTimeout">in seconds</param>
+            <param name="lockTimeout">in seconds</param>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Locking.DisposableDistributedLock.Dispose">
+            <summary>
+            unlock
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.ISimpleWorkQueue`1.Enqueue(`0)">
+            <summary>
+            Enqueue item
+            </summary>
+            <param name="workItem"></param>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.ISimpleWorkQueue`1.Dequeue(System.Int32)">
+            <summary>
+            Dequeue up to maxBatchSize items from queue
+            </summary>
+            <param name="maxBatchSize"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Redis.Support.Queue.Implementation.RedisChronologicalWorkQueue`1">
+            <summary>
+            distributed work item queue. Messages are processed in chronological order
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.Implementation.RedisChronologicalWorkQueue`1.Enqueue(System.String,`0,System.Double)">
+            <summary>
+            Enqueue incoming messages
+            </summary>
+            <param name="workItem"></param>
+            <param name="workItemId"></param>
+            <param name="time"></param>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.Implementation.RedisChronologicalWorkQueue`1.Dequeue(System.Double,System.Double,System.Int32)">
+            <summary>
+            Dequeue next batch of work items
+            </summary>
+            <param name="minTime"></param>
+            <param name="maxTime"></param>
+            <param name="maxBatchSize"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Redis.Support.Queue.Implementation.RedisSimpleWorkQueue`1">
+            <summary>
+            simple distributed work item queue 
+            
+            
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.Implementation.RedisSimpleWorkQueue`1.Enqueue(`0)">
+            <summary>
+            Queue incoming messages
+            </summary>
+            <param name="msg"></param>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.Implementation.RedisSimpleWorkQueue`1.Dequeue(System.Int32)">
+            <summary>
+            Dequeue next batch of work items for processing. After this method is called,
+            no other work items with same id will be available for
+            dequeuing until PostDequeue is called
+            </summary>
+            <returns>KeyValuePair: key is work item id, and value is list of dequeued items.
+            </returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.Implementation.SerializingRedisClient.Serialize(System.Object)">
+            <summary>
+             Serialize object to buffer
+            </summary>
+            <param name="value">serializable object</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.Implementation.SerializingRedisClient.Serialize(System.Object[])">
+            <summary>
+            
+            </summary>
+            <param name="values">array of serializable objects</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Queue.Implementation.SerializingRedisClient.Deserialize(System.Byte[])">
+            <summary>
+             Deserialize buffer to object
+            </summary>
+            <param name="someBytes">byte array to deserialize</param>
+            <returns></returns>
+        </member>
+        <!-- Badly formed XML comment ignored for member "M:ServiceStack.Redis.Support.Queue.Implementation.SerializingRedisClient.Deserialize(System.Byte[][])" -->
+        <member name="P:ServiceStack.Redis.Support.Queue.Implementation.SerializingRedisClient.Serializer">
+            <summary>
+            customize the client serializer
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Support.Queue.Implementation.SerializingRedisClientFactory">
+            <summary>
+            Factory to create SerializingRedisClient objects
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.RedisCommandQueue">
+            <summary>
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.RedisAllPurposePipeline.#ctor(ServiceStack.Redis.RedisClient)">
+            <summary>
+            General purpose pipeline
+            </summary>
+            <param name="redisClient"></param>
+        </member>
+        <member name="M:ServiceStack.Redis.RedisAllPurposePipeline.Flush">
+            <summary>
+            Flush send buffer, and read responses
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Generic.RedisClientHash`2">
+            <summary>
+            Wrap the common redis set operations under a ICollection[string] interface.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Generic.RedisTypedTransaction`1">
+            <summary>
+            Adds support for Redis Transactions (i.e. MULTI/EXEC/DISCARD operations).
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.Generic.RedisTypedTransaction`1.QueueExpectQueued">
+            <summary>
+            Put "QUEUED" messages at back of queue
+            </summary>
+            <param name="queued"></param>
+        </member>
+        <member name="M:ServiceStack.Redis.Generic.RedisTypedTransaction`1.Exec">
+            <summary>
+            Issue exec command (not queued)
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.Generic.RedisTypedTransaction`1.handleMultiDataResultCount(System.Int32)">
+            <summary>
+            callback for after result count is read in
+            </summary>
+            <param name="count"></param>
+        </member>
+        <member name="T:ServiceStack.Redis.Generic.RedisClientSortedSet`1">
+            <summary>
+            Wrap the common redis set operations under a ICollection[string] interface.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.RedisClientHash">
+            <summary>
+            Wrap the common redis set operations under a ICollection[string] interface.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.RedisClientSortedSet">
+            <summary>
+            Wrap the common redis set operations under a ICollection[string] interface.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Messaging.RedisTransientMessageFactory">
+            <summary>
+            Transient message queues are a one-pass message queue service that starts
+            processing messages when Start() is called. Any subsequent Start() calls 
+            while the service is running is ignored.
+            
+            The transient service will continue to run until all messages have been 
+            processed after which time it will shutdown all processing until Start() is called again.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.RedisException">
+            <summary>
+            Redis-specific exception. Thrown if unable to connect to Redis server due to socket exception, for example.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.RedisTransaction">
+            <summary>
+            Adds support for Redis Transactions (i.e. MULTI/EXEC/DISCARD operations).
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.RedisTransaction.QueueExpectQueued">
+            <summary>
+            Put "QUEUED" messages at back of queue
+            </summary>
+            <param name="queued"></param>
+        </member>
+        <member name="M:ServiceStack.Redis.RedisTransaction.Exec">
+            <summary>
+            Issue exec command (not queued)
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.RedisTransaction.handleMultiDataResultCount(System.Int32)">
+            <summary>
+            callback for after result count is read in
+            </summary>
+            <param name="count"></param>
+        </member>
+        <member name="T:ServiceStack.Redis.RedisClientFactory">
+            <summary>
+            Provide the default factory implementation for creating a RedisClient that 
+            can be mocked and used by different 'Redis Client Managers' 
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Generic.RedisClientSet`1">
+            <summary>
+            Wrap the common redis set operations under a ICollection[string] interface.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.RedisCacheClientFactory">
+            <summary>
+            Provide the factory implementation for creating a RedisCacheClient that 
+            can be mocked and used by different 'Redis Client Managers' 
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.RedisClientSet">
+            <summary>
+            Wrap the common redis set operations under a ICollection[string] interface.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.RedisClientList">
+            <summary>
+            Wrap the common redis list operations under a IList[string] interface.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Support.IOrderedDictionary`2">
+            <summary>
+            Represents a generic collection of key/value pairs that are ordered independently of the key and value.
+            </summary>
+            <typeparam name="TKey">The type of the keys in the dictionary</typeparam>
+            <typeparam name="TValue">The type of the values in the dictionary</typeparam>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.IOrderedDictionary`2.Add(`0,`1)">
+            <summary>
+            Adds an entry with the specified key and value into the <see cref="T:ServiceStack.Redis.Support.IOrderedDictionary`2">IOrderedDictionary&lt;TKey,TValue&gt;</see> collection with the lowest available index.
+            </summary>
+            <param name="key">The key of the entry to add.</param>
+            <param name="value">The value of the entry to add.</param>
+            <returns>The index of the newly added entry</returns>
+            <remarks>
+            <para>You can also use the <see cref="P:System.Collections.Generic.IDictionary{TKey,TValue}.Item(TKey)"/> property to add new elements by setting the value of a key that does not exist in the <see cref="T:ServiceStack.Redis.Support.IOrderedDictionary`2">IOrderedDictionary&lt;TKey,TValue&gt;</see> collection; however, if the specified key already exists in the <see cref="T:ServiceStack.Redis.Support.IOrderedDictionary`2">IOrderedDictionary&lt;TKey,TValue&gt;</see>, setting the <see cref="P:Item(TKey)"/> property overwrites the old value. In contrast, the <see cref="M:Add"/> method does not modify existing elements.</para></remarks>
+            <exception cref="T:System.ArgumentException">An element with the same key already exists in the <see cref="T:ServiceStack.Redis.Support.IOrderedDictionary`2">IOrderedDictionary&lt;TKey,TValue&gt;</see></exception>
+            <exception cref="T:System.NotSupportedException">The <see cref="T:ServiceStack.Redis.Support.IOrderedDictionary`2">IOrderedDictionary&lt;TKey,TValue&gt;</see> is read-only.<br/>
+            -or-<br/>
+            The <see cref="T:ServiceStack.Redis.Support.IOrderedDictionary`2">IOrderedDictionary&lt;TKey,TValue&gt;</see> has a fized size.</exception>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.IOrderedDictionary`2.Insert(System.Int32,`0,`1)">
+            <summary>
+            Inserts a new entry into the <see cref="T:ServiceStack.Redis.Support.IOrderedDictionary`2">IOrderedDictionary&lt;TKey,TValue&gt;</see> collection with the specified key and value at the specified index.
+            </summary>
+            <param name="index">The zero-based index at which the element should be inserted.</param>
+            <param name="key">The key of the entry to add.</param>
+            <param name="value">The value of the entry to add. The value can be <null/> if the type of the values in the dictionary is a reference type.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than 0.<br/>
+            -or-<br/>
+            <paramref name="index"/> is greater than <see cref="P:System.Collections.ICollection.Count"/>.</exception>
+            <exception cref="T:System.ArgumentException">An element with the same key already exists in the <see cref="T:ServiceStack.Redis.Support.IOrderedDictionary`2">IOrderedDictionary&lt;TKey,TValue&gt;</see>.</exception>
+            <exception cref="T:System.NotSupportedException">The <see cref="T:ServiceStack.Redis.Support.IOrderedDictionary`2">IOrderedDictionary&lt;TKey,TValue&gt;</see> is read-only.<br/>
+            -or-<br/>
+            The <see cref="T:ServiceStack.Redis.Support.IOrderedDictionary`2">IOrderedDictionary&lt;TKey,TValue&gt;</see> has a fized size.</exception>
+        </member>
+        <member name="P:ServiceStack.Redis.Support.IOrderedDictionary`2.Item(System.Int32)">
+            <summary>
+            Gets or sets the value at the specified index.
+            </summary>
+            <param name="index">The zero-based index of the value to get or set.</param>
+            <value>The value of the item at the specified index.</value>
+            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than 0.<br/>
+            -or-<br/>
+            <paramref name="index"/> is equal to or greater than <see cref="P:System.Collections.ICollection.Count"/>.</exception>
+        </member>
+        <member name="T:ServiceStack.Redis.Support.OrderedDictionary`2">
+            <summary>
+            Represents a generic collection of key/value pairs that are ordered independently of the key and value.
+            </summary>
+            <typeparam name="TKey">The type of the keys in the dictionary</typeparam>
+            <typeparam name="TValue">The type of the values in the dictionary</typeparam>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> class.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.#ctor(System.Int32)">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> class using the specified initial capacity.
+            </summary>
+            <param name="capacity">The initial number of elements that the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> can contain.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity"/> is less than 0</exception>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> class using the specified comparer.
+            </summary>
+            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1">IEqualityComparer&lt;TKey&gt;</see> to use when comparing keys, or <null/> to use the default <see cref="T:System.Collections.Generic.EqualityComparer`1">EqualityComparer&lt;TKey&gt;</see> for the type of the key.</param>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.#ctor(System.Int32,System.Collections.Generic.IEqualityComparer{`0})">
+            <summary>
+            Initializes a new instance of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> class using the specified initial capacity and comparer.
+            </summary>
+            <param name="capacity">The initial number of elements that the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> collection can contain.</param>
+            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1">IEqualityComparer&lt;TKey&gt;</see> to use when comparing keys, or <null/> to use the default <see cref="T:System.Collections.Generic.EqualityComparer`1">EqualityComparer&lt;TKey&gt;</see> for the type of the key.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity"/> is less than 0</exception>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.ConvertToKeyType(System.Object)">
+            <summary>
+            Converts the object passed as a key to the key type of the dictionary
+            </summary>
+            <param name="keyObject">The key object to check</param>
+            <returns>The key object, cast as the key type of the dictionary</returns>
+            <exception cref="T:System.ArgumentNullException"><paramref name="keyObject"/> is <null/>.</exception>
+            <exception cref="T:System.ArgumentException">The key type of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> is not in the inheritance hierarchy of <paramref name="keyObject"/>.</exception>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.ConvertToValueType(System.Object)">
+            <summary>
+            Converts the object passed as a value to the value type of the dictionary
+            </summary>
+            <param name="value">The object to convert to the value type of the dictionary</param>
+            <returns>The value object, converted to the value type of the dictionary</returns>
+            <exception cref="T:System.ArgumentNullException"><paramref name="valueObject"/> is <null/>, and the value type of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> is a value type.</exception>
+            <exception cref="T:System.ArgumentException">The value type of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> is not in the inheritance hierarchy of <paramref name="valueObject"/>.</exception>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.Insert(System.Int32,`0,`1)">
+            <summary>
+            Inserts a new entry into the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> collection with the specified key and value at the specified index.
+            </summary>
+            <param name="index">The zero-based index at which the element should be inserted.</param>
+            <param name="key">The key of the entry to add.</param>
+            <param name="value">The value of the entry to add. The value can be <null/> if the type of the values in the dictionary is a reference type.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than 0.<br/>
+            -or-<br/>
+            <paramref name="index"/> is greater than <see cref="P:ServiceStack.Redis.Support.OrderedDictionary`2.Count"/>.</exception>
+            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <null/>.</exception>
+            <exception cref="T:System.ArgumentException">An element with the same key already exists in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see>.</exception>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.System#Collections#Specialized#IOrderedDictionary#Insert(System.Int32,System.Object,System.Object)">
+            <summary>
+            Inserts a new entry into the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> collection with the specified key and value at the specified index.
+            </summary>
+            <param name="index">The zero-based index at which the element should be inserted.</param>
+            <param name="key">The key of the entry to add.</param>
+            <param name="value">The value of the entry to add. The value can be <null/> if the type of the values in the dictionary is a reference type.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than 0.<br/>
+            -or-<br/>
+            <paramref name="index"/> is greater than <see cref="P:ServiceStack.Redis.Support.OrderedDictionary`2.Count"/>.</exception>
+            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <null/>.<br/>
+            -or-<br/>
+            <paramref name="value"/> is <null/>, and the value type of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> is a value type.</exception>
+            <exception cref="T:System.ArgumentException">The key type of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> is not in the inheritance hierarchy of <paramref name="key"/>.<br/>
+            -or-<br/>
+            The value type of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> is not in the inheritance hierarchy of <paramref name="value"/>.<br/>
+            -or-<br/>
+            An element with the same key already exists in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see>.</exception>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.RemoveAt(System.Int32)">
+            <summary>
+            Removes the entry at the specified index from the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> collection.
+            </summary>
+            <param name="index">The zero-based index of the entry to remove.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than 0.<br/>
+            -or-<br/>
+            index is equal to or greater than <see cref="P:ServiceStack.Redis.Support.OrderedDictionary`2.Count"/>.</exception>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.System#Collections#Generic#IDictionary{TKey@TValue}#Add(`0,`1)">
+            <summary>
+            Adds an entry with the specified key and value into the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> collection with the lowest available index.
+            </summary>
+            <param name="key">The key of the entry to add.</param>
+            <param name="value">The value of the entry to add. This value can be <null/>.</param>
+            <remarks>A key cannot be <null/>, but a value can be.
+            <para>You can also use the <see cref="P:OrderedDictionary{TKey,TValue}.Item(TKey)"/> property to add new elements by setting the value of a key that does not exist in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> collection; however, if the specified key already exists in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see>, setting the <see cref="P:OrderedDictionary{TKey,TValue}.Item(TKey)"/> property overwrites the old value. In contrast, the <see cref="M:Add"/> method does not modify existing elements.</para></remarks>
+            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <null/></exception>
+            <exception cref="T:System.ArgumentException">An element with the same key already exists in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see></exception>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.Add(`0,`1)">
+            <summary>
+            Adds an entry with the specified key and value into the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> collection with the lowest available index.
+            </summary>
+            <param name="key">The key of the entry to add.</param>
+            <param name="value">The value of the entry to add. This value can be <null/>.</param>
+            <returns>The index of the newly added entry</returns>
+            <remarks>A key cannot be <null/>, but a value can be.
+            <para>You can also use the <see cref="P:OrderedDictionary{TKey,TValue}.Item(TKey)"/> property to add new elements by setting the value of a key that does not exist in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> collection; however, if the specified key already exists in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see>, setting the <see cref="P:OrderedDictionary{TKey,TValue}.Item(TKey)"/> property overwrites the old value. In contrast, the <see cref="M:Add"/> method does not modify existing elements.</para></remarks>
+            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <null/></exception>
+            <exception cref="T:System.ArgumentException">An element with the same key already exists in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see></exception>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.System#Collections#IDictionary#Add(System.Object,System.Object)">
+            <summary>
+            Adds an entry with the specified key and value into the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> collection with the lowest available index.
+            </summary>
+            <param name="key">The key of the entry to add.</param>
+            <param name="value">The value of the entry to add. This value can be <null/>.</param>
+            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <null/>.<br/>
+            -or-<br/>
+            <paramref name="value"/> is <null/>, and the value type of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> is a value type.</exception>
+            <exception cref="T:System.ArgumentException">The key type of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> is not in the inheritance hierarchy of <paramref name="key"/>.<br/>
+            -or-<br/>
+            The value type of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> is not in the inheritance hierarchy of <paramref name="value"/>.</exception>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.Clear">
+            <summary>
+            Removes all elements from the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> collection.
+            </summary>
+            <remarks>The capacity is not changed as a result of calling this method.</remarks>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.ContainsKey(`0)">
+            <summary>
+            Determines whether the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> collection contains a specific key.
+            </summary>
+            <param name="key">The key to locate in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> collection.</param>
+            <returns><see langword="true"/> if the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> collection contains an element with the specified key; otherwise, <see langword="false"/>.</returns>
+            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <null/></exception>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.System#Collections#IDictionary#Contains(System.Object)">
+            <summary>
+            Determines whether the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> collection contains a specific key.
+            </summary>
+            <param name="key">The key to locate in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> collection.</param>
+            <returns><see langword="true"/> if the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> collection contains an element with the specified key; otherwise, <see langword="false"/>.</returns>
+            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <null/></exception>
+            <exception cref="T:System.ArgumentException">The key type of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> is not in the inheritance hierarchy of <paramref name="key"/>.</exception>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.IndexOfKey(`0)">
+            <summary>
+            Returns the zero-based index of the specified key in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see>
+            </summary>
+            <param name="key">The key to locate in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see></param>
+            <returns>The zero-based index of <paramref name="key"/>, if <paramref name="ley"/> is found in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see>; otherwise, -1</returns>
+            <remarks>This method performs a linear search; therefore it has a cost of O(n) at worst.</remarks>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.Remove(`0)">
+            <summary>
+            Removes the entry with the specified key from the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> collection.
+            </summary>
+            <param name="key">The key of the entry to remove</param>
+            <returns><see langword="true"/> if the key was found and the corresponding element was removed; otherwise, <see langword="false"/></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.System#Collections#IDictionary#Remove(System.Object)">
+            <summary>
+            Removes the entry with the specified key from the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> collection.
+            </summary>
+            <param name="key">The key of the entry to remove</param>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.System#Collections#ICollection#CopyTo(System.Array,System.Int32)">
+            <summary>
+            Copies the elements of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> elements to a one-dimensional Array object at the specified index.
+            </summary>
+            <param name="array">The one-dimensional <see cref="T:System.Array"/> object that is the destination of the <see cref="T:KeyValuePair`2&gt;"/> objects copied from the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see>. The <see cref="T:System.Array"/> must have zero-based indexing.</param>
+            <param name="index">The zero-based index in <paramref name="array"/> at which copying begins.</param>
+            <remarks>The <see cref="M:CopyTo"/> method preserves the order of the elements in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see></remarks>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.TryGetValue(`0,`1@)">
+            <summary>
+            Gets the value associated with the specified key.
+            </summary>
+            <param name="key">The key of the value to get.</param>
+            <param name="value">When this method returns, contains the value associated with the specified key, if the key is found; otherwise, the default value for the type of <paramref name="value"/>. This parameter can be passed uninitialized.</param>
+            <returns><see langword="true"/> if the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> contains an element with the specified key; otherwise, <see langword="false"/>.</returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey@TValue}}#Add(System.Collections.Generic.KeyValuePair{`0,`1})">
+            <summary>
+            Adds the specified value to the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> with the specified key.
+            </summary>
+            <param name="item">The <see cref="T:KeyValuePair{TKey,TValue}">KeyValuePair&lt;TKey,TValue&gt;</see> structure representing the key and value to add to the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see>.</param>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey@TValue}}#Contains(System.Collections.Generic.KeyValuePair{`0,`1})">
+            <summary>
+            Determines whether the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> contains a specific key and value.
+            </summary>
+            <param name="item">The <see cref="T:KeyValuePair{TKey,TValue}">KeyValuePair&lt;TKey,TValue&gt;</see> structure to locate in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see>.</param>
+            <returns><see langword="true"/> if <paramref name="keyValuePair"/> is found in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see>; otherwise, <see langword="false"/>.</returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey@TValue}}#CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)">
+            <summary>
+            Copies the elements of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> to an array of type <see cref="T:KeyValuePair`2&gt;"/>, starting at the specified index.
+            </summary>
+            <param name="array">The one-dimensional array of type <see cref="T:KeyValuePair{TKey,TValue}">KeyValuePair&lt;TKey,TValue&gt;</see> that is the destination of the <see cref="T:KeyValuePair{TKey,TValue}">KeyValuePair&lt;TKey,TValue&gt;</see> elements copied from the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see>. The array must have zero-based indexing.</param>
+            <param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.OrderedDictionary`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey@TValue}}#Remove(System.Collections.Generic.KeyValuePair{`0,`1})">
+            <summary>
+            Removes a key and value from the dictionary.
+            </summary>
+            <param name="item">The <see cref="T:KeyValuePair{TKey,TValue}">KeyValuePair&lt;TKey,TValue&gt;</see> structure representing the key and value to remove from the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see>.</param>
+            <returns><see langword="true"/> if the key and value represented by <paramref name="keyValuePair"/> is successfully found and removed; otherwise, <see langword="false"/>. This method returns <see langword="false"/> if <paramref name="keyValuePair"/> is not found in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see>.</returns>
+        </member>
+        <member name="P:ServiceStack.Redis.Support.OrderedDictionary`2.Dictionary">
+            <summary>
+            Gets the dictionary object that stores the keys and values
+            </summary>
+            <value>The dictionary object that stores the keys and values for the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see></value>
+            <remarks>Accessing this property will create the dictionary object if necessary</remarks>
+        </member>
+        <member name="P:ServiceStack.Redis.Support.OrderedDictionary`2.List">
+            <summary>
+            Gets the list object that stores the key/value pairs.
+            </summary>
+            <value>The list object that stores the key/value pairs for the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see></value>
+            <remarks>Accessing this property will create the list object if necessary.</remarks>
+        </member>
+        <member name="P:ServiceStack.Redis.Support.OrderedDictionary`2.Item(System.Int32)">
+            <summary>
+            Gets or sets the value at the specified index.
+            </summary>
+            <param name="index">The zero-based index of the value to get or set.</param>
+            <value>The value of the item at the specified index.</value>
+            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than 0.<br/>
+            -or-<br/>
+            index is equal to or greater than <see cref="P:ServiceStack.Redis.Support.OrderedDictionary`2.Count"/>.</exception>
+        </member>
+        <member name="P:ServiceStack.Redis.Support.OrderedDictionary`2.System#Collections#Specialized#IOrderedDictionary#Item(System.Int32)">
+            <summary>
+            Gets or sets the value at the specified index.
+            </summary>
+            <param name="index">The zero-based index of the value to get or set.</param>
+            <value>The value of the item at the specified index.</value>
+            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than 0.<br/>
+            -or-<br/>
+            index is equal to or greater than <see cref="P:ServiceStack.Redis.Support.OrderedDictionary`2.Count"/>.</exception>
+            <exception cref="T:System.ArgumentNullException"><paramref name="valueObject"/> is a null reference, and the value type of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> is a value type.</exception>
+            <exception cref="T:System.ArgumentException">The value type of the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> is not in the inheritance hierarchy of <paramref name="valueObject"/>.</exception>
+        </member>
+        <member name="P:ServiceStack.Redis.Support.OrderedDictionary`2.System#Collections#IDictionary#IsFixedSize">
+            <summary>
+            Gets a value indicating whether the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> has a fixed size.
+            </summary>
+            <value><see langword="true"/> if the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> has a fixed size; otherwise, <see langword="false"/>. The default is <see langword="false"/>.</value>
+        </member>
+        <member name="P:ServiceStack.Redis.Support.OrderedDictionary`2.IsReadOnly">
+            <summary>
+            Gets a value indicating whether the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> collection is read-only.
+            </summary>
+            <value><see langword="true"/> if the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> is read-only; otherwise, <see langword="false"/>. The default is <see langword="false"/>.</value>
+            <remarks>
+            A collection that is read-only does not allow the addition, removal, or modification of elements after the collection is created.
+            <para>A collection that is read-only is simply a collection with a wrapper that prevents modification of the collection; therefore, if changes are made to the underlying collection, the read-only collection reflects those changes.</para>
+            </remarks>
+        </member>
+        <member name="P:ServiceStack.Redis.Support.OrderedDictionary`2.System#Collections#IDictionary#Keys">
+            <summary>
+            Gets an <see cref="T:System.Collections.ICollection"/> object containing the keys in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see>.
+            </summary>
+            <value>An <see cref="T:System.Collections.ICollection"/> object containing the keys in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see>.</value>
+            <remarks>The returned <see cref="T:System.Collections.ICollection"/> object is not a static copy; instead, the collection refers back to the keys in the original <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see>. Therefore, changes to the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> continue to be reflected in the key collection.</remarks>
+        </member>
+        <member name="P:ServiceStack.Redis.Support.OrderedDictionary`2.System#Collections#IDictionary#Values">
+            <summary>
+            Gets an <see cref="T:System.Collections.ICollection"/> object containing the values in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> collection.
+            </summary>
+            <value>An <see cref="T:System.Collections.ICollection"/> object containing the values in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> collection.</value>
+            <remarks>The returned <see cref="T:System.Collections.ICollection"/> object is not a static copy; instead, the <see cref="T:System.Collections.ICollection"/> refers back to the values in the original <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> collection. Therefore, changes to the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> continue to be reflected in the <see cref="T:System.Collections.ICollection"/>.</remarks>
+        </member>
+        <member name="P:ServiceStack.Redis.Support.OrderedDictionary`2.Item(`0)">
+            <summary>
+            Gets or sets the value with the specified key.
+            </summary>
+            <param name="key">The key of the value to get or set.</param>
+            <value>The value associated with the specified key. If the specified key is not found, attempting to get it returns <null/>, and attempting to set it creates a new element using the specified key.</value>
+        </member>
+        <member name="P:ServiceStack.Redis.Support.OrderedDictionary`2.System#Collections#IDictionary#Item(System.Object)">
+            <summary>
+            Gets or sets the value with the specified key.
+            </summary>
+            <param name="key">The key of the value to get or set.</param>
+            <value>The value associated with the specified key. If the specified key is not found, attempting to get it returns <null/>, and attempting to set it creates a new element using the specified key.</value>
+        </member>
+        <member name="P:ServiceStack.Redis.Support.OrderedDictionary`2.Count">
+            <summary>
+            Gets the number of key/values pairs contained in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> collection.
+            </summary>
+            <value>The number of key/value pairs contained in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> collection.</value>
+        </member>
+        <member name="P:ServiceStack.Redis.Support.OrderedDictionary`2.System#Collections#ICollection#IsSynchronized">
+            <summary>
+            Gets a value indicating whether access to the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> object is synchronized (thread-safe).
+            </summary>
+            <value>This method always returns false.</value>
+        </member>
+        <member name="P:ServiceStack.Redis.Support.OrderedDictionary`2.System#Collections#ICollection#SyncRoot">
+            <summary>
+            Gets an object that can be used to synchronize access to the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> object.
+            </summary>
+            <value>An object that can be used to synchronize access to the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> object.</value>
+        </member>
+        <member name="P:ServiceStack.Redis.Support.OrderedDictionary`2.Keys">
+            <summary>
+            Gets an <see cref="T:System.Collections.Generic.ICollection{TKey}">ICollection&lt;TKey&gt;</see> object containing the keys in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see>.
+            </summary>
+            <value>An <see cref="T:System.Collections.Generic.ICollection{TKey}">ICollection&lt;TKey&gt;</see> object containing the keys in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see>.</value>
+            <remarks>The returned <see cref="T:System.Collections.Generic.ICollection{TKey}">ICollection&lt;TKey&gt;</see> object is not a static copy; instead, the collection refers back to the keys in the original <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see>. Therefore, changes to the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> continue to be reflected in the key collection.</remarks>
+        </member>
+        <member name="P:ServiceStack.Redis.Support.OrderedDictionary`2.Values">
+            <summary>
+            Gets an <see cref="T:ICollection{TValue}">ICollection&lt;TValue&gt;</see> object containing the values in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see>.
+            </summary>
+            <value>An <see cref="T:ICollection{TValue}">ICollection&lt;TValue&gt;</see> object containing the values in the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see>.</value>
+            <remarks>The returned <see cref="T:ICollection{TValue}">ICollection&lt;TKey&gt;</see> object is not a static copy; instead, the collection refers back to the values in the original <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see>. Therefore, changes to the <see cref="T:ServiceStack.Redis.Support.OrderedDictionary`2">OrderedDictionary&lt;TKey,TValue&gt;</see> continue to be reflected in the value collection.</remarks>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Locking.DistributedLock.Lock(System.String,System.Int32,System.Int32,System.Int64@,ServiceStack.Redis.IRedisClient)">
+            <summary>
+            acquire distributed, non-reentrant lock on key
+            </summary>
+            <param name="key">global key for this lock</param>
+            <param name="acquisitionTimeout">timeout for acquiring lock</param>
+            <param name="lockTimeout">timeout for lock, in seconds (stored as value against lock key) </param>
+            <param name="client"></param>
+            <param name="lockExpire"></param>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Locking.DistributedLock.Unlock(System.String,System.Int64,ServiceStack.Redis.IRedisClient)">
+            <summary>
+            unlock key
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Locking.DistributedLock.CalculateLockExpire(System.TimeSpan,System.Int32)">
+            <summary>
+            
+            </summary>
+            <param name="ts"></param>
+            <param name="timeout"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Redis.Support.Locking.ILockingStrategy">
+            <summary>
+            Locking strategy interface
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Support.Locking.ReadLock">
+            <summary>
+            This class manages a read lock for a local readers/writer lock, 
+            using the Resource Acquisition Is Initialization pattern
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Locking.ReadLock.#ctor(System.Threading.ReaderWriterLockSlim)">
+            <summary>
+            RAII initialization 
+            </summary>
+            <param name="lockObject"></param>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Locking.ReadLock.Dispose">
+            <summary>
+            RAII disposal
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Locking.WriteLock.#ctor(System.Threading.ReaderWriterLockSlim)">
+            <summary>
+            This class manages a write lock for a local readers/writer lock, 
+            using the Resource Acquisition Is Initialization pattern
+            </summary>
+            <param name="lockObject"></param>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.Locking.WriteLock.Dispose">
+            <summary>
+            RAII disposal
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Redis.Support.RedisNamespace">
+            <summary>
+            manages a "region" in the redis key space
+            namespace can be cleared by incrementing the generation
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.RedisNamespace.GetGeneration">
+            <summary>
+            get current generation
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.RedisNamespace.SetGeneration(System.Int64)">
+            <summary>
+            set new generation
+            </summary>
+            <param name="generation"></param>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.RedisNamespace.GetGenerationKey">
+            <summary>
+            redis key for generation
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.RedisNamespace.GetGlobalKeysKey">
+            <summary>
+            get redis key that holds all namespace keys
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.RedisNamespace.GlobalCacheKey(System.Object)">
+            <summary>
+            get global cache key
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.RedisNamespace.GlobalKey(System.Object,System.Int32)">
+            <summary>
+            get global key inside of this namespace
+            </summary>
+            <param name="key"></param>
+            <param name="numUniquePrefixes">prefixes can be added for name deconfliction</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.RedisNamespace.Sanitize(System.String)">
+            <summary>
+            replace UniqueCharacter with its double, to avoid name clash
+            </summary>
+            <param name="dirtyString"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Redis.Support.RedisNamespace.Sanitize(System.Object)">
+            <summary>
+            
+            </summary>
+            <param name="dirtyString"></param>
+            <returns></returns>
+        </member>
+        <member name="P:ServiceStack.Redis.Support.RedisNamespace.LockingStrategy">
+            <summary>
+            get locking strategy
+            </summary>
+        </member>
+    </members>
+</doc>

BIN
servicestack/lib/ServiceStack.Redis.3.9.45/lib/net35/ServiceStack.Redis.dll


BIN
servicestack/lib/ServiceStack.Text.3.9.46/ServiceStack.Text.3.9.46.nupkg


+ 23 - 0
servicestack/lib/ServiceStack.Text.3.9.46/ServiceStack.Text.3.9.46.nuspec

@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
+  <metadata>
+    <id>ServiceStack.Text</id>
+    <version>3.9.46</version>
+    <title>.NET's fastest JSON Serializer by ServiceStack</title>
+    <authors>Demis Bellot</authors>
+    <owners>Demis Bellot</owners>
+    <licenseUrl>https://github.com/ServiceStack/ServiceStack.Text/blob/master/LICENSE</licenseUrl>
+    <projectUrl>https://github.com/ServiceStack/ServiceStack.Text</projectUrl>
+    <iconUrl>http://www.servicestack.net/logo-100x100.png</iconUrl>
+    <requireLicenseAcceptance>false</requireLicenseAcceptance>
+    <description>.NET's fastest JSON, JSV and CSV Text Serializers. Fast, Light, Resilient.
+        Benchmarks at: http://servicestack.net/benchmarks/
+        Includes the String and Stream functionality for all the ServiceStack projects including: 
+          - T.Dump() generic extension method for easy dbugging and introspection of types
+          - WebRequest, List, Dictionary and DateTime extensions</description>
+    <summary>.NET's fastest JSON, JSV and CSV Text Serializers</summary>
+    <copyright>ServiceStack 2013 and contributors</copyright>
+    <language>en-US</language>
+    <tags>JSON Text Serializer CSV JSV Dump PrettyPrint Fast</tags>
+  </metadata>
+</package>

+ 605 - 0
servicestack/lib/ServiceStack.Text.3.9.46/lib/net35/ServiceStack.Text.XML

@@ -0,0 +1,605 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>ServiceStack.Text</name>
+    </assembly>
+    <members>
+        <member name="T:ServiceStack.Text.AssemblyUtils">
+            <summary>
+            Utils to load types
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.AssemblyUtils.FindType(System.String)">
+            <summary>
+            Find the type from the name supplied
+            </summary>
+            <param name="typeName">[typeName] or [typeName, assemblyName]</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.AssemblyUtils.MainInterface``1">
+            <summary>
+            The top-most interface of the given type, if any.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.AssemblyUtils.FindType(System.String,System.String)">
+            <summary>
+            Find type if it exists
+            </summary>
+            <param name="typeName"></param>
+            <param name="assemblyName"></param>
+            <returns>The type if it exists</returns>
+        </member>
+        <member name="M:ServiceStack.Text.Common.DateTimeSerializer.Prepare(System.DateTime)">
+            <summary>
+            If AlwaysUseUtc is set to true then convert all DateTime to UTC.
+            </summary>
+            <param name="dateTime"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.Common.DateTimeSerializer.ParseWcfJsonDateOffset(System.String)">
+            <summary>
+            WCF Json format: /Date(unixts+0000)/
+            </summary>
+            <param name="wcfJsonDate"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.Common.DateTimeSerializer.ParseWcfJsonDate(System.String)">
+            <summary>
+            WCF Json format: /Date(unixts+0000)/
+            </summary>
+            <param name="wcfJsonDate"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.Common.DeserializeTypeUtils.GetTypeStringConstructor(System.Type)">
+            <summary>
+            Get the type(string) constructor if exists
+            </summary>
+            <param name="type">The type.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.Common.JsWriter.HasAnyEscapeChars(System.String)">
+            <summary>
+            micro optimizations: using flags instead of value.IndexOfAny(EscapeChars)
+            </summary>
+            <param name="value"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Text.Controller.PathInfo">
+            <summary>
+            Class to hold  
+            </summary>
+        </member>
+        <!-- Badly formed XML comment ignored for member "M:ServiceStack.Text.Controller.PathInfo.Parse(System.String)" -->
+        <member name="T:ServiceStack.Text.DateTimeExtensions">
+            <summary>
+            A fast, standards-based, serialization-issue free DateTime serailizer.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Text.WP.HashSet`1">
+            <summary>
+             A hashset implementation that uses an IDictionary
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.ITypeSerializer`1.CanCreateFromString(System.Type)">
+            <summary>
+            Determines whether this serializer can create the specified type from a string.
+            </summary>
+            <param name="type">The type.</param>
+            <returns>
+            	<c>true</c> if this instance [can create from string] the specified type; otherwise, <c>false</c>.
+            </returns>
+        </member>
+        <member name="M:ServiceStack.Text.ITypeSerializer`1.DeserializeFromString(System.String)">
+            <summary>
+            Parses the specified value.
+            </summary>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.ITypeSerializer`1.DeserializeFromReader(System.IO.TextReader)">
+            <summary>
+            Deserializes from reader.
+            </summary>
+            <param name="reader">The reader.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.ITypeSerializer`1.SerializeToString(`0)">
+            <summary>
+            Serializes to string.
+            </summary>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.ITypeSerializer`1.SerializeToWriter(`0,System.IO.TextWriter)">
+            <summary>
+            Serializes to writer.
+            </summary>
+            <param name="value">The value.</param>
+            <param name="writer">The writer.</param>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig.sTimeSpanHandler">
+            <summary>
+            Sets which format to use when serializing TimeSpans
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig.sEmitCamelCaseNames">
+            <summary>
+            <see langword="true"/> if the <see cref="T:ServiceStack.Text.Common.ITypeSerializer"/> is configured
+            to take advantage of <see cref="T:System.CLSCompliantAttribute"/> specification,
+            to support user-friendly serialized formats, ie emitting camelCasing for JSON
+            and parsing member names and enum values in a case-insensitive manner.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig.sEmitLowercaseUnderscoreNames">
+            <summary>
+            <see langword="true"/> if the <see cref="T:ServiceStack.Text.Common.ITypeSerializer"/> is configured
+            to support web-friendly serialized formats, ie emitting lowercase_underscore_casing for JSON
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig.propertyConvention">
+            <summary>
+            Define how property names are mapped during deserialization
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig.sThrowOnDeserializationError">
+            <summary>
+            Gets or sets a value indicating if the framework should throw serialization exceptions
+            or continue regardless of deserialization errors. If <see langword="true"/>  the framework
+            will throw; otherwise, it will parse as many fields as possible. The default is <see langword="false"/>.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig.sAlwaysUseUtc">
+            <summary>
+            Gets or sets a value indicating if the framework should always convert <see cref="T:System.DateTime"/> to UTC format instead of local time. 
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig.sEscapeUnicode">
+            <summary>
+            Gets or sets a value indicating if unicode symbols should be serialized as "\uXXXX".
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig.sIncludePublicFields">
+            <summary>
+            If set to true, Interface types will be prefered over concrete types when serializing.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig.sModelFactory">
+            <summary>
+            Set this to enable your own type construction provider.
+            This is helpful for integration with IoC containers where you need to call the container constructor.
+            Return null if you don't know how to construct the type and the parameterless constructor will be used.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Text.JsConfig.PreferInterfaces">
+            <summary>
+            If set to true, Interface types will be prefered over concrete types when serializing.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.IncludeTypeInfo">
+            <summary>
+            Always emit type info for this type.  Takes precedence over ExcludeTypeInfo
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.ExcludeTypeInfo">
+            <summary>
+            Never emit type info for this type
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.EmitCamelCaseNames">
+            <summary>
+            <see langword="true"/> if the <see cref="T:ServiceStack.Text.Common.ITypeSerializer"/> is configured
+            to take advantage of <see cref="T:System.CLSCompliantAttribute"/> specification,
+            to support user-friendly serialized formats, ie emitting camelCasing for JSON
+            and parsing member names and enum values in a case-insensitive manner.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.serializeFn">
+            <summary>
+            Define custom serialization fn for BCL Structs
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.rawSerializeFn">
+            <summary>
+            Define custom raw serialization fn
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.onSerializingFn">
+            <summary>
+            Define custom serialization hook
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.DeSerializeFn">
+            <summary>
+            Define custom deserialization fn for BCL Structs
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.RawDeserializeFn">
+            <summary>
+            Define custom raw deserialization fn for objects
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.ExcludePropertyNames">
+            <summary>
+            Exclude specific properties of this type from being serialized
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Text.JsConfig`1.TreatValueAsRefType">
+            <summary>
+            Opt-in flag to set some Value Types to be treated as a Ref Type
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Text.JsConfig`1.HasSerializeFn">
+            <summary>
+            Whether there is a fn (raw or otherwise)
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsonPropertyConvention.ExactMatch">
+            <summary>
+            The property names on target types must match property names in the JSON source
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsonPropertyConvention.Lenient">
+            <summary>
+            The property names on target types may not match the property names in the JSON source
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsonTimeSpanHandler.DurationFormat">
+            <summary>
+            Uses the xsd format like PT15H10M20S
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsonTimeSpanHandler.StandardFormat">
+            <summary>
+            Uses the standard .net ToString method of the TimeSpan class
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.JsonExtensions.Get``1(System.Collections.Generic.Dictionary{System.String,System.String},System.String)">
+            <summary>
+            Get JSON string value converted to T
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.JsonExtensions.Get(System.Collections.Generic.Dictionary{System.String,System.String},System.String)">
+            <summary>
+            Get JSON string value
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.JsonObject.GetUnescaped(System.String)">
+            <summary>
+            Get unescaped string value
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.JsonObject.Child(System.String)">
+            <summary>
+            Get unescaped string value
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.JsonObject.WriteValue(System.IO.TextWriter,System.Object)">
+            <summary>
+            Write JSON Array, Object, bool or number values as raw string
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Text.JsonObject.Item(System.String)">
+            <summary>
+            Get JSON string value
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Text.JsonSerializer">
+            <summary>
+            Creates an instance of a Type from a string value
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.JsonSerializer`1.DeserializeFromString(System.String)">
+            <summary>
+            Parses the specified value.
+            </summary>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.Json.JsonTypeSerializer.WriteRawString(System.IO.TextWriter,System.String)">
+            <summary>
+            Shortcut escape when we're sure value doesn't contain any escaped chars
+            </summary>
+            <param name="writer"></param>
+            <param name="value"></param>
+        </member>
+        <member name="M:ServiceStack.Text.Json.JsonTypeSerializer.ConvertFromUtf32(System.Int32)">
+            <summary>
+            Given a character as utf32, returns the equivalent string provided that the character
+            is legal json.
+            </summary>
+            <param name="utf32"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.Json.JsonUtils.HasAnyEscapeChars(System.String)">
+            <summary>
+            micro optimizations: using flags instead of value.IndexOfAny(EscapeChars)
+            </summary>
+            <param name="value"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Text.Json.JsonWriter`1">
+            <summary>
+            Implement the serializer using a more static approach
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.Text.Jsv.JsvWriter`1">
+            <summary>
+            Implement the serializer using a more static approach
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.Text.Marc.Link`2">
+            <summary>
+            Pretty Thread-Safe cache class from:
+            http://code.google.com/p/dapper-dot-net/source/browse/Dapper/SqlMapper.cs
+            
+            This is a micro-cache; suitable when the number of terms is controllable (a few hundred, for example),
+            and strictly append-only; you cannot change existing values. All key matches are on **REFERENCE**
+            equality. The type is fully thread-safe.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Text.FastMember.ObjectAccessor">
+            <summary>
+            Represents an individual object, allowing access to members by-name
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.FastMember.ObjectAccessor.Equals(System.Object)">
+            <summary>
+            Use the target types definition of equality
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.FastMember.ObjectAccessor.GetHashCode">
+            <summary>
+            Obtain the hash of the target object
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.FastMember.ObjectAccessor.ToString">
+            <summary>
+            Use the target's definition of a string representation
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.FastMember.ObjectAccessor.Create(System.Object)">
+            <summary>
+            Wraps an individual object, allowing by-name access to that instance
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Text.FastMember.ObjectAccessor.Item(System.String)">
+            <summary>
+            Get or Set the value of a named member for the underlying object
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Text.FastMember.ObjectAccessor.Target">
+            <summary>
+            The object represented by this instance
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Text.FastMember.TypeAccessor">
+            <summary>
+            Provides by-name member-access to objects of a given type
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.FastMember.TypeAccessor.CreateNew">
+            <summary>
+            Create a new instance of this type
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.FastMember.TypeAccessor.Create(System.Type)">
+            <summary>
+            Provides a type-specific accessor, allowing by-name access for all objects of that type
+            </summary>
+            <remarks>The accessor is cached internally; a pre-existing accessor may be returned</remarks>
+        </member>
+        <member name="P:ServiceStack.Text.FastMember.TypeAccessor.CreateNewSupported">
+            <summary>
+            Does this type support new instances via a parameterless constructor?
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Text.FastMember.TypeAccessor.Item(System.Object,System.String)">
+            <summary>
+            Get or set the value of a named member on the target instance
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Text.QueryStringWriter`1">
+            <summary>
+            Implement the serializer using a more static approach
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="F:ServiceStack.Text.StreamExtensions.DefaultBufferSize">
+            <summary>
+            @jonskeet: Collection of utility methods which operate on streams.
+            r285, February 26th 2009: http://www.yoda.arachsys.com/csharp/miscutil/
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadFully(System.IO.Stream)">
+            <summary>
+            Reads the given stream up to the end, returning the data as a byte
+            array.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadFully(System.IO.Stream,System.Int32)">
+            <summary>
+            Reads the given stream up to the end, returning the data as a byte
+            array, using the given buffer size.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadFully(System.IO.Stream,System.Byte[])">
+            <summary>
+            Reads the given stream up to the end, returning the data as a byte
+            array, using the given buffer for transferring data. Note that the
+            current contents of the buffer is ignored, so the buffer needn't
+            be cleared beforehand.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.CopyTo(System.IO.Stream,System.IO.Stream)">
+            <summary>
+            Copies all the data from one stream into another.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.CopyTo(System.IO.Stream,System.IO.Stream,System.Int32)">
+            <summary>
+            Copies all the data from one stream into another, using a buffer
+            of the given size.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.CopyTo(System.IO.Stream,System.IO.Stream,System.Byte[])">
+            <summary>
+            Copies all the data from one stream into another, using the given 
+            buffer for transferring data. Note that the current contents of 
+            the buffer is ignored, so the buffer needn't be cleared beforehand.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadExactly(System.IO.Stream,System.Int32)">
+            <summary>
+            Reads exactly the given number of bytes from the specified stream.
+            If the end of the stream is reached before the specified amount
+            of data is read, an exception is thrown.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadExactly(System.IO.Stream,System.Byte[])">
+            <summary>
+            Reads into a buffer, filling it completely.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadExactly(System.IO.Stream,System.Byte[],System.Int32)">
+            <summary>
+            Reads exactly the given number of bytes from the specified stream,
+            into the given buffer, starting at position 0 of the array.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadExactly(System.IO.Stream,System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Reads exactly the given number of bytes from the specified stream,
+            into the given buffer, starting at position 0 of the array.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadExactlyFast(System.IO.Stream,System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Same as ReadExactly, but without the argument checks.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StringExtensions.BaseConvert(System.String,System.Int32,System.Int32)">
+            <summary>
+            Converts from base: 0 - 62
+            </summary>
+            <param name="source">The source.</param>
+            <param name="from">From.</param>
+            <param name="to">To.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.StringExtensions.FastToUtf8Bytes(System.String)">
+            <summary>
+            Skip the encoding process for 'safe strings' 
+            </summary>
+            <param name="strVal"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Text.Support.DoubleConverter">
+            <summary>
+            A class to allow the conversion of doubles to string representations of
+            their exact decimal values. The implementation aims for readability over
+            efficiency.
+            
+            Courtesy of @JonSkeet
+            http://www.yoda.arachsys.com/csharp/DoubleConverter.cs
+            </summary>
+        </member>
+        <!-- Badly formed XML comment ignored for member "M:ServiceStack.Text.Support.DoubleConverter.ToExactString(System.Double)" -->
+        <!-- Badly formed XML comment ignored for member "T:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal" -->
+        <!-- Badly formed XML comment ignored for member "F:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.digits" -->
+        <member name="F:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.decimalPoint">
+            <summary> 
+            How many digits are *after* the decimal point
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.#ctor(System.Int64)">
+            <summary> 
+            Constructs an arbitrary decimal expansion from the given long.
+            The long must not be negative.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.MultiplyBy(System.Int32)">
+            <summary>
+            Multiplies the current expansion by the given amount, which should
+            only be 2 or 5.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.Shift(System.Int32)">
+            <summary>
+            Shifts the decimal point; a negative value makes
+            the decimal expansion bigger (as fewer digits come after the
+            decimal place) and a positive value makes the decimal
+            expansion smaller.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.Normalize">
+            <summary>
+            Removes leading/trailing zeroes from the expansion.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.ToString">
+            <summary>
+            Converts the value to a proper decimal string representation.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Text.TypeSerializer">
+            <summary>
+            Creates an instance of a Type from a string value
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer.CanCreateFromString(System.Type)">
+            <summary>
+            Determines whether the specified type is convertible from string.
+            </summary>
+            <param name="type">The type.</param>
+            <returns>
+            	<c>true</c> if the specified type is convertible from string; otherwise, <c>false</c>.
+            </returns>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer.DeserializeFromString``1(System.String)">
+            <summary>
+            Parses the specified value.
+            </summary>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer.DeserializeFromString(System.String,System.Type)">
+            <summary>
+            Parses the specified type.
+            </summary>
+            <param name="type">The type.</param>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer.ToStringDictionary``1(``0)">
+            <summary>
+            Useful extension method to get the Dictionary[string,string] representation of any POCO type.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer.Dump``1(``0)">
+            <summary>
+            Recursively prints the contents of any POCO object in a human-friendly, readable format
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer.PrintDump``1(``0)">
+            <summary>
+            Print Dump to Console.WriteLine
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer.Print(System.String,System.Object[])">
+            <summary>
+            Print string.Format to Console.WriteLine
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer`1.DeserializeFromString(System.String)">
+            <summary>
+            Parses the specified value.
+            </summary>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+    </members>
+</doc>

BIN
servicestack/lib/ServiceStack.Text.3.9.46/lib/net35/ServiceStack.Text.dll


+ 409 - 0
servicestack/lib/ServiceStack.Text.3.9.46/lib/sl4-windowsphone71/ServiceStack.Text.WP.XML

@@ -0,0 +1,409 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>ServiceStack.Text.WP</name>
+    </assembly>
+    <members>
+        <member name="T:ServiceStack.Text.JsonSerializer">
+            <summary>
+            Creates an instance of a Type from a string value
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Text.DateTimeExtensions">
+            <summary>
+            A fast, standards-based, serialization-issue free DateTime serailizer.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Text.Controller.PathInfo">
+            <summary>
+            Class to hold  
+            </summary>
+        </member>
+        <!-- Badly formed XML comment ignored for member "M:ServiceStack.Text.Controller.PathInfo.Parse(System.String)" -->
+        <member name="M:ServiceStack.Text.Common.DateTimeSerializer.ParseWcfJsonDateOffset(System.String)">
+            <summary>
+            WCF Json format: /Date(unixts+0000)/
+            </summary>
+            <param name="wcfJsonDate"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.Common.DateTimeSerializer.ParseWcfJsonDate(System.String)">
+            <summary>
+            WCF Json format: /Date(unixts+0000)/
+            </summary>
+            <param name="wcfJsonDate"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.Json.JsonTypeSerializer.WriteRawString(System.IO.TextWriter,System.String)">
+            <summary>
+            Shortcut escape when we're sure value doesn't contain any escaped chars
+            </summary>
+            <param name="writer"></param>
+            <param name="value"></param>
+        </member>
+        <member name="M:ServiceStack.Text.Json.JsonTypeSerializer.ConvertFromUtf32(System.Int32)">
+            <summary>
+            Since Silverlight doesn't have char.ConvertFromUtf32() so putting Mono's implemenation inline.
+            </summary>
+            <param name="utf32"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Text.TypeSerializer">
+            <summary>
+            Creates an instance of a Type from a string value
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer.CanCreateFromString(System.Type)">
+            <summary>
+            Determines whether the specified type is convertible from string.
+            </summary>
+            <param name="type">The type.</param>
+            <returns>
+            	<c>true</c> if the specified type is convertible from string; otherwise, <c>false</c>.
+            </returns>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer.DeserializeFromString``1(System.String)">
+            <summary>
+            Parses the specified value.
+            </summary>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer.DeserializeFromString(System.String,System.Type)">
+            <summary>
+            Parses the specified type.
+            </summary>
+            <param name="type">The type.</param>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer.ToStringDictionary``1(``0)">
+            <summary>
+            Useful extension method to get the Dictionary[string,string] representation of any POCO type.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer.Dump``1(``0)">
+            <summary>
+            Recursively prints the contents of any POCO object in a human-friendly, readable format
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Text.Jsv.JsvWriter`1">
+            <summary>
+            Implement the serializer using a more static approach
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="M:ServiceStack.Text.ITypeSerializer`1.CanCreateFromString(System.Type)">
+            <summary>
+            Determines whether this serializer can create the specified type from a string.
+            </summary>
+            <param name="type">The type.</param>
+            <returns>
+            	<c>true</c> if this instance [can create from string] the specified type; otherwise, <c>false</c>.
+            </returns>
+        </member>
+        <member name="M:ServiceStack.Text.ITypeSerializer`1.DeserializeFromString(System.String)">
+            <summary>
+            Parses the specified value.
+            </summary>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.ITypeSerializer`1.DeserializeFromReader(System.IO.TextReader)">
+            <summary>
+            Deserializes from reader.
+            </summary>
+            <param name="reader">The reader.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.ITypeSerializer`1.SerializeToString(`0)">
+            <summary>
+            Serializes to string.
+            </summary>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.ITypeSerializer`1.SerializeToWriter(`0,System.IO.TextWriter)">
+            <summary>
+            Serializes to writer.
+            </summary>
+            <param name="value">The value.</param>
+            <param name="writer">The writer.</param>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer`1.DeserializeFromString(System.String)">
+            <summary>
+            Parses the specified value.
+            </summary>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Text.Marc.Link`2">
+            <summary>
+            Pretty Thread-Safe cache class from:
+            http://code.google.com/p/dapper-dot-net/source/browse/Dapper/SqlMapper.cs
+            
+            This is a micro-cache; suitable when the number of terms is controllable (a few hundred, for example),
+            and strictly append-only; you cannot change existing values. All key matches are on **REFERENCE**
+            equality. The type is fully thread-safe.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Text.AssemblyUtils">
+            <summary>
+            Utils to load types
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.AssemblyUtils.FindType(System.String)">
+            <summary>
+            Find the type from the name supplied
+            </summary>
+            <param name="typeName">[typeName] or [typeName, assemblyName]</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.AssemblyUtils.FindType(System.String,System.String)">
+            <summary>
+            Find type if it exists
+            </summary>
+            <param name="typeName"></param>
+            <param name="assemblyName"></param>
+            <returns>The type if it exists</returns>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig.tsEmitCamelCaseNames">
+            <summary>
+            <see langword="true"/> if the <see cref="T:ServiceStack.Text.Common.ITypeSerializer"/> is configured
+            to take advantage of <see cref="T:System.CLSCompliantAttribute"/> specification,
+            to support user-friendly serialized formats, ie emitting camelCasing for JSON
+            and parsing member names and enum values in a case-insensitive manner.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig.tsThrowOnDeserializationError">
+            <summary>
+            Gets or sets a value indicating if the framework should throw serialization exceptions
+            or continue regardless of deserialization errors. If <see langword="true"/>  the framework
+            will throw; otherwise, it will parse as many fields as possible. The default is <see langword="false"/>.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.JsConfig.InitForAot">
+            <summary>
+            Provide hint to MonoTouch AOT compiler to pre-compile generic classes for all your DTOs.
+            Just needs to be called once in a static constructor.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.ExcludeTypeInfo">
+            <summary>
+            Never emit type info for this type
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.EmitCamelCaseNames">
+            <summary>
+            <see langword="true"/> if the <see cref="T:ServiceStack.Text.Common.ITypeSerializer"/> is configured
+            to take advantage of <see cref="T:System.CLSCompliantAttribute"/> specification,
+            to support user-friendly serialized formats, ie emitting camelCasing for JSON
+            and parsing member names and enum values in a case-insensitive manner.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.serializeFn">
+            <summary>
+            Define custom serialization fn for BCL Structs
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.DeSerializeFn">
+            <summary>
+            Define custom deserialization fn for BCL Structs
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.ExcludePropertyNames">
+            <summary>
+            Exclude specific properties of this type from being serialized
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Text.JsConfig`1.TreatValueAsRefTypes">
+            <summary>
+            Opt-in flag to set some Value Types to be treated as a Ref Type
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.Json.JsonUtils.HasAnyEscapeChars(System.String)">
+            <summary>
+            micro optimizations: using flags instead of value.IndexOfAny(EscapeChars)
+            </summary>
+            <param name="value"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.JsonSerializer`1.DeserializeFromString(System.String)">
+            <summary>
+            Parses the specified value.
+            </summary>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Text.Support.DoubleConverter">
+            <summary>
+            A class to allow the conversion of doubles to string representations of
+            their exact decimal values. The implementation aims for readability over
+            efficiency.
+            
+            Courtesy of @JonSkeet
+            http://www.yoda.arachsys.com/csharp/DoubleConverter.cs
+            </summary>
+        </member>
+        <!-- Badly formed XML comment ignored for member "M:ServiceStack.Text.Support.DoubleConverter.ToExactString(System.Double)" -->
+        <!-- Badly formed XML comment ignored for member "T:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal" -->
+        <!-- Badly formed XML comment ignored for member "F:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.digits" -->
+        <member name="F:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.decimalPoint">
+            <summary> 
+            How many digits are *after* the decimal point
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.#ctor(System.Int64)">
+            <summary> 
+            Constructs an arbitrary decimal expansion from the given long.
+            The long must not be negative.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.MultiplyBy(System.Int32)">
+            <summary>
+            Multiplies the current expansion by the given amount, which should
+            only be 2 or 5.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.Shift(System.Int32)">
+            <summary>
+            Shifts the decimal point; a negative value makes
+            the decimal expansion bigger (as fewer digits come after the
+            decimal place) and a positive value makes the decimal
+            expansion smaller.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.Normalize">
+            <summary>
+            Removes leading/trailing zeroes from the expansion.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.ToString">
+            <summary>
+            Converts the value to a proper decimal string representation.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Text.Json.JsonWriter`1">
+            <summary>
+            Implement the serializer using a more static approach
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.Text.WP.HashSet`1">
+            <summary>
+             A hashset implementation that uses an IDictionary
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.Common.JsWriter.HasAnyEscapeChars(System.String)">
+            <summary>
+            micro optimizations: using flags instead of value.IndexOfAny(EscapeChars)
+            </summary>
+            <param name="value"></param>
+            <returns></returns>
+        </member>
+        <member name="F:ServiceStack.Text.StreamExtensions.DefaultBufferSize">
+            <summary>
+            @jonskeet: Collection of utility methods which operate on streams.
+            r285, February 26th 2009: http://www.yoda.arachsys.com/csharp/miscutil/
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadFully(System.IO.Stream)">
+            <summary>
+            Reads the given stream up to the end, returning the data as a byte
+            array.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadFully(System.IO.Stream,System.Int32)">
+            <summary>
+            Reads the given stream up to the end, returning the data as a byte
+            array, using the given buffer size.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadFully(System.IO.Stream,System.Byte[])">
+            <summary>
+            Reads the given stream up to the end, returning the data as a byte
+            array, using the given buffer for transferring data. Note that the
+            current contents of the buffer is ignored, so the buffer needn't
+            be cleared beforehand.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.CopyTo(System.IO.Stream,System.IO.Stream)">
+            <summary>
+            Copies all the data from one stream into another.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.CopyTo(System.IO.Stream,System.IO.Stream,System.Int32)">
+            <summary>
+            Copies all the data from one stream into another, using a buffer
+            of the given size.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.CopyTo(System.IO.Stream,System.IO.Stream,System.Byte[])">
+            <summary>
+            Copies all the data from one stream into another, using the given 
+            buffer for transferring data. Note that the current contents of 
+            the buffer is ignored, so the buffer needn't be cleared beforehand.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadExactly(System.IO.Stream,System.Int32)">
+            <summary>
+            Reads exactly the given number of bytes from the specified stream.
+            If the end of the stream is reached before the specified amount
+            of data is read, an exception is thrown.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadExactly(System.IO.Stream,System.Byte[])">
+            <summary>
+            Reads into a buffer, filling it completely.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadExactly(System.IO.Stream,System.Byte[],System.Int32)">
+            <summary>
+            Reads exactly the given number of bytes from the specified stream,
+            into the given buffer, starting at position 0 of the array.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadExactly(System.IO.Stream,System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Reads exactly the given number of bytes from the specified stream,
+            into the given buffer, starting at position 0 of the array.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadExactlyFast(System.IO.Stream,System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Same as ReadExactly, but without the argument checks.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StringExtensions.BaseConvert(System.String,System.Int32,System.Int32)">
+            <summary>
+            Converts from base: 0 - 62
+            </summary>
+            <param name="source">The source.</param>
+            <param name="from">From.</param>
+            <param name="to">To.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.StringExtensions.FastToUtf8Bytes(System.String)">
+            <summary>
+            Skip the encoding process for 'safe strings' 
+            </summary>
+            <param name="strVal"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Text.QueryStringWriter`1">
+            <summary>
+            Implement the serializer using a more static approach
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="M:ServiceStack.Text.Common.DeserializeTypeUtils.GetTypeStringConstructor(System.Type)">
+            <summary>
+            Get the type(string) constructor if exists
+            </summary>
+            <param name="type">The type.</param>
+            <returns></returns>
+        </member>
+    </members>
+</doc>

BIN
servicestack/lib/ServiceStack.Text.3.9.46/lib/sl4-windowsphone71/ServiceStack.Text.WP.dll


BIN
servicestack/lib/ServiceStack.Text.3.9.46/lib/sl4/ServiceStack.Text.dll


+ 385 - 0
servicestack/lib/ServiceStack.Text.3.9.46/lib/sl4/ServiceStack.Text.xml

@@ -0,0 +1,385 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>ServiceStack.Text</name>
+    </assembly>
+    <members>
+        <member name="M:ServiceStack.Text.Json.JsonTypeSerializer.WriteRawString(System.IO.TextWriter,System.String)">
+            <summary>
+            Shortcut escape when we're sure value doesn't contain any escaped chars
+            </summary>
+            <param name="writer"></param>
+            <param name="value"></param>
+        </member>
+        <member name="M:ServiceStack.Text.Json.JsonTypeSerializer.ConvertFromUtf32(System.Int32)">
+            <summary>
+            Since Silverlight doesn't have char.ConvertFromUtf32() so putting Mono's implemenation inline.
+            </summary>
+            <param name="utf32"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Text.Jsv.JsvWriter`1">
+            <summary>
+            Implement the serializer using a more static approach
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.Text.DateTimeExtensions">
+            <summary>
+            A fast, standards-based, serialization-issue free DateTime serailizer.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Text.JsonSerializer">
+            <summary>
+            Creates an instance of a Type from a string value
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.ITypeSerializer`1.CanCreateFromString(System.Type)">
+            <summary>
+            Determines whether this serializer can create the specified type from a string.
+            </summary>
+            <param name="type">The type.</param>
+            <returns>
+            	<c>true</c> if this instance [can create from string] the specified type; otherwise, <c>false</c>.
+            </returns>
+        </member>
+        <member name="M:ServiceStack.Text.ITypeSerializer`1.DeserializeFromString(System.String)">
+            <summary>
+            Parses the specified value.
+            </summary>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.ITypeSerializer`1.DeserializeFromReader(System.IO.TextReader)">
+            <summary>
+            Deserializes from reader.
+            </summary>
+            <param name="reader">The reader.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.ITypeSerializer`1.SerializeToString(`0)">
+            <summary>
+            Serializes to string.
+            </summary>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.ITypeSerializer`1.SerializeToWriter(`0,System.IO.TextWriter)">
+            <summary>
+            Serializes to writer.
+            </summary>
+            <param name="value">The value.</param>
+            <param name="writer">The writer.</param>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer`1.DeserializeFromString(System.String)">
+            <summary>
+            Parses the specified value.
+            </summary>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig.tsEmitCamelCaseNames">
+            <summary>
+            <see langword="true"/> if the <see cref="T:ServiceStack.Text.Common.ITypeSerializer"/> is configured
+            to take advantage of <see cref="T:System.CLSCompliantAttribute"/> specification,
+            to support user-friendly serialized formats, ie emitting camelCasing for JSON
+            and parsing member names and enum values in a case-insensitive manner.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.JsConfig.InitForAot">
+            <summary>
+            Provide hint to MonoTouch AOT compiler to pre-compile generic classes for all your DTOs.
+            Just needs to be called once in a static constructor.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.ExcludeTypeInfo">
+            <summary>
+            Never emit type info for this type
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.EmitCamelCaseNames">
+            <summary>
+            <see langword="true"/> if the <see cref="T:ServiceStack.Text.Common.ITypeSerializer"/> is configured
+            to take advantage of <see cref="T:System.CLSCompliantAttribute"/> specification,
+            to support user-friendly serialized formats, ie emitting camelCasing for JSON
+            and parsing member names and enum values in a case-insensitive manner.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.serializeFn">
+            <summary>
+            Define custom serialization fn for BCL Structs
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.DeSerializeFn">
+            <summary>
+            Define custom deserialization fn for BCL Structs
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.ExcludePropertyNames">
+            <summary>
+            Exclude specific properties of this type from being serialized
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Text.Marc.Link`2">
+            <summary>
+            Pretty Thread-Safe cache class from:
+            http://code.google.com/p/dapper-dot-net/source/browse/Dapper/SqlMapper.cs
+            
+            This is a micro-cache; suitable when the number of terms is controllable (a few hundred, for example),
+            and strictly append-only; you cannot change existing values. All key matches are on **REFERENCE**
+            equality. The type is fully thread-safe.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Text.TypeSerializer">
+            <summary>
+            Creates an instance of a Type from a string value
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer.CanCreateFromString(System.Type)">
+            <summary>
+            Determines whether the specified type is convertible from string.
+            </summary>
+            <param name="type">The type.</param>
+            <returns>
+            	<c>true</c> if the specified type is convertible from string; otherwise, <c>false</c>.
+            </returns>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer.DeserializeFromString``1(System.String)">
+            <summary>
+            Parses the specified value.
+            </summary>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer.DeserializeFromString(System.String,System.Type)">
+            <summary>
+            Parses the specified type.
+            </summary>
+            <param name="type">The type.</param>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer.ToStringDictionary``1(``0)">
+            <summary>
+            Useful extension method to get the Dictionary[string,string] representation of any POCO type.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer.Dump``1(``0)">
+            <summary>
+            Recursively prints the contents of any POCO object in a human-friendly, readable format
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Text.Support.DoubleConverter">
+            <summary>
+            A class to allow the conversion of doubles to string representations of
+            their exact decimal values. The implementation aims for readability over
+            efficiency.
+            
+            Courtesy of @JonSkeet
+            http://www.yoda.arachsys.com/csharp/DoubleConverter.cs
+            </summary>
+        </member>
+        <!-- Badly formed XML comment ignored for member "M:ServiceStack.Text.Support.DoubleConverter.ToExactString(System.Double)" -->
+        <!-- Badly formed XML comment ignored for member "T:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal" -->
+        <!-- Badly formed XML comment ignored for member "F:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.digits" -->
+        <member name="F:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.decimalPoint">
+            <summary> 
+            How many digits are *after* the decimal point
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.#ctor(System.Int64)">
+            <summary> 
+            Constructs an arbitrary decimal expansion from the given long.
+            The long must not be negative.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.MultiplyBy(System.Int32)">
+            <summary>
+            Multiplies the current expansion by the given amount, which should
+            only be 2 or 5.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.Shift(System.Int32)">
+            <summary>
+            Shifts the decimal point; a negative value makes
+            the decimal expansion bigger (as fewer digits come after the
+            decimal place) and a positive value makes the decimal
+            expansion smaller.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.Normalize">
+            <summary>
+            Removes leading/trailing zeroes from the expansion.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.ToString">
+            <summary>
+            Converts the value to a proper decimal string representation.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.StreamExtensions.DefaultBufferSize">
+            <summary>
+            @jonskeet: Collection of utility methods which operate on streams.
+            r285, February 26th 2009: http://www.yoda.arachsys.com/csharp/miscutil/
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadFully(System.IO.Stream)">
+            <summary>
+            Reads the given stream up to the end, returning the data as a byte
+            array.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadFully(System.IO.Stream,System.Int32)">
+            <summary>
+            Reads the given stream up to the end, returning the data as a byte
+            array, using the given buffer size.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadFully(System.IO.Stream,System.Byte[])">
+            <summary>
+            Reads the given stream up to the end, returning the data as a byte
+            array, using the given buffer for transferring data. Note that the
+            current contents of the buffer is ignored, so the buffer needn't
+            be cleared beforehand.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.CopyTo(System.IO.Stream,System.IO.Stream)">
+            <summary>
+            Copies all the data from one stream into another.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.CopyTo(System.IO.Stream,System.IO.Stream,System.Int32)">
+            <summary>
+            Copies all the data from one stream into another, using a buffer
+            of the given size.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.CopyTo(System.IO.Stream,System.IO.Stream,System.Byte[])">
+            <summary>
+            Copies all the data from one stream into another, using the given 
+            buffer for transferring data. Note that the current contents of 
+            the buffer is ignored, so the buffer needn't be cleared beforehand.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadExactly(System.IO.Stream,System.Int32)">
+            <summary>
+            Reads exactly the given number of bytes from the specified stream.
+            If the end of the stream is reached before the specified amount
+            of data is read, an exception is thrown.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadExactly(System.IO.Stream,System.Byte[])">
+            <summary>
+            Reads into a buffer, filling it completely.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadExactly(System.IO.Stream,System.Byte[],System.Int32)">
+            <summary>
+            Reads exactly the given number of bytes from the specified stream,
+            into the given buffer, starting at position 0 of the array.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadExactly(System.IO.Stream,System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Reads exactly the given number of bytes from the specified stream,
+            into the given buffer, starting at position 0 of the array.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadExactlyFast(System.IO.Stream,System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Same as ReadExactly, but without the argument checks.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Text.Json.JsonWriter`1">
+            <summary>
+            Implement the serializer using a more static approach
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="M:ServiceStack.Text.JsonSerializer`1.DeserializeFromString(System.String)">
+            <summary>
+            Parses the specified value.
+            </summary>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.StringExtensions.BaseConvert(System.String,System.Int32,System.Int32)">
+            <summary>
+            Converts from base: 0 - 62
+            </summary>
+            <param name="source">The source.</param>
+            <param name="from">From.</param>
+            <param name="to">To.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.StringExtensions.FastToUtf8Bytes(System.String)">
+            <summary>
+            Skip the encoding process for 'safe strings' 
+            </summary>
+            <param name="strVal"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Text.Controller.PathInfo">
+            <summary>
+            Class to hold  
+            </summary>
+        </member>
+        <!-- Badly formed XML comment ignored for member "M:ServiceStack.Text.Controller.PathInfo.Parse(System.String)" -->
+        <member name="M:ServiceStack.Text.Common.DeserializeTypeUtils.GetTypeStringConstructor(System.Type)">
+            <summary>
+            Get the type(string) constructor if exists
+            </summary>
+            <param name="type">The type.</param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Text.QueryStringWriter`1">
+            <summary>
+            Implement the serializer using a more static approach
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.Text.AssemblyUtils">
+            <summary>
+            Utils to load types
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.AssemblyUtils.FindType(System.String)">
+            <summary>
+            Find the type from the name supplied
+            </summary>
+            <param name="typeName">[typeName] or [typeName, assemblyName]</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.AssemblyUtils.FindType(System.String,System.String)">
+            <summary>
+            Find type if it exists
+            </summary>
+            <param name="typeName"></param>
+            <param name="assemblyName"></param>
+            <returns>The type if it exists</returns>
+        </member>
+        <member name="M:ServiceStack.Text.Json.JsonUtils.HasAnyEscapeChars(System.String)">
+            <summary>
+            micro optimizations: using flags instead of value.IndexOfAny(EscapeChars)
+            </summary>
+            <param name="value"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.Common.DateTimeSerializer.ParseWcfJsonDate(System.String)">
+            <summary>
+            WCF Json format: /Date(unixts+0000)/
+            </summary>
+            <param name="wcfJsonDate"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.Common.JsWriter.HasAnyEscapeChars(System.String)">
+            <summary>
+            micro optimizations: using flags instead of value.IndexOfAny(EscapeChars)
+            </summary>
+            <param name="value"></param>
+            <returns></returns>
+        </member>
+    </members>
+</doc>

BIN
servicestack/lib/ServiceStack.Text.3.9.46/lib/sl5/ServiceStack.Text.dll


+ 539 - 0
servicestack/lib/ServiceStack.Text.3.9.46/lib/sl5/ServiceStack.Text.xml

@@ -0,0 +1,539 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>ServiceStack.Text</name>
+    </assembly>
+    <members>
+        <member name="T:ServiceStack.Text.AssemblyUtils">
+            <summary>
+            Utils to load types
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.AssemblyUtils.FindType(System.String)">
+            <summary>
+            Find the type from the name supplied
+            </summary>
+            <param name="typeName">[typeName] or [typeName, assemblyName]</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.AssemblyUtils.MainInterface``1">
+            <summary>
+            The top-most interface of the given type, if any.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.AssemblyUtils.FindType(System.String,System.String)">
+            <summary>
+            Find type if it exists
+            </summary>
+            <param name="typeName"></param>
+            <param name="assemblyName"></param>
+            <returns>The type if it exists</returns>
+        </member>
+        <member name="M:ServiceStack.Text.Common.DateTimeSerializer.Prepare(System.DateTime)">
+            <summary>
+            If AlwaysUseUtc is set to true then convert all DateTime to UTC.
+            </summary>
+            <param name="dateTime"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.Common.DateTimeSerializer.ParseWcfJsonDateOffset(System.String)">
+            <summary>
+            WCF Json format: /Date(unixts+0000)/
+            </summary>
+            <param name="wcfJsonDate"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.Common.DateTimeSerializer.ParseWcfJsonDate(System.String)">
+            <summary>
+            WCF Json format: /Date(unixts+0000)/
+            </summary>
+            <param name="wcfJsonDate"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.Common.DeserializeTypeUtils.GetTypeStringConstructor(System.Type)">
+            <summary>
+            Get the type(string) constructor if exists
+            </summary>
+            <param name="type">The type.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.Common.JsWriter.HasAnyEscapeChars(System.String)">
+            <summary>
+            micro optimizations: using flags instead of value.IndexOfAny(EscapeChars)
+            </summary>
+            <param name="value"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Text.Controller.PathInfo">
+            <summary>
+            Class to hold  
+            </summary>
+        </member>
+        <!-- Badly formed XML comment ignored for member "M:ServiceStack.Text.Controller.PathInfo.Parse(System.String)" -->
+        <member name="T:ServiceStack.Text.DateTimeExtensions">
+            <summary>
+            A fast, standards-based, serialization-issue free DateTime serailizer.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.ITypeSerializer`1.CanCreateFromString(System.Type)">
+            <summary>
+            Determines whether this serializer can create the specified type from a string.
+            </summary>
+            <param name="type">The type.</param>
+            <returns>
+            	<c>true</c> if this instance [can create from string] the specified type; otherwise, <c>false</c>.
+            </returns>
+        </member>
+        <member name="M:ServiceStack.Text.ITypeSerializer`1.DeserializeFromString(System.String)">
+            <summary>
+            Parses the specified value.
+            </summary>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.ITypeSerializer`1.DeserializeFromReader(System.IO.TextReader)">
+            <summary>
+            Deserializes from reader.
+            </summary>
+            <param name="reader">The reader.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.ITypeSerializer`1.SerializeToString(`0)">
+            <summary>
+            Serializes to string.
+            </summary>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.ITypeSerializer`1.SerializeToWriter(`0,System.IO.TextWriter)">
+            <summary>
+            Serializes to writer.
+            </summary>
+            <param name="value">The value.</param>
+            <param name="writer">The writer.</param>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig.sTimeSpanHandler">
+            <summary>
+            Sets which format to use when serializing TimeSpans
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig.sEmitCamelCaseNames">
+            <summary>
+            <see langword="true"/> if the <see cref="T:ServiceStack.Text.Common.ITypeSerializer"/> is configured
+            to take advantage of <see cref="T:System.CLSCompliantAttribute"/> specification,
+            to support user-friendly serialized formats, ie emitting camelCasing for JSON
+            and parsing member names and enum values in a case-insensitive manner.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig.sEmitLowercaseUnderscoreNames">
+            <summary>
+            <see langword="true"/> if the <see cref="T:ServiceStack.Text.Common.ITypeSerializer"/> is configured
+            to support web-friendly serialized formats, ie emitting lowercase_underscore_casing for JSON
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig.propertyConvention">
+            <summary>
+            Define how property names are mapped during deserialization
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig.sThrowOnDeserializationError">
+            <summary>
+            Gets or sets a value indicating if the framework should throw serialization exceptions
+            or continue regardless of deserialization errors. If <see langword="true"/>  the framework
+            will throw; otherwise, it will parse as many fields as possible. The default is <see langword="false"/>.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig.sAlwaysUseUtc">
+            <summary>
+            Gets or sets a value indicating if the framework should always convert <see cref="T:System.DateTime"/> to UTC format instead of local time. 
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig.sEscapeUnicode">
+            <summary>
+            Gets or sets a value indicating if unicode symbols should be serialized as "\uXXXX".
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig.sIncludePublicFields">
+            <summary>
+            If set to true, Interface types will be prefered over concrete types when serializing.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig.sModelFactory">
+            <summary>
+            Set this to enable your own type construction provider.
+            This is helpful for integration with IoC containers where you need to call the container constructor.
+            Return null if you don't know how to construct the type and the parameterless constructor will be used.
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Text.JsConfig.PreferInterfaces">
+            <summary>
+            If set to true, Interface types will be prefered over concrete types when serializing.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.IncludeTypeInfo">
+            <summary>
+            Always emit type info for this type.  Takes precedence over ExcludeTypeInfo
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.ExcludeTypeInfo">
+            <summary>
+            Never emit type info for this type
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.EmitCamelCaseNames">
+            <summary>
+            <see langword="true"/> if the <see cref="T:ServiceStack.Text.Common.ITypeSerializer"/> is configured
+            to take advantage of <see cref="T:System.CLSCompliantAttribute"/> specification,
+            to support user-friendly serialized formats, ie emitting camelCasing for JSON
+            and parsing member names and enum values in a case-insensitive manner.
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.serializeFn">
+            <summary>
+            Define custom serialization fn for BCL Structs
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.rawSerializeFn">
+            <summary>
+            Define custom raw serialization fn
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.onSerializingFn">
+            <summary>
+            Define custom serialization hook
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.DeSerializeFn">
+            <summary>
+            Define custom deserialization fn for BCL Structs
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.RawDeserializeFn">
+            <summary>
+            Define custom raw deserialization fn for objects
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsConfig`1.ExcludePropertyNames">
+            <summary>
+            Exclude specific properties of this type from being serialized
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Text.JsConfig`1.TreatValueAsRefType">
+            <summary>
+            Opt-in flag to set some Value Types to be treated as a Ref Type
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Text.JsConfig`1.HasSerializeFn">
+            <summary>
+            Whether there is a fn (raw or otherwise)
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsonPropertyConvention.ExactMatch">
+            <summary>
+            The property names on target types must match property names in the JSON source
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsonPropertyConvention.Lenient">
+            <summary>
+            The property names on target types may not match the property names in the JSON source
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsonTimeSpanHandler.DurationFormat">
+            <summary>
+            Uses the xsd format like PT15H10M20S
+            </summary>
+        </member>
+        <member name="F:ServiceStack.Text.JsonTimeSpanHandler.StandardFormat">
+            <summary>
+            Uses the standard .net ToString method of the TimeSpan class
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.JsonExtensions.Get``1(System.Collections.Generic.Dictionary{System.String,System.String},System.String)">
+            <summary>
+            Get JSON string value converted to T
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.JsonExtensions.Get(System.Collections.Generic.Dictionary{System.String,System.String},System.String)">
+            <summary>
+            Get JSON string value
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.JsonObject.GetUnescaped(System.String)">
+            <summary>
+            Get unescaped string value
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.JsonObject.Child(System.String)">
+            <summary>
+            Get unescaped string value
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.JsonObject.WriteValue(System.IO.TextWriter,System.Object)">
+            <summary>
+            Write JSON Array, Object, bool or number values as raw string
+            </summary>
+        </member>
+        <member name="P:ServiceStack.Text.JsonObject.Item(System.String)">
+            <summary>
+            Get JSON string value
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Text.JsonSerializer">
+            <summary>
+            Creates an instance of a Type from a string value
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.JsonSerializer`1.DeserializeFromString(System.String)">
+            <summary>
+            Parses the specified value.
+            </summary>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.Json.JsonTypeSerializer.WriteRawString(System.IO.TextWriter,System.String)">
+            <summary>
+            Shortcut escape when we're sure value doesn't contain any escaped chars
+            </summary>
+            <param name="writer"></param>
+            <param name="value"></param>
+        </member>
+        <member name="M:ServiceStack.Text.Json.JsonTypeSerializer.ConvertFromUtf32(System.Int32)">
+            <summary>
+            Given a character as utf32, returns the equivalent string provided that the character
+            is legal json.
+            </summary>
+            <param name="utf32"></param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.Json.JsonUtils.HasAnyEscapeChars(System.String)">
+            <summary>
+            micro optimizations: using flags instead of value.IndexOfAny(EscapeChars)
+            </summary>
+            <param name="value"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Text.Json.JsonWriter`1">
+            <summary>
+            Implement the serializer using a more static approach
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.Text.Jsv.JsvWriter`1">
+            <summary>
+            Implement the serializer using a more static approach
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="T:ServiceStack.Text.Marc.Link`2">
+            <summary>
+            Pretty Thread-Safe cache class from:
+            http://code.google.com/p/dapper-dot-net/source/browse/Dapper/SqlMapper.cs
+            
+            This is a micro-cache; suitable when the number of terms is controllable (a few hundred, for example),
+            and strictly append-only; you cannot change existing values. All key matches are on **REFERENCE**
+            equality. The type is fully thread-safe.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Text.QueryStringWriter`1">
+            <summary>
+            Implement the serializer using a more static approach
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="F:ServiceStack.Text.StreamExtensions.DefaultBufferSize">
+            <summary>
+            @jonskeet: Collection of utility methods which operate on streams.
+            r285, February 26th 2009: http://www.yoda.arachsys.com/csharp/miscutil/
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadFully(System.IO.Stream)">
+            <summary>
+            Reads the given stream up to the end, returning the data as a byte
+            array.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadFully(System.IO.Stream,System.Int32)">
+            <summary>
+            Reads the given stream up to the end, returning the data as a byte
+            array, using the given buffer size.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadFully(System.IO.Stream,System.Byte[])">
+            <summary>
+            Reads the given stream up to the end, returning the data as a byte
+            array, using the given buffer for transferring data. Note that the
+            current contents of the buffer is ignored, so the buffer needn't
+            be cleared beforehand.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.CopyTo(System.IO.Stream,System.IO.Stream)">
+            <summary>
+            Copies all the data from one stream into another.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.CopyTo(System.IO.Stream,System.IO.Stream,System.Int32)">
+            <summary>
+            Copies all the data from one stream into another, using a buffer
+            of the given size.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.CopyTo(System.IO.Stream,System.IO.Stream,System.Byte[])">
+            <summary>
+            Copies all the data from one stream into another, using the given 
+            buffer for transferring data. Note that the current contents of 
+            the buffer is ignored, so the buffer needn't be cleared beforehand.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadExactly(System.IO.Stream,System.Int32)">
+            <summary>
+            Reads exactly the given number of bytes from the specified stream.
+            If the end of the stream is reached before the specified amount
+            of data is read, an exception is thrown.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadExactly(System.IO.Stream,System.Byte[])">
+            <summary>
+            Reads into a buffer, filling it completely.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadExactly(System.IO.Stream,System.Byte[],System.Int32)">
+            <summary>
+            Reads exactly the given number of bytes from the specified stream,
+            into the given buffer, starting at position 0 of the array.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadExactly(System.IO.Stream,System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Reads exactly the given number of bytes from the specified stream,
+            into the given buffer, starting at position 0 of the array.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StreamExtensions.ReadExactlyFast(System.IO.Stream,System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Same as ReadExactly, but without the argument checks.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.StringExtensions.BaseConvert(System.String,System.Int32,System.Int32)">
+            <summary>
+            Converts from base: 0 - 62
+            </summary>
+            <param name="source">The source.</param>
+            <param name="from">From.</param>
+            <param name="to">To.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.StringExtensions.FastToUtf8Bytes(System.String)">
+            <summary>
+            Skip the encoding process for 'safe strings' 
+            </summary>
+            <param name="strVal"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ServiceStack.Text.Support.DoubleConverter">
+            <summary>
+            A class to allow the conversion of doubles to string representations of
+            their exact decimal values. The implementation aims for readability over
+            efficiency.
+            
+            Courtesy of @JonSkeet
+            http://www.yoda.arachsys.com/csharp/DoubleConverter.cs
+            </summary>
+        </member>
+        <!-- Badly formed XML comment ignored for member "M:ServiceStack.Text.Support.DoubleConverter.ToExactString(System.Double)" -->
+        <!-- Badly formed XML comment ignored for member "T:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal" -->
+        <!-- Badly formed XML comment ignored for member "F:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.digits" -->
+        <member name="F:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.decimalPoint">
+            <summary> 
+            How many digits are *after* the decimal point
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.#ctor(System.Int64)">
+            <summary> 
+            Constructs an arbitrary decimal expansion from the given long.
+            The long must not be negative.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.MultiplyBy(System.Int32)">
+            <summary>
+            Multiplies the current expansion by the given amount, which should
+            only be 2 or 5.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.Shift(System.Int32)">
+            <summary>
+            Shifts the decimal point; a negative value makes
+            the decimal expansion bigger (as fewer digits come after the
+            decimal place) and a positive value makes the decimal
+            expansion smaller.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.Normalize">
+            <summary>
+            Removes leading/trailing zeroes from the expansion.
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.Support.DoubleConverter.ArbitraryDecimal.ToString">
+            <summary>
+            Converts the value to a proper decimal string representation.
+            </summary>
+        </member>
+        <member name="T:ServiceStack.Text.TypeSerializer">
+            <summary>
+            Creates an instance of a Type from a string value
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer.CanCreateFromString(System.Type)">
+            <summary>
+            Determines whether the specified type is convertible from string.
+            </summary>
+            <param name="type">The type.</param>
+            <returns>
+            	<c>true</c> if the specified type is convertible from string; otherwise, <c>false</c>.
+            </returns>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer.DeserializeFromString``1(System.String)">
+            <summary>
+            Parses the specified value.
+            </summary>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer.DeserializeFromString(System.String,System.Type)">
+            <summary>
+            Parses the specified type.
+            </summary>
+            <param name="type">The type.</param>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer.ToStringDictionary``1(``0)">
+            <summary>
+            Useful extension method to get the Dictionary[string,string] representation of any POCO type.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer.Dump``1(``0)">
+            <summary>
+            Recursively prints the contents of any POCO object in a human-friendly, readable format
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer.PrintDump``1(``0)">
+            <summary>
+            Print Dump to Console.WriteLine
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer.Print(System.String,System.Object[])">
+            <summary>
+            Print string.Format to Console.WriteLine
+            </summary>
+        </member>
+        <member name="M:ServiceStack.Text.TypeSerializer`1.DeserializeFromString(System.String)">
+            <summary>
+            Parses the specified value.
+            </summary>
+            <param name="value">The value.</param>
+            <returns></returns>
+        </member>
+    </members>
+</doc>

+ 1 - 0
servicestack/lib/VisualStudio.MsBuild.11.0/Readme.md

@@ -0,0 +1 @@
+These are MSBuild files that come with Visual Studio 2012 Update 2. They can be found in `C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0`.

+ 181 - 0
servicestack/lib/VisualStudio.MsBuild.11.0/Web/CollectFiles/Microsoft.Web.Publishing.AllFilesInProjectFolder.targets

@@ -0,0 +1,181 @@
+<!--
+***********************************************************************************************
+Microsoft.Web.Publishing.AllFilesInProjectFolder.targets
+
+WARNING:  DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
+          created a backup copy.  Incorrect changes to this file will make it
+          impossible to load or build your web deploy projects from the command-line or the IDE.
+
+This file defines the steps in the standard package/publish process for collecting all files in the project folder.
+
+Copyright (C) Microsoft Corporation. All rights reserved.
+***********************************************************************************************
+-->
+<Project  xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!--Import task from our dll-->
+  <UsingTask TaskName="CollectFilesinFolder" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="EscapeTextForRegularExpressions" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="FilterByItems" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="GetPublishingLocalizedString" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+
+  <!--ImportBefore Extension-->
+  <PropertyGroup>
+    <ImportByWildcardBeforeMicrosoftWebPublishingAllFilesInProjectFolderTargets Condition="'$(ImportByWildcardBeforeMicrosoftWebPublishingAllFilesInProjectFolderTargets)'==''">true</ImportByWildcardBeforeMicrosoftWebPublishingAllFilesInProjectFolderTargets>
+  </PropertyGroup>
+  <Import Project="$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportBefore\*" Condition="'$(ImportByWildcardBeforeMicrosoftWebPublishingAllFilesInProjectFolderTargets)' == 'true' and exists('$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportBefore')"/>
+
+
+  <PropertyGroup>
+    <PublishPipelineCollectFilesCore>
+      $(PublishPipelineCollectFilesCore);
+      CollectFilesFromProjectFolder;
+     </PublishPipelineCollectFilesCore>
+    <_CollectFiles_IncludeIgnorableFile Condition="'$(_CollectFiles_IncludeIgnorableFile)'==''">False</_CollectFiles_IncludeIgnorableFile>
+
+    <!--Overwrite the default behavior.  Don't remove the web.debug.config -->
+    <ExcludeTransformAssistFilesFromPublish Condition="'$(ExcludeTransformAssistFilesFromPublish)'==''">False</ExcludeTransformAssistFilesFromPublish>
+    <CollectFilesFromProjectFolder_ExcludeSccFiles Condition="'$(CollectFilesFromProjectFolder_ExcludeSccFiles)'==''">True</CollectFilesFromProjectFolder_ExcludeSccFiles>
+  </PropertyGroup>
+
+  <!--********************************************************************-->
+  <!-- Task SetExcludeFromProjectFolder -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <SetExcludeFromProjectFolderDependsOn Condition="'$(SetExcludeFromProjectFolderDependsOn)'==''">
+    </SetExcludeFromProjectFolderDependsOn>
+  </PropertyGroup>
+
+  <Target Name="SetExcludeFromProjectFolder"
+          DependsOnTargets="$(SetExcludeFromProjectFolderDependsOn)">
+
+    <!--Get Localized string before display message-->
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_DefaultExcludeIntermediateOutputFolderMessage"
+      LogType="Message" />
+      
+    <GetPublishingLocalizedString
+          ID="PublishLocalizedString_DefaultExcludeFileExtentionOutMessage"
+          LogType="Message" />
+    <GetPublishingLocalizedString
+          ID="PublishLocalizedString_DefaultExcludeSourceControlItems"
+          LogType="Message" />
+
+    <!--Maybe we need to introduce @(_ExcludeFromProjectFolder)-->
+    <ItemGroup>
+
+      <!--Split item to _KnowProjectItems is to keep the metadata for item collection. 
+      Please see  http://msdn.microsoft.com/en-us/library/bb629388.aspx for known Project item collection.-->
+      <_KnownProjectItems Include="@(EmbeddedResource)" />
+      <_KnownProjectItems Include="@(None)" />
+      <_KnownProjectItems Include="@(Content)" />
+      <_KnownProjectItems Include="@(Compile)" />
+
+
+      <!--Explicit exclude all files under the obj folder -->
+      <_ProjectBaseIntermediateOutputPath Include="$(BaseIntermediateOutputPath)"/>
+      
+    </ItemGroup>
+
+    <!--Create the rgulare expression to exclude all root folder *.out, all folder *.scc and all folder*.vspscc file-->
+    <!--Note split by semicolon (;)-->
+    <PropertyGroup>
+      <_ExcludeRelativePathFromProjectFolder>^[^\\]*\.out$</_ExcludeRelativePathFromProjectFolder>
+    </PropertyGroup>
+
+    <!--Create the rgulare expression to exclude all Intermedidate output path.-->
+    <EscapeTextForRegularExpressions Text="@(_ProjectBaseIntermediateOutputPath->'%(FullPath)')">
+      <Output TaskParameter="Result" PropertyName="_ExcludeFullPathFromProjectFolder" />
+    </EscapeTextForRegularExpressions>
+
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!-- Task CollectFilesFromProjectFolder_ExcludeSccFiles -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <CollectFilesFromProjectFolder_ExcludeSccFilesDependsOn>
+      $(OnBeforeCollectFilesFromProjectFolder_ExcludeSccFiles);
+      $(CollectFilesFromProjectFolder_ExcludeSccFilesDependsOn);
+      SetExcludeFromProjectFolder;
+    </CollectFilesFromProjectFolder_ExcludeSccFilesDependsOn>
+  </PropertyGroup>
+  <Target Name="CollectFilesFromProjectFolder_ExcludeSccFiles"
+          DependsOnTargets="$(CollectFilesFromProjectFolder_ExcludeSccFilesDependsOn)"
+          Condition="$(CollectFilesFromProjectFolder_ExcludeSccFiles)">
+    <!--Note split by semicolon (;)-->
+    <PropertyGroup>
+      <_ExcludeRelativePathFromProjectFolder>$(_ExcludeRelativePathFromProjectFolder);[^\\]*\.scc$;[^\\]*\.vssscc$;[^\\]*\.vspscc$</_ExcludeRelativePathFromProjectFolder>
+    </PropertyGroup>
+
+    <CallTarget Targets="$(OnAfterCollectFilesFromProjectFolder_ExcludeSccFiles)" RunEachTargetSeparately="false" />
+  </Target>
+  
+  
+  
+  <!--********************************************************************-->
+  <!-- Task CollectFilesFromProjectFolder -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <CollectFilesFromProjectFolderDependsOn>
+      $(OnBeforeCollectFilesFromProjectFolder);
+      $(CollectFilesFromProjectFolderDependsOn);
+      SetExcludeFromProjectFolder;
+      CollectFilesFromProjectFolder_ExcludeSccFiles;
+    </CollectFilesFromProjectFolderDependsOn>
+  </PropertyGroup>
+  <Target Name="CollectFilesFromProjectFolder"
+          DependsOnTargets="$(CollectFilesFromProjectFolderDependsOn)" >
+
+    <!--Get Localized string before display message-->
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_GatherAllFilesInProjectFolderExceptExclusion"
+      LogType="Message" />
+
+    <CollectFilesinFolder RootPath="$(WebPublishPipelineProjectDirectory)"
+                          ExcludeFullPathMatchs="$(_ExcludeFullPathFromProjectFolder)"
+                          ExcludeRelativePathMatchs="$(_ExcludeRelativePathFromProjectFolder)" 
+                          SkipHiddenItems="$(_SkipHiddenItems)">
+      <Output TaskParameter="Result" ItemName="_AllFilesUnderProjectFolderNoMetadata" />
+    </CollectFilesinFolder>
+    
+
+    <!--The first two lines keeps the _KnowProjectItem's item metadata-->
+    <FilterByItems PipelineItems="@(_AllFilesUnderProjectFolderNoMetadata)"
+                   Filter="@(_KnownProjectItems)">
+      <Output TaskParameter="OutFilter" ItemName="_AllFilesUnderProjectFolderExceptKnownProjectItems"/>
+    </FilterByItems>
+    
+    <ItemGroup>
+      <!--Readd  _KnowProjectItem's to keep  item metadata. First for non-Link file -->
+      <FilesForPackagingFromProject Include="@(_KnownProjectItems)" Condition="'%(_KnownProjectItems.Link)'==''">
+        <DestinationRelativePath>%(_KnownProjectItems.Identity)</DestinationRelativePath>
+        <FromTarget>CollectFilesFromProjectFolder.KonwnProjectItems</FromTarget>
+        <Category>AllFilesInProjectFolder</Category>
+      </FilesForPackagingFromProject>
+      <FilesForPackagingFromProject Include="@(_KnownProjectItems)"  Condition="'%(_KnownProjectItems.Link)'!='' And $(EnableCollectLinkFilesInProject)">
+        <DestinationRelativePath>%(_KnownProjectItems.Link)</DestinationRelativePath>
+        <FromTarget>CollectFilesFromProjectFolder.KonwnProjectItems</FromTarget>
+        <Category>AllFilesInProjectFolder</Category>
+        <Exclude>$(ExcludeLinkFilesInProject)</Exclude>
+        <ProjectFileType>Link</ProjectFileType>
+      </FilesForPackagingFromProject>
+      
+      <FilesForPackagingFromProject Include="@(_AllFilesUnderProjectFolderExceptKnownProjectItems)" >
+        <DestinationRelativePath>%(_AllFilesUnderProjectFolderExceptKnownProjectItems.Identity)</DestinationRelativePath>
+        <FromTarget>CollectFilesFromProjectFolder.ExceptKonwnProjectItems</FromTarget>
+        <Category>AllFilesInProjectFolder</Category>
+      </FilesForPackagingFromProject>
+
+    </ItemGroup>
+    <CallTarget Targets="$(OnAfterCollectFilesFromProjectFolder)" RunEachTargetSeparately="false" />
+  </Target>
+
+  <!--ImportAfter Extension-->
+  <PropertyGroup>
+    <ImportByWildcardAfterMicrosoftWebPublishingAllFilesInProjectFolderTargets Condition="'$(ImportByWildcardAfterMicrosoftWebPublishingAllFilesInProjectFolderTargets)'==''">true</ImportByWildcardAfterMicrosoftWebPublishingAllFilesInProjectFolderTargets>
+  </PropertyGroup>
+  <Import Project="$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportAfter\*" Condition="'$(ImportByWildcardAfterMicrosoftWebPublishingAllFilesInProjectFolderTargets)' == 'true' and exists('$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportAfter')"/>
+
+</Project>
+

+ 242 - 0
servicestack/lib/VisualStudio.MsBuild.11.0/Web/CollectFiles/Microsoft.Web.Publishing.AllFilesInTheProject.targets

@@ -0,0 +1,242 @@
+<!--
+***********************************************************************************************
+Microsoft.Web.Publishing.AllFilesInTheProject.targets
+
+WARNING:  DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
+          created a backup copy.  Incorrect changes to this file will make it
+          impossible to load or build your web deploy projects from the command-line or the IDE.
+
+This file defines the steps in the standard package/publish process for collecting only project files .
+
+Copyright (C) Microsoft Corporation. All rights reserved.
+***********************************************************************************************
+-->
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!--ImportBefore Extension-->
+  <PropertyGroup>
+    <ImportByWildcardBeforeMicrosoftWebPublishingAllFilesInTheProjectTargets Condition="'$(ImportByWildcardBeforeMicrosoftWebPublishingAllFilesInTheProjectTargets)'==''">true</ImportByWildcardBeforeMicrosoftWebPublishingAllFilesInTheProjectTargets>
+  </PropertyGroup>
+  <Import Project="$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportBefore\*" Condition="'$(ImportByWildcardBeforeMicrosoftWebPublishingAllFilesInTheProjectTargets)' == 'true' and exists('$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportBefore')"/>
+
+  <!--The following property need to set before import of Microsoft.Web.Publishing.OnlyFilesToRunTheApp.targets or it will set the property first-->
+  <PropertyGroup>
+    <!--Overwrite the default behavior.  Don't remove the web.debug.config -->
+    <ExcludeTransformAssistFilesFromPublish Condition="'$(ExcludeTransformAssistFilesFromPublish)'==''">False</ExcludeTransformAssistFilesFromPublish>
+  </PropertyGroup>
+
+  <!--We need all of the item in the minimum run web needed-->
+  <Import Project="Microsoft.Web.Publishing.OnlyFilesToRunTheApp.targets"/>
+
+  <PropertyGroup>
+    <PublishPipelineCollectFilesCore>
+      $(PublishPipelineCollectFilesCore);
+      CollectFilesFromCompile;
+      CollectFilesFromEmbeddedResource;
+      CollectFilesFromNone;
+      CollectFilesFromBaseApplicationManifest;
+      CollectFilesFromProjectFile;
+    </PublishPipelineCollectFilesCore>
+  </PropertyGroup>
+
+  <!--MSBuild target does not have a good way to identify all item in the project yet. 
+  MSBuild team is working on this.  At the same time, we are working backward from only known common item collection from 
+  The following is base on http://msdn.microsoft.com/en-us/library/bb629388.aspx for common project item.
+  Note that Content Collection is already in the Microsoft.Web.Publishing.OnlyFilesToRunTheApp.targets-->
+  
+  <!--********************************************************************-->
+  <!-- Task CollectFilesFromCompile -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <CollectFilesFromCompileDependsOn>
+      $(OnBeforeCollectFilesFromCompile);
+      $(CollectFilesFromCompileDependsOn);
+    </CollectFilesFromCompileDependsOn>
+  </PropertyGroup>
+  <Target Name="CollectFilesFromCompile"
+          DependsOnTargets="$(CollectFilesFromCompileDependsOn)"
+          Condition="'@(Compile)'!=''">
+
+
+    <!--Get Localized string before display message-->
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_GatherSpecificItemsFromProject"
+      ArgumentCount="1"
+      Arguments="Compile"
+      LogType="Message" />
+    <Message Text="@(Compile)" />
+    
+    <ItemGroup>
+      <FilesForPackagingFromProject Include="@(Compile)" Condition="'%(Compile.Link)'==''">
+        <DestinationRelativePath>%(Compile.Identity)</DestinationRelativePath>
+        <FromTarget>CollectFilesFromCompile</FromTarget>
+        <Category>ProjectNotRunRequired</Category>
+      </FilesForPackagingFromProject>
+      <FilesForPackagingFromProject Include="@(Compile)" Condition="'%(Compile.Link)'!='' And $(EnableCollectLinkFilesInProject)">
+        <DestinationRelativePath>%(Compile.Link)</DestinationRelativePath>
+        <FromTarget>CollectFilesFromCompile</FromTarget>
+        <Category>ProjectNotRunRequired</Category>
+        <Exclude>$(ExcludeLinkFilesInProject)</Exclude>
+        <ProjectFileType>Link</ProjectFileType>
+      </FilesForPackagingFromProject>
+    </ItemGroup>
+    <CallTarget Targets="$(OnAfterCollectFilesFromCompile)" RunEachTargetSeparately="false" />
+  </Target>
+
+  <!--********************************************************************-->
+  <!-- Task CollectFilesFromEmbeddedResource -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <CollectFilesFromEmbeddedResourceDependsOn>
+      $(OnBeforeCollectFilesFromEmbeddedResource);
+      $(CollectFilesFromEmbeddedResourceDependsOn);
+    </CollectFilesFromEmbeddedResourceDependsOn>
+  </PropertyGroup>
+  <Target Name="CollectFilesFromEmbeddedResource"
+          DependsOnTargets="$(CollectFilesFromEmbeddedResourceDependsOn)"
+          Condition="'@(EmbeddedResource)'!=''">
+
+    <!--Get Localized string before display message-->
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_GatherSpecificItemsFromProject"
+      ArgumentCount="1"
+      Arguments="EmbeddedResource"
+      LogType="Message" />
+    <Message Text="@(EmbeddedResource)" />
+
+    <ItemGroup>
+      <FilesForPackagingFromProject Include="@(EmbeddedResource)" Condition="'%(EmbeddedResource.Link)'==''">
+        <DestinationRelativePath>%(EmbeddedResource.Identity)</DestinationRelativePath>
+        <FromTarget>CollectFilesFromEmbeddedResource</FromTarget>
+        <Category>ProjectNotRunRequired</Category>
+      </FilesForPackagingFromProject>
+      <FilesForPackagingFromProject Include="@(EmbeddedResource)" Condition="'%(EmbeddedResource.Link)'!='' And $(EnableCollectLinkFilesInProject)">
+        <DestinationRelativePath>%(EmbeddedResource.Link)</DestinationRelativePath>
+        <FromTarget>CollectFilesFromEmbeddedResource</FromTarget>
+        <Category>ProjectNotRunRequired</Category>
+        <Exclude>$(ExcludeLinkFilesInProject)</Exclude>
+        <ProjectFileType>Link</ProjectFileType>
+      </FilesForPackagingFromProject>
+    </ItemGroup>
+    <CallTarget Targets="$(OnAfterCollectFilesFromEmbeddedResource)" RunEachTargetSeparately="false" />
+  </Target>
+
+  <!--********************************************************************-->
+  <!-- Task CollectFilesFromNone -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <CollectFilesFromNoneDependsOn>
+      $(OnBeforeCollectFilesFromNone);
+      $(CollectFilesFromNoneDependsOn);
+    </CollectFilesFromNoneDependsOn>
+  </PropertyGroup>
+  <Target Name="CollectFilesFromNone"
+          DependsOnTargets="$(CollectFilesFromNoneDependsOn)"
+          Condition="'@(None)'!=''">
+
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_GatherSpecificItemsFromProject"
+      ArgumentCount="1"
+      Arguments="None"
+      LogType="Message" />
+    <Message Text="@(None)" />
+    
+    <ItemGroup>
+      <FilesForPackagingFromProject Include="@(None)" Condition="'%(None.Link)'==''">
+        <DestinationRelativePath>%(None.Identity)</DestinationRelativePath>
+        <FromTarget>CollectFilesFromNone</FromTarget>
+        <Category>ProjectNotRunRequired</Category>
+      </FilesForPackagingFromProject>
+      <FilesForPackagingFromProject Include="@(None)" Condition="'%(None.Link)'!='' And $(EnableCollectLinkFilesInProject)" >
+        <DestinationRelativePath>%(None.Link)</DestinationRelativePath>
+        <FromTarget>CollectFilesFromNone</FromTarget>
+        <Category>ProjectNotRunRequired</Category>
+        <Exclude>$(ExcludeLinkFilesInProject)</Exclude>
+        <ProjectFileType>Link</ProjectFileType>
+      </FilesForPackagingFromProject>
+    </ItemGroup>
+    <CallTarget Targets="$(OnAfterCollectFilesFromNone)" RunEachTargetSeparately="false" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!-- Task CollectFilesFromBaseApplicationManifest -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <CollectFilesFromBaseApplicationManifestDependsOn>
+      $(OnBeforeCollectFilesFromBaseApplicationManifest);
+      $(CollectFilesFromBaseApplicationManifestDependsOn);
+    </CollectFilesFromBaseApplicationManifestDependsOn>
+  </PropertyGroup>
+  <Target Name="CollectFilesFromBaseApplicationManifest"
+          DependsOnTargets="$(CollectFilesFromBaseApplicationManifestDependsOn)"
+          Condition="'@(BaseApplicationManifest)'!=''">
+
+
+    <!--Get Localized string before display message-->
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_GatherSpecificItemsFromProject"
+      ArgumentCount="1"
+      Arguments="BaseApplicationManifest"
+      LogType="Message" />
+    <Message Text="@(BaseApplicationManifest)" />
+
+    <ItemGroup>
+      <FilesForPackagingFromProject Include="@(BaseApplicationManifest)" Condition="'%(BaseApplicationManifest.Link)'==''">
+        <DestinationRelativePath>%(BaseApplicationManifest.Identity)</DestinationRelativePath>
+        <FromTarget>CollectFilesFromBaseApplicationManifest</FromTarget>
+        <Category>ProjectNotRunRequired</Category>
+      </FilesForPackagingFromProject>
+      <FilesForPackagingFromProject Include="@(BaseApplicationManifest)" Condition="'%(BaseApplicationManifest.Link)'!='' And $(EnableCollectLinkFilesInProject)">
+        <DestinationRelativePath>%(BaseApplicationManifest.Link)</DestinationRelativePath>
+        <FromTarget>CollectFilesFromBaseApplicationManifest</FromTarget>
+        <Category>ProjectNotRunRequired</Category>
+        <Exclude>$(ExcludeLinkFilesInProject)</Exclude>
+        <ProjectFileType>Link</ProjectFileType>
+      </FilesForPackagingFromProject>
+    </ItemGroup>
+    <CallTarget Targets="$(OnAfterCollectFilesFromBaseApplicationManifest)" RunEachTargetSeparately="false" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!-- Task CollectFilesFromProjectFile -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <CollectFilesFromProjectFileDependsOn>
+      $(OnBeforeCollectFilesFromProjectFile);
+      $(CollectFilesFromProjectFileDependsOn);
+    </CollectFilesFromProjectFileDependsOn>
+  </PropertyGroup>
+  <Target Name="CollectFilesFromProjectFile"
+          DependsOnTargets="$(CollectFilesFromProjectFileDependsOn)">
+
+    <!--Get Localized string before display message-->
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_GatherSpecificItemsFromProject"
+      ArgumentCount="1"
+      Arguments="ProjectFiles"
+      LogType="Message" />
+    <Message Text="$(MSBuildProjectFile);$(MSBuildProjectFile).user" />
+
+    <ItemGroup>
+      <FilesForPackagingFromProject Include="$(MSBuildProjectFile)">
+        <DestinationRelativePath>$(MSBuildProjectFile)</DestinationRelativePath>
+        <FromTarget>CollectFilesFromProjectFile</FromTarget>
+        <Category>ProjectNotRunRequired</Category>
+      </FilesForPackagingFromProject>
+      <FilesForPackagingFromProject Include="$(MSBuildProjectFile).user" Condition="Exists('$(MSBuildProjectFile).user')">
+        <DestinationRelativePath>$(MSBuildProjectFile).user</DestinationRelativePath>
+        <FromTarget>CollectFilesFromProjectFile</FromTarget>
+        <Category>ProjectNotRunRequired</Category>
+      </FilesForPackagingFromProject>
+    </ItemGroup>
+    <CallTarget Targets="$(OnAfterCollectFilesFromProjectFile)" RunEachTargetSeparately="false" />
+  </Target>
+
+  <!--ImportAfter Extension-->
+  <PropertyGroup>
+    <ImportByWildcardAfterMicrosoftWebPublishingAllFilesInTheProjectTargets Condition="'$(ImportByWildcardAfterMicrosoftWebPublishingAllFilesInTheProjectTargets)'==''">true</ImportByWildcardAfterMicrosoftWebPublishingAllFilesInTheProjectTargets>
+  </PropertyGroup>
+  <Import Project="$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportAfter\*" Condition="'$(ImportByWildcardAfterMicrosoftWebPublishingAllFilesInTheProjectTargets)' == 'true' and exists('$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportAfter')"/>
+
+</Project>

+ 445 - 0
servicestack/lib/VisualStudio.MsBuild.11.0/Web/CollectFiles/Microsoft.Web.Publishing.OnlyFilesToRunTheApp.targets

@@ -0,0 +1,445 @@
+<!--
+***********************************************************************************************
+Microsoft.Web.Publishing.OnlyFilesToRunTheApp.targets
+
+WARNING:  DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
+          created a backup copy.  Incorrect changes to this file will make it
+          impossible to load or build your web deploy projects from the command-line or the IDE.
+
+This file defines the steps in the standard package/publish process for collecting only files to run the web appliation.
+
+Copyright (C) Microsoft Corporation. All rights reserved.
+***********************************************************************************************
+-->
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!--Import task from our dll-->
+  <UsingTask TaskName="GetPublishingLocalizedString" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="FilterByItems" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+
+  <!--ImportBefore Extension-->
+  <PropertyGroup>
+    <ImportByWildcardBeforeMicrosoftWebPublishingOnlyFilesToRunTheAppTargets Condition="'$(ImportByWildcardBeforeMicrosoftWebPublishingOnlyFilesToRunTheAppTargets)'==''">true</ImportByWildcardBeforeMicrosoftWebPublishingOnlyFilesToRunTheAppTargets>
+  </PropertyGroup>
+  <Import Project="$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportBefore\*" Condition="'$(ImportByWildcardBeforeMicrosoftWebPublishingOnlyFilesToRunTheAppTargets)' == 'true' and exists('$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportBefore')"/>
+
+  <PropertyGroup>
+    <PublishPipelineCollectFilesCore>
+      $(PublishPipelineCollectFilesCore);
+      CollectFilesFromIntermediateAssembly;
+      CollectFilesFromContent;
+      CollectFilesFromAddModules;
+      CollectFilesFrom_SGenDllCreated;
+      CollectFilesFromIntermediateSatelliteAssembliesWithTargetPath;
+      CollectFilesFromReference;
+      CollectFilesFromAllExtraReferenceFiles;
+      CollectFilesFrom_SourceItemsToCopyToOutputDirectory;
+      CollectFilesFromDocFileItem;
+      CollectFilesFrom_WebApplicationSilverlightXapFiles;
+      CollectFilesFrom_binDeployableAssemblies;
+    </PublishPipelineCollectFilesCore>
+    <ExcludeTransformAssistFilesFromPublish Condition="'$(ExcludeTransformAssistFilesFromPublish)'==''">True</ExcludeTransformAssistFilesFromPublish>
+  </PropertyGroup>
+  
+  <!--***************************************************************-->
+  <!-- Task CollectFilesFromIntermediateAssembly                     -->
+  <!-- Note $(OutDir) can be not in the bin like in Team build system -->
+  <!--***************************************************************-->
+  <PropertyGroup>
+    <CollectFilesFromIntermediateAssemblyDependsOn>
+      $(OnBeforeCollectFilesFromIntermediateAssembly);
+      $(CollectFilesFromIntermediateAssemblyDependsOn);
+    </CollectFilesFromIntermediateAssemblyDependsOn>
+  </PropertyGroup>
+
+  <Target Name="CollectFilesFromIntermediateAssembly"
+          DependsOnTargets="$(CollectFilesFromIntermediateAssemblyDependsOn)"
+          Condition="'@(IntermediateAssembly)'!=''">
+
+    <!--Get Localized string before display message-->
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_GatherSpecificItemsFromProject"
+      ArgumentCount="1"
+      Arguments="IntermediateAssembly"
+      LogType="Message" />
+    <Message Text="@(IntermediateAssembly->'$(OutDir)%(FileName)%(Extension) to bin\%(FileName)%(Extension)')" />
+    
+    <ItemGroup>
+      <FilesForPackagingFromProject
+        Include="@(IntermediateAssembly->'$(OutDir)%(FileName)%(Extension)')">
+        <DestinationRelativePath>bin\%(FileName)%(Extension)</DestinationRelativePath>
+        <FromTarget>CollectFilesFromIntermediateAssembly</FromTarget>
+        <Category>Run</Category>
+      </FilesForPackagingFromProject>
+    </ItemGroup>
+    <Message Text="@(IntermediateAssembly->'$(OutDir)%(FileName).pdb to bin\%(FileName).pdb')"
+             Condition="$(_DebugSymbolsProduced) AND !$(ExcludeGeneratedDebugSymbol) AND Exists(@(IntermediateAssembly->'$(OutDir)%(FileName).pdb')) "/>
+    <ItemGroup Condition="$(_DebugSymbolsProduced) AND !$(ExcludeGeneratedDebugSymbol) AND Exists(@(IntermediateAssembly->'$(OutDir)%(FileName).pdb'))">
+      <FilesForPackagingFromProject
+        Include="@(IntermediateAssembly->'$(OutDir)%(FileName).pdb')"
+        Condition="Exists(@(IntermediateAssembly->'$(OutDir)%(FileName).pdb'))">
+        <DestinationRelativePath>bin\%(FileName).pdb</DestinationRelativePath>
+        <FromTarget>CollectFilesFromIntermediateAssembly</FromTarget>
+        <Category>Debug</Category>
+      </FilesForPackagingFromProject>
+    </ItemGroup>
+
+    <CallTarget Targets="$(OnAfterCollectFilesFromIntermediateAssembly)" RunEachTargetSeparately="false" />
+  </Target>
+
+  <!--********************************************************************-->
+  <!-- Task CollectFilesFromContent -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <CollectFilesFromContentDependsOn>
+      $(OnBeforeCollectFilesFromContent);
+      $(CollectFilesFromContentDependsOn);
+    </CollectFilesFromContentDependsOn>
+  </PropertyGroup>
+  <Target Name="CollectFilesFromContent"
+          DependsOnTargets="$(CollectFilesFromContentDependsOn)"
+          Condition="'@(Content)'!=''">
+    <!--Get Localized string before display message-->
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_GatherSpecificItemsFromProject"
+      ArgumentCount="1"
+      Arguments="Content"
+      LogType="Message" />
+    <Message Text="@(Content)" />
+    
+    <ItemGroup>
+      <FilesForPackagingFromProject Include="@(Content)" Condition="'%(Content.Link)'==''">
+        <DestinationRelativePath>%(Content.Identity)</DestinationRelativePath>
+        <FromTarget>CollectFilesFromContent</FromTarget>
+        <Category>Run</Category>
+      </FilesForPackagingFromProject>
+      <FilesForPackagingFromProject Include="@(Content)" Condition="'%(Content.Link)'!='' And $(EnableCollectLinkFilesInProject)">
+        <DestinationRelativePath>%(Content.Link)</DestinationRelativePath>
+        <FromTarget>CollectFilesFromContent</FromTarget>
+        <Category>Run</Category>
+        <Exclude>$(ExcludeLinkFilesInProject)</Exclude>
+        <ProjectFileType>Link</ProjectFileType>
+      </FilesForPackagingFromProject>
+    </ItemGroup>
+    <CallTarget Targets="$(OnAfterCollectFilesFromContent)" RunEachTargetSeparately="false" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!-- Task CollectFilesFromAddModules -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <CollectFilesFromAddModulesDependsOn>
+      $(OnBeforeCollectFilesFromAddModulesDependsOn);
+      $(CollectFilesFromAddModulesDependsOn);
+    </CollectFilesFromAddModulesDependsOn>
+  </PropertyGroup>
+  <Target Name="CollectFilesFromAddModules"
+          DependsOnTargets="$(CollectFilesFromAddModulesDependsOn)"
+          Condition="'@(AddModules)'!=''">
+
+    <!--Get Localized string before display message-->
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_GatherSpecificOutputsFromProject"
+      ArgumentCount="1"
+      Arguments="AddModules"
+      LogType="Message" />
+    <Message Text="@(AddModules->'$(OutDir)%(FileName)%(Extension) to bin\%(FileName)%(Extension)')"/>
+    <ItemGroup>
+      <FilesForPackagingFromProject  Include="@(AddModules->'$(OutDir)%(FileName)%(Extension)')">
+        <DestinationRelativePath>bin\%(FileName)%(Extension)</DestinationRelativePath>
+        <FromTarget>CollectFilesFromAddModules</FromTarget>
+        <Category>Run</Category>
+      </FilesForPackagingFromProject>
+    </ItemGroup>
+    <CallTarget Targets="$(OnAfterCollectFilesFromAddModulesDependsOn)" RunEachTargetSeparately="false" />
+  </Target>
+
+  <!--********************************************************************-->
+  <!-- Task CollectFilesFrom_SGenDllCreated -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <CollectFilesFrom_SGenDllCreatedDependsOn>
+      $(OnBeforeCollectFilesFrom_SGenDllCreated);
+      $(CollectFilesFrom_SGenDllCreatedDependsOn);
+    </CollectFilesFrom_SGenDllCreatedDependsOn>
+  </PropertyGroup>
+  <Target Name="CollectFilesFrom_SGenDllCreated"
+          DependsOnTargets="$(CollectFilesFrom_SGenDllCreatedDependsOn)"
+          Condition="$(_SGenDllCreated)">
+    <!--Get Localized string before display message-->
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_GatherSpecificOutputsFromProject"
+      ArgumentCount="1"
+      Arguments="_SGenDllName"
+      LogType="Message" />
+    <Message Text="bin\$(_SGenDllName)" />
+    
+    <ItemGroup>
+      <FilesForPackagingFromProject  Include="$(OutDir)$(_SGenDllName)">
+        <DestinationRelativePath>bin\$(_SGenDllName)</DestinationRelativePath>
+        <FromTarget>CollectFilesFrom_SGenDllCreated</FromTarget>
+        <Category>Run</Category>
+      </FilesForPackagingFromProject>
+    </ItemGroup>
+    <CallTarget Targets="$(OnAfterCollectFilesFrom_SGenDllCreated)" RunEachTargetSeparately="false" />
+  </Target>
+
+  <!--********************************************************************-->
+  <!-- Task CollectFilesFromIntermediateSatelliteAssembliesWithTargetPath -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <CollectFilesFromIntermediateSatelliteAssembliesWithTargetPathDependsOn>
+      $(OnBeforeCollectFilesFromIntermediateSatelliteAssembliesWithTargetPath);
+      $(CollectFilesFromIntermediateSatelliteAssembliesWithTargetPathDependsOn);
+    </CollectFilesFromIntermediateSatelliteAssembliesWithTargetPathDependsOn>
+  </PropertyGroup>
+  <Target Name="CollectFilesFromIntermediateSatelliteAssembliesWithTargetPath"
+          DependsOnTargets="$(CollectFilesFromIntermediateSatelliteAssembliesWithTargetPathDependsOn)">
+    <!--Get Localized string before display message-->
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_GatherSpecificOutputsFromProject"
+      ArgumentCount="1"
+      Arguments="IntermediateSatelliteAssembliesWithTargetPath"
+      LogType="Message" />
+    <Message Text="@(IntermediateSatelliteAssembliesWithTargetPath->'$(OutDir)%(TargetPath) to bin\%(TargetPath)')"
+             Condition="Exists('$(OutDir)\%(TargetPath)')"/>
+    <ItemGroup>
+      <FilesForPackagingFromProject
+        Include="@(IntermediateSatelliteAssembliesWithTargetPath->'$(OutDir)%(TargetPath)')">
+        <DestinationRelativePath>bin\%(IntermediateSatelliteAssembliesWithTargetPath.TargetPath)</DestinationRelativePath>
+        <FromTarget>CollectFilesFromIntermediateSatelliteAssembliesWithTargetPath</FromTarget>
+        <Category>Run</Category>
+      </FilesForPackagingFromProject>
+    </ItemGroup>
+    <CallTarget Targets="$(OnAfterCollectFilesFromIntermediateSatelliteAssembliesWithTargetPath)"  RunEachTargetSeparately="false" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!-- Task CollectFilesFromReference -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <CollectFilesFromReferenceDependsOn>
+      $(OnBeforeCollectFilesFromReference);
+      $(CollectFilesFromReferenceDependsOn);
+      ResolveProjectReferences;
+      ResolveAssemblyReferences;
+    </CollectFilesFromReferenceDependsOn>
+  </PropertyGroup>
+  <Target Name="CollectFilesFromReference"
+          DependsOnTargets="$(CollectFilesFromReferenceDependsOn)">
+
+    <!--Get Localized string before display message-->
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_GatherSpecificItemsFromProjectNoDetail"
+      ArgumentCount="1"
+      Arguments="ReferenceCopyLocalPaths,ReferenceComWrappersToCopyLocal,ResolvedIsolatedComModules,_DeploymentLooseManifestFile,NativeReferenceFile"
+      LogType="Message" />
+
+    <ItemGroup>
+      <FilesForPackagingFromProject
+        Include="@(ReferenceCopyLocalPaths)">
+        <DestinationRelativePath>bin\%(ReferenceCopyLocalPaths.DestinationSubDirectory)%(FileName)%(Extension)</DestinationRelativePath>
+        <FromTarget>CollectFilesFromReference</FromTarget>
+        <Category>Run</Category>
+      </FilesForPackagingFromProject>
+    </ItemGroup>
+    
+    <ItemGroup>
+      <FilesForPackagingFromProject
+        Include="@(ReferenceComWrappersToCopyLocal); 
+                @(ResolvedIsolatedComModules); 
+                @(_DeploymentLooseManifestFile); 
+                @(NativeReferenceFile)">
+        <DestinationRelativePath>bin\%(FileName)%(Extension)</DestinationRelativePath>
+        <FromTarget>CollectFilesFromReference</FromTarget>
+        <Category>Run</Category>
+      </FilesForPackagingFromProject>
+    </ItemGroup>
+    <CallTarget Targets="$(OnAfterCollectFilesFromReference)" RunEachTargetSeparately="false" />
+  </Target>
+
+  <!--********************************************************************-->
+  <!-- Task CollectFilesFromAllExtraReferenceFiles -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <CollectFilesFromAllExtraReferenceFilesDependsOn>
+      $(OnBeforeCollectFilesFromAllExtraReferenceFiles);
+      $(CollectFilesFromAllExtraReferenceFilesDependsOn);
+    </CollectFilesFromAllExtraReferenceFilesDependsOn>
+  </PropertyGroup>
+  <Target Name="CollectFilesFromAllExtraReferenceFiles"
+          DependsOnTargets="$(CollectFilesFromAllExtraReferenceFilesDependsOn)">
+
+    <!--Get Localized string before display message-->
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_GatherSpecificItemsFromProject"
+      ArgumentCount="1"
+      Arguments="AllExtraReferenceFiles"
+      LogType="Message" />
+    <Message Text="@(AllExtraReferenceFiles->'$(OutDir)%(FileName)%(Extension)')" />
+    <ItemGroup>
+      <FilesForPackagingFromProject  Include="@(AllExtraReferenceFiles->'$(OutDir)%(FileName)%(Extension)')">
+        <DestinationRelativePath>bin\%(FileName)%(Extension)</DestinationRelativePath>
+        <FromTarget>CollectFilesFromAllExtraReferenceFiles</FromTarget>
+        <Category>Run</Category>
+      </FilesForPackagingFromProject>
+    </ItemGroup>
+    <CallTarget Targets="$(OnAfterCollectFilesFromAllExtraReferenceFiles)" RunEachTargetSeparately="false"/>
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!-- Task CollectFilesFrom_SourceItemsToCopyToOutputDirectory -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    
+    <CollectFilesFrom_SourceItemsToCopyToOutputDirectoryDependsOn>
+      $(OnBeforeCollectFilesFrom_SourceItemsToCopyToOutputDirectory);
+      $(CollectFilesFrom_SourceItemsToCopyToOutputDirectoryDependsOn);
+    </CollectFilesFrom_SourceItemsToCopyToOutputDirectoryDependsOn>
+  </PropertyGroup>
+  <Target Name="CollectFilesFrom_SourceItemsToCopyToOutputDirectory"
+          DependsOnTargets="$(CollectFilesFrom_SourceItemsToCopyToOutputDirectoryDependsOn)"
+          Condition="'@(_SourceItemsToCopyToOutputDirectoryAlways)' != '' or '@(_SourceItemsToCopyToOutputDirectory)' != ''">
+
+    <!--Get Localized string before display message-->
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_GatherSpecificItemsFromProject"
+      ArgumentCount="1"
+      Arguments="_SourceItemsToCopyToOutputDirectoryAlways,_SourceItemsToCopyToOutputDirectory"
+      LogType="Message" />
+    
+    <ItemGroup>
+      <_TempSourceItemsToCopyToOutputDirectory Include="@(_SourceItemsToCopyToOutputDirectoryAlways); @(_SourceItemsToCopyToOutputDirectory)" />
+    </ItemGroup>
+
+    <Message Text="@(_TempSourceItemsToCopyToOutputDirectory->'bin\%(TargetPath)')" />
+    <ItemGroup>
+      <FilesForPackagingFromProject
+        Include="@(_TempSourceItemsToCopyToOutputDirectory)">
+        <DestinationRelativePath>bin\%(_TempSourceItemsToCopyToOutputDirectory.TargetPath)</DestinationRelativePath>
+        <FromTarget>CollectFilesFrom_SourceItemsToCopyToOutputDirectory</FromTarget>
+        <Category>Run</Category>
+      </FilesForPackagingFromProject>
+    </ItemGroup>
+    <CallTarget Targets="$(OnAfterCollectFilesFrom_SourceItemsToCopyToOutputDirectory)" RunEachTargetSeparately="false" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!-- Task CollectFilesFromDocFileItem -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <CollectFilesFromDocFileItemDependsOn>
+      $(OnBeforeCollectFilesFromDocFileItem);
+      $(CollectFilesFromDocFileItemDependsOn);
+    </CollectFilesFromDocFileItemDependsOn>
+  </PropertyGroup>
+  <Target Name="CollectFilesFromDocFileItem"
+          DependsOnTargets="$(CollectFilesFromDocFileItemDependsOn)"
+          Condition="$(_DocumentationFileProduced)" >
+
+    <!--Get Localized string before display message-->
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_GatherSpecificItemsFromProject"
+      ArgumentCount="1"
+      Arguments="DocFileItem"
+      LogType="Message" />
+    <Message Text="@(DocFileItem->'bin\%(FileName)%(Extension)')" />
+    <ItemGroup>
+      <FilesForPackagingFromProject
+        Include="@(DocFileItem)">
+        <DestinationRelativePath>bin\%(FileName)%(Extension)</DestinationRelativePath>
+        <FromTarget>CollectFilesFromDocFileItem</FromTarget>
+        <Category>Run</Category>
+      </FilesForPackagingFromProject>
+    </ItemGroup>
+    <CallTarget Targets="$(OnAfterCollectFilesFromDocFileItem)" RunEachTargetSeparately="false" />
+  </Target>
+
+  <!--********************************************************************-->
+  <!-- Task CollectFilesFrom_WebApplicationSilverlightXapFiles -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <CollectFilesFrom_WebApplicationSilverlightXapFilesDependsOn>
+      $(OnBeforeCollectFilesFrom_WebApplicationSilverlightXapFiles);
+      $(CollectFilesFrom_WebApplicationSilverlightXapFilesDependsOn);
+    </CollectFilesFrom_WebApplicationSilverlightXapFilesDependsOn>
+  </PropertyGroup>
+  <Target Name="CollectFilesFrom_WebApplicationSilverlightXapFiles"
+          DependsOnTargets="$(CollectFilesFrom_WebApplicationSilverlightXapFilesDependsOn)"
+          Condition="'@(_WebApplicationSilverlightXapFiles)'!=''">
+    
+    <FilterByItems PipelineItems="@(_WebApplicationSilverlightXapFiles)"
+                   Filter="@(Content)">
+      <Output TaskParameter="OutFilter" ItemName="_WebApplicationSilverlightXapFilesNotInContent"/>
+    </FilterByItems>
+
+    <!--Get Localized string before display message-->
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_GatherSpecificItemsFromProject"
+      ArgumentCount="1"
+      Arguments="_WebApplicationSilverlightXapFilesNotInContent"
+      LogType="Message" />
+    <Message Text="@(_WebApplicationSilverlightXapFilesNotInContent)" />
+    <ItemGroup>
+      <FilesForPackagingFromProject Include="@(_WebApplicationSilverlightXapFilesNotInContent)">
+        <DestinationRelativePath>%(_WebApplicationSilverlightXapFiles.Identity)</DestinationRelativePath>
+        <FromTarget>CollectFilesFrom_WebApplicationSilverlightXapFiles</FromTarget>
+        <Category>Run</Category>
+      </FilesForPackagingFromProject>
+    </ItemGroup>
+    <CallTarget Targets="$(OnAfterCollectFilesFrom_WebApplicationSilverlightXapFiles)" RunEachTargetSeparately="false" />
+  </Target>
+
+  <!--********************************************************************-->
+  <!-- Task CollectFilesFrom_binDeployableAssemblies -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <CollectFilesFrom_binDeployableAssembliesDependsOn>
+      $(OnBeforeCollectFilesFrom_binDeployableAssemblies);
+      $(CollectFilesFrom_binDeployableAssembliesDependsOn);
+      _CopyBinDeployableAssemblies;
+    </CollectFilesFrom_binDeployableAssembliesDependsOn>
+  </PropertyGroup>
+  <Target Name="CollectFilesFrom_binDeployableAssemblies"
+          DependsOnTargets="$(CollectFilesFrom_binDeployableAssembliesDependsOn)">
+    <!--Make sure binDeployableAssemblies is in None group.  This is mainly for the dev10-->
+    <FilterByItems PipelineItems="@(_binDeployableAssemblies)"
+                   SourceMetadataName="FullPath"
+                   Filter="@(None)"
+                   FilterMetadataName="FullPath">
+      <Output TaskParameter="InFilter" ItemName="_binDeployableAssemblies_None"/>
+    </FilterByItems>
+    <!--Get Localized string before display message-->
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_GatherSpecificItemsFromProject"
+      ArgumentCount="1"
+      Arguments="_binDeployableAssemblies"
+      LogType="Message" />
+    <Message Text="@(_binDeployableAssemblies_None)" />
+    
+    <ItemGroup>
+      <FilesForPackagingFromProject Include="@(_binDeployableAssemblies_None)" Condition="'%(_binDeployableAssemblies_None.DestinationRelPath)'==''">
+        <DestinationRelativePath>bin\%(RecursiveDir)%(FileName)%(Extension)</DestinationRelativePath>
+        <FromTarget>CollectFilesFrom_binDeployableAssemblies_NoDestinationRelPath</FromTarget>
+        <Category>Run</Category>
+      </FilesForPackagingFromProject>
+      <!--VS11, _binDeployAssembly begin to have %(DestinationRelPath), we should honer that instead of %(recursiveDir)-->
+      <FilesForPackagingFromProject Include="@(_binDeployableAssemblies_None)" Condition="'%(_binDeployableAssemblies_None.DestinationRelPath)'!=''">
+        <DestinationRelativePath>bin\%(_binDeployableAssemblies_None.DestinationRelPath)%(FileName)%(Extension)</DestinationRelativePath>
+        <FromTarget>CollectFilesFrom_binDeployableAssemblies_WithDestinationRelPath</FromTarget>
+        <Category>Run</Category>
+      </FilesForPackagingFromProject>
+    </ItemGroup>
+    <CallTarget Targets="$(OnAfterCollectFilesFrom_binDeployableAssemblies)" RunEachTargetSeparately="false" />
+  </Target>
+
+  <!--ImportAfter Extension-->
+  <PropertyGroup>
+    <ImportByWildcardAfterMicrosoftWebPublishingOnlyFilesToRunTheAppTargets Condition="'$(ImportByWildcardAfterMicrosoftWebPublishingOnlyFilesToRunTheAppTargets)'==''">true</ImportByWildcardAfterMicrosoftWebPublishingOnlyFilesToRunTheAppTargets>
+  </PropertyGroup>
+  <Import Project="$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportAfter\*" Condition="'$(ImportByWildcardAfterMicrosoftWebPublishingOnlyFilesToRunTheAppTargets)' == 'true' and exists('$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportAfter')"/>
+
+</Project>

+ 59 - 0
servicestack/lib/VisualStudio.MsBuild.11.0/Web/Deploy/Microsoft.Web.Publishing.Deploy.FPSE.targets

@@ -0,0 +1,59 @@
+<!--
+***********************************************************************************************
+Microsoft.Web.Publishing.Deploy.FPSE.targets
+
+WARNING:  DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
+          created a backup copy.  Incorrect changes to this file will make it
+          impossible to load or build your web deploy projects from the command-line or the IDE.
+
+This file defines the steps in the standard package/publish process for Deploy 
+Currently
+
+Copyright (C) Microsoft Corporation. All rights reserved.
+***********************************************************************************************
+-->
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!--Import task from our dll-->
+  <UsingTask TaskName="GetPublishingLocalizedString" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+
+
+  <!--Append WebFTPPublish to the supported list.-->
+  <PropertyGroup>
+    <_WPPWebPublishMethodSupports>$(_WPPWebPublishMethodSupports);WebFPSEPublish</_WPPWebPublishMethodSupports>
+  </PropertyGroup>
+
+
+  <!--********************************************************************-->
+  <!--Target WebFPSEPublish -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <WebFPSEPublishDependsOn>
+      $(OnBeforeWebFPSEPublish);
+      $(WebFPSEPublishDependsOn);
+    </WebFPSEPublishDependsOn>
+  </PropertyGroup>
+
+  <Target Name="WebFPSEPublish"
+          DependsOnTargets="$(WebFPSEPublishDependsOn)"
+          Condition="'$(WebFPSEPublish)' != 'False'">
+
+    <!--This is not yet implemented through the command line for now error it out-->
+    <GetPublishingLocalizedString
+       ID="PublishLocalizedString_WebPublishMethodIsNotSupportedInCmdLine"
+       ArgumentCount="1"
+       Arguments="$(WebPublishMethod)"
+       LogType="Error" />
+
+    <Error  Text ="Target WebFPSEPublish Failed" />
+
+    <CallTarget Targets="$(OnAfterWebFPSEPublish)" RunEachTargetSeparately="False" />
+  </Target>
+
+
+  <!--ImportAfter Extension-->
+  <PropertyGroup>
+    <ImportByWildcardAfterMicrosoftWebPublishingDeployFPSETargets Condition="'$(ImportByWildcardAfterMicrosoftWebPublishingDeployFPSETargets)'==''">true</ImportByWildcardAfterMicrosoftWebPublishingDeployFPSETargets>
+  </PropertyGroup>
+  <Import Project="$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportAfter\*" Condition="'$(ImportByWildcardAfterMicrosoftWebPublishingDeployFPSETargets)' == 'true' and exists('$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportAfter')"/>
+
+</Project>

+ 60 - 0
servicestack/lib/VisualStudio.MsBuild.11.0/Web/Deploy/Microsoft.Web.Publishing.Deploy.FTP.targets

@@ -0,0 +1,60 @@
+<!--
+***********************************************************************************************
+Microsoft.Web.Publishing.Deploy.FTP.targets
+
+WARNING:  DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
+          created a backup copy.  Incorrect changes to this file will make it
+          impossible to load or build your web deploy projects from the command-line or the IDE.
+
+This file defines the steps in the standard package/publish process for Deploy 
+Currently
+
+Copyright (C) Microsoft Corporation. All rights reserved.
+***********************************************************************************************
+-->
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!--Import task from our dll-->
+  <UsingTask TaskName="GetPublishingLocalizedString" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+
+
+  <!--Append WebFTPPublish to the supported list.-->
+  <PropertyGroup>
+    <_WPPWebPublishMethodSupports>$(_WPPWebPublishMethodSupports);WebFTPPublish</_WPPWebPublishMethodSupports>
+  </PropertyGroup>
+
+
+  <!--********************************************************************-->
+  <!--Target WebFTPPublish -->
+  <!--Current this is not supported through the command line, show the error message.-->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <WebFTPPublishDependsOn>
+      $(OnBeforeWebFTPPublish);
+      $(WebFTPPublishDependsOn);
+    </WebFTPPublishDependsOn>
+  </PropertyGroup>
+
+  <Target Name="WebFTPPublish"
+          DependsOnTargets="$(WebFTPPublishDependsOn)"
+          Condition="'$(WebFTPPublish)' != 'False'">
+
+    <!--This is not yet implemented through the command line for Log the error -->
+    <GetPublishingLocalizedString
+       ID="PublishLocalizedString_WebPublishMethodIsNotSupportedInCmdLine"
+       ArgumentCount="1"
+       Arguments="$(WebPublishMethod)"
+       LogType="Error" />
+
+    <Error  Text ="Target WebFTPPublish Failed" />
+
+    <CallTarget Targets="$(OnAfterWebFTPPublish)" RunEachTargetSeparately="False" />
+  </Target>
+
+  <!--ImportAfter Extension-->
+  <PropertyGroup>
+    <ImportByWildcardAfterMicrosoftWebPublishingDeployFTPTargets Condition="'$(ImportByWildcardAfterMicrosoftWebPublishingDeployFTPTargets)'==''">true</ImportByWildcardAfterMicrosoftWebPublishingDeployFTPTargets>
+  </PropertyGroup>
+  <Import Project="$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportAfter\*" Condition="'$(ImportByWildcardAfterMicrosoftWebPublishingDeployFTPTargets)' == 'true' and exists('$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportAfter')"/>
+
+
+</Project>

+ 116 - 0
servicestack/lib/VisualStudio.MsBuild.11.0/Web/Deploy/Microsoft.Web.Publishing.Deploy.FileSystem.targets

@@ -0,0 +1,116 @@
+<!--
+***********************************************************************************************
+Microsoft.Web.Publishing.Deploy.FPSE.targets
+
+WARNING:  DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
+          created a backup copy.  Incorrect changes to this file will make it
+          impossible to load or build your web deploy projects from the command-line or the IDE.
+
+This file defines the steps in the standard package/publish process for Deploy 
+Currently
+
+Copyright (C) Microsoft Corporation. All rights reserved.
+***********************************************************************************************
+-->
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!--Import task from our dll-->
+  <UsingTask TaskName="GetPublishingLocalizedString" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="CopyPipelineFiles"  AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+
+
+  <!--Append WebFTPPublish to the supported list.-->
+  <PropertyGroup>
+    <_WPPWebPublishMethodSupports>$(_WPPWebPublishMethodSupports);WebFileSystemPublish</_WPPWebPublishMethodSupports>
+  </PropertyGroup>
+
+
+
+  <!--********************************************************************-->
+  <!--Target WebFileSystemPublish -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <WebFileSystemPublishDependsOn>
+      $(OnBeforeWebFileSystemPublish);
+      $(WebFileSystemPublishDependsOn);
+    </WebFileSystemPublishDependsOn>
+    <WebFileSystemPublishDependsOn>
+      $(WebFileSystemPublishDependsOn);
+      PipelinePreDeployCopyAllFilesToOneFolder;
+    </WebFileSystemPublishDependsOn>
+  </PropertyGroup>
+
+  <Target Name="WebFileSystemPublish"
+          DependsOnTargets="$(WebFileSystemPublishDependsOn)"
+          Condition="'$(WebFileSystemPublish)' != 'False'">
+
+    <PropertyGroup>
+      <_DoWebFileSystemPublishDeleteExtraFiles>False</_DoWebFileSystemPublishDeleteExtraFiles>
+      <_DoWebFileSystemPublishDeleteExtraFiles  Condition= "'$(DeleteExistingFiles)' == 'True'" >True</_DoWebFileSystemPublishDeleteExtraFiles>
+      <_HttpHeader>http://</_HttpHeader>
+      <_DoWebFileSystemPublish>False</_DoWebFileSystemPublish>
+      <_DoWebFileSystemPublish Condition="'$(PublishUrl)'!='' And '$(PublishUrl.StartsWith($(_HttpHeader),  StringComparison.OrdinalIgnoreCase))' == 'False' And '$([System.IO.Path]::GetFullPath($(PublishUrl)))' != ''">True</_DoWebFileSystemPublish>
+    </PropertyGroup>
+
+    <!--This is not yet implemented through the command line for now error it out-->
+    <GetPublishingLocalizedString
+      Condition="!$(_DoWebFileSystemPublish)"
+      ID="PublishLocalizedString_WebPublishMethodIsNotSupportedInCmdLine"
+       ArgumentCount="1"
+       Arguments="$(WebPublishMethod)"
+       LogType="Error" />
+
+    <Error  Text ="Target WebFileSystemPublish Failed"
+      Condition="!$(_DoWebFileSystemPublish)"
+            />
+
+    <ItemGroup Condition="$(_DoWebFileSystemPublish)">
+      <FilesForFileCopy Remove="$(FilesForFileCopy)" />
+    </ItemGroup>
+
+    <CollectFilesinFolder RootPath="$(WPPAllFilesInSingleFolder)"
+                          Condition="$(_DoWebFileSystemPublish)" >
+      <Output TaskParameter="Result" ItemName="_AllFilesUnder_WPPAllFilesInSingleFolder" />
+    </CollectFilesinFolder>
+
+    <ItemGroup>
+      <FilesForFileCopy Include="@(_AllFilesUnder_WPPAllFilesInSingleFolder)" >
+        <DestinationRelativePath>%(_AllFilesUnder_WPPAllFilesInSingleFolder.Identity)</DestinationRelativePath>
+        <FromTarget>WebFileSystemPublish</FromTarget>
+        <Category>AllFilesInFolder</Category>
+      </FilesForFileCopy>
+    </ItemGroup>
+
+
+    <!-- In the case of the incremental Packaging/Publish, we need to find out the extra file and delee them-->
+    <ItemGroup  Condition="'$(DeleteExistingFiles)' == 'True'">
+      <_AllExtraFilesUnderPublishUrl Include="$(PublishUrl)\**" />
+      <_AllExtraFilesUnderPublishUrl
+        Remove="@(FilesForFileCopy->'$(PublishUrl)\%(DestinationRelativePath)')" />
+    </ItemGroup>
+    <!--Remove all extra files in the temp folder that's not in the @(FilesForPackagingFromProject-->
+    <Delete Files="@(_AllExtraFilesUnderPublishUrl)" />
+    <!-- Make sure the folder exist -->
+    <MakeDir Directories="$(PublishUrl)" Condition="$(_DoWebFileSystemPublish) And !Exists('$(PublishUrl)')"/>
+
+    <!--Force Copy Of all file to the WPPAllFilesInSingleFolder if needed-->
+    <CopyPipelineFiles Condition="$(_DoWebFileSystemPublish)"
+                           PipelineItems="@(FilesForFileCopy)"
+                           SourceDirectory="$(WPPAllFilesInSingleFolder)"
+                           TargetDirectory="$(PublishUrl)"
+                           SkipMetadataExcludeTrueItems="False"
+                           UpdateItemSpec="True"
+                           DeleteItemsMarkAsExcludeTrue ="False">
+      <Output TaskParameter="ResultPipelineItems" ItemName="_FilesForFileCopyAfterFileSystemPublish"/>
+    </CopyPipelineFiles>
+
+
+    <CallTarget Targets="$(OnAfterWebFileSystemPublish)" RunEachTargetSeparately="False" />
+  </Target>
+
+  <!--ImportAfter Extension-->
+  <PropertyGroup>
+    <ImportByWildcardAfterMicrosoftWebPublishingDeployFileSystemTargets Condition="'$(ImportByWildcardAfterMicrosoftWebPublishingDeployFileSystemTargets)'==''">true</ImportByWildcardAfterMicrosoftWebPublishingDeployFileSystemTargets>
+  </PropertyGroup>
+  <Import Project="$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportAfter\*" Condition="'$(ImportByWildcardAfterMicrosoftWebPublishingDeployFileSystemTargets)' == 'true' and exists('$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportAfter')"/>
+
+</Project>

+ 49 - 0
servicestack/lib/VisualStudio.MsBuild.11.0/Web/Deploy/Microsoft.Web.Publishing.Deploy.MsDeploy.targets

@@ -0,0 +1,49 @@
+<!--
+***********************************************************************************************
+Microsoft.Web.Publishing.Deploy.MSDeploy.targets
+
+WARNING:  DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
+          created a backup copy.  Incorrect changes to this file will make it
+          impossible to load or build your web deploy projects from the command-line or the IDE.
+
+This file defines the steps in the standard package/publish process for Deploy 
+Currently
+
+Copyright (C) Microsoft Corporation. All rights reserved.
+***********************************************************************************************
+-->
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!--Import task from our dll-->
+  <UsingTask TaskName="GetPublishingLocalizedString" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+
+  <!--ImportBefore Extension-->
+  <PropertyGroup>
+    <ImportByWildcardBeforeMicrosoftWebPublishingDeployMSDeployTargets Condition="'$(ImportByWildcardBeforeMicrosoftWebPublishingDeployMSDeployTargets)'==''">true</ImportByWildcardBeforeMicrosoftWebPublishingDeployMSDeployTargets>
+  </PropertyGroup>
+  <Import Project="$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportBefore\*" Condition="'$(ImportByWildcardBeforeMicrosoftWebPublishingDeployMSDeployTargets)' == 'true' and exists('$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportBefore')"/>
+
+  <!--This only support new /t:WebPublish with the 'WebPublishMethod'=='MSDeploy'-->
+
+
+  <PropertyGroup>
+    <Microsoft_Web_Publishing_MSDeploy_Common_targets Condition="'$(Microsoft_Web_Publishing_MSDeploy_Common_targets)' == ''">Microsoft.Web.Publishing.MSDeploy.Common.targets</Microsoft_Web_Publishing_MSDeploy_Common_targets>
+  </PropertyGroup>
+  <Import Project="$(Microsoft_Web_Publishing_MSDeploy_Common_targets)" Condition="'$(Microsoft_Web_Publishing_MSDeploy_Common_targets_Imported)' != 'true' And Exists($(Microsoft_Web_Publishing_MSDeploy_Common_targets))"/>
+
+  <PropertyGroup>
+    <Microsoft_Web_Publishing_Deploy_MSDeploy_targets_Imported>True</Microsoft_Web_Publishing_Deploy_MSDeploy_targets_Imported>
+    <PipelineDeployPhaseDependsOn>
+      $(PipelineDeployPhaseDependsOn);
+      PipelineMsdeploySpecificTransformPhase;
+    </PipelineDeployPhaseDependsOn>
+  </PropertyGroup>
+
+
+
+  <!--ImportAfter Extension-->
+  <PropertyGroup>
+    <ImportByWildcardAfterMicrosoftWebPublishingDeployMSDeployTargets Condition="'$(ImportByWildcardAfterMicrosoftWebPublishingDeployMSDeployTargets)'==''">true</ImportByWildcardAfterMicrosoftWebPublishingDeployMSDeployTargets>
+  </PropertyGroup>
+  <Import Project="$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportAfter\*" Condition="'$(ImportByWildcardAfterMicrosoftWebPublishingDeployMSDeployTargets)' == 'true' and exists('$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportAfter')"/>
+
+</Project>

+ 54 - 0
servicestack/lib/VisualStudio.MsBuild.11.0/Web/Deploy/Microsoft.Web.Publishing.Deploy.Package.targets

@@ -0,0 +1,54 @@
+<!--
+***********************************************************************************************
+Microsoft.Web.Publishing.Deploy.Package.targets
+
+WARNING:  DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
+          created a backup copy.  Incorrect changes to this file will make it
+          impossible to load or build your web deploy projects from the command-line or the IDE.
+
+This file defines the steps in the standard package/publish process for Deploy 
+Currently
+
+Copyright (C) Microsoft Corporation. All rights reserved.
+***********************************************************************************************
+-->
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!--Import task from our dll-->
+  <UsingTask TaskName="GetPublishingLocalizedString" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="MSDeploy" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="VSMSDeploy" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="ImportParametersFile" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="ExportParametersFile" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="SortParametrsByPriority" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+
+
+  <!--ImportBefore Extension-->
+  <PropertyGroup>
+    <ImportByWildcardBeforeMicrosoftWebPublishingDeployPackageTargets Condition="'$(ImportByWildcardBeforeMicrosoftWebPublishingDeployPackageTargets)'==''">true</ImportByWildcardBeforeMicrosoftWebPublishingDeployPackageTargets>
+  </PropertyGroup>
+  <Import Project="$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportBefore\*" Condition="'$(ImportByWildcardBeforeMicrosoftWebPublishingDeployPackageTargets)' == 'true' and exists('$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportBefore')"/>
+
+  <PropertyGroup>
+    <Microsoft_Web_Publishing_MSDeploy_Common_targets Condition="'$(Microsoft_Web_Publishing_MSDeploy_Common_targets)' == ''">Microsoft.Web.Publishing.MSDeploy.Common.targets</Microsoft_Web_Publishing_MSDeploy_Common_targets>
+  </PropertyGroup>
+  <Import Project="$(Microsoft_Web_Publishing_MSDeploy_Common_targets)" Condition="'$(Microsoft_Web_Publishing_MSDeploy_Common_targets_Imported)' != 'true' And Exists($(Microsoft_Web_Publishing_MSDeploy_Common_targets))"/>
+
+  <PropertyGroup>
+    <Microsoft_Web_Publishing_Deploy_Package_targets_Imported>True</Microsoft_Web_Publishing_Deploy_Package_targets_Imported>
+    <PipelineDeployPhaseDependsOn>
+      $(PipelineDeployPhaseDependsOn);
+      PipelineMsdeploySpecificTransformPhase;
+    </PipelineDeployPhaseDependsOn>
+  </PropertyGroup>
+  
+  
+  
+
+
+  <!--ImportAfter Extension-->
+  <PropertyGroup>
+    <ImportByWildcardAfterMicrosoftWebPublishingDeployPackageTargets Condition="'$(ImportByWildcardAfterMicrosoftWebPublishingDeployPackageTargets)'==''">true</ImportByWildcardAfterMicrosoftWebPublishingDeployPackageTargets>
+  </PropertyGroup>
+  <Import Project="$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportAfter\*" Condition="'$(ImportByWildcardAfterMicrosoftWebPublishingDeployPackageTargets)' == 'true' and exists('$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportAfter')"/>
+
+</Project>

+ 1192 - 0
servicestack/lib/VisualStudio.MsBuild.11.0/Web/Deploy/Microsoft.Web.Publishing.MsDeploy.Common.targets

@@ -0,0 +1,1192 @@
+<!--
+***********************************************************************************************
+Microsoft.Web.Publishing.MSDeploy.Common.targets
+
+WARNING:  DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
+          created a backup copy.  Incorrect changes to this file will make it
+          impossible to load or build your web deploy projects from the command-line or the IDE.
+
+This file defines the steps in the standard package/publish process for Deploy 
+Currently
+
+Copyright (C) Microsoft Corporation. All rights reserved.
+***********************************************************************************************
+-->
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!--Import task from our dll-->
+  <UsingTask TaskName="GetPublishingLocalizedString" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="MSDeploy" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="VSMSDeploy" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="ImportParametersFile" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="ExportParametersFile" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="SortParametrsByPriority" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="CreateProviderList" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+
+  <!--ImportBefore Extension-->
+  <PropertyGroup>
+    <ImportByWildcardBeforeMicrosoftWebPublishingMSDeployCommonTargets Condition="'$(ImportByWildcardBeforeMicrosoftWebPublishingMSDeployCommonTargets)'==''">true</ImportByWildcardBeforeMicrosoftWebPublishingMSDeployCommonTargets>
+  </PropertyGroup>
+  <Import Project="$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportBefore\*" Condition="'$(ImportByWildcardBeforeMicrosoftWebPublishingMSDeployCommonTargets)' == 'true' and exists('$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportBefore')"/>
+
+  <!--Indicate that we already imported to avoid duplicate import-->
+  <PropertyGroup>
+    <Microsoft_Web_Publishing_MSDeploy_Common_targets_Imported>True</Microsoft_Web_Publishing_MSDeploy_Common_targets_Imported>
+  </PropertyGroup>
+
+  <PropertyGroup>
+    <InsertEFCodeFirstDeployWebCofig Condition="'$(InsertEFCodeFirstDeployWebCofig)' == ''">True</InsertEFCodeFirstDeployWebCofig>
+    <InsertEFCodeFirstDeployWebCofigIntermediateOutput Condition="'$(InsertEFCodeFirstDeployWebCofigIntermediateOutput)'==''">InsertEFCodeFirstDeploy</InsertEFCodeFirstDeployWebCofigIntermediateOutput>
+    <InsertEFCodeFirstDeployWebCofigLocation Condition="'$(InsertEFCodeFirstDeployWebCofigLocation)'==''">$(_WPPDefaultIntermediateOutputPath)$(InsertEFCodeFirstDeployWebCofigIntermediateOutput)</InsertEFCodeFirstDeployWebCofigLocation>
+  </PropertyGroup>
+  
+  <!--********************************************************************-->
+  <!-- ProcessPublishDatabaseSettings  -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <PublishDatabases Condition="'$(PublishDatabases)'==''">True</PublishDatabases>
+    <ProcessPublishDatabaseSettingsDependsOn>
+      GetMSDeployInstalledVersionPath;
+    </ProcessPublishDatabaseSettingsDependsOn>
+  </PropertyGroup>
+
+  <Target Name="ProcessPublishDatabaseSettings" DependsOnTargets="$(ProcessPublishDatabaseSettingsDependsOn)" Condition="$(PublishDatabases) And '$(FilePreview)'!='true' And ('$(PublishDatabaseSettings)' != '' Or '$(PublishDatabaseSettingsFile)' != '')">
+
+    <MakeDir Directories="$(DatabaseDeployIntermediateOutputPath)" Condition="!Exists($(DatabaseDeployIntermediateOutputPath))" />
+    <CreateProviderList ProjectFileFullPath="$(WebPublishPipeLineProjectFullPath)"
+                        ProvidersXml="$(PublishDatabaseSettings)"
+                        IntermediateOutputPath="$(DatabaseDeployIntermediateOutputPath)"
+                        MSDeployVersionsToTry="$(_MSDeployVersionsToTry)"
+                        UseMSDeployExe="$(UseMsdeployExe)"
+                        MSDeployExePath="$(MSDeployPath)"
+                        ImportInSyncCheck="$(VerifyDatabaseSettingWithImport)"
+                        LocalDBVersionToUseForSqlExpress="$(_LocalDBVersionToUseForSqlExpress)"
+                        Condition="'$(PublishDatabaseSettings)' != ''">
+      <Output TaskParameter="List" ItemName="_DatabasesToPackage" />
+      <Output TaskParameter="SourceManifest" ItemName="_DatabasesToSourceManifest" />
+    </CreateProviderList>
+    <CreateProviderList ProjectFileFullPath="$(WebPublishPipeLineProjectFullPath)"
+                        ProvidersFile="$(PublishDatabaseSettingsFile)"
+                        IntermediateOutputPath="$(DatabaseDeployIntermediateOutputPath)"
+                        MSDeployVersionsToTry="$(_MSDeployVersionsToTry)"
+                        UseMSDeployExe="$(UseMsdeployExe)"
+                        MSDeployExePath="$(MSDeployPath)"
+                        ImportInSyncCheck="$(VerifyDatabaseSettingWithImport)"
+                        LocalDBVersionToUseForSqlExpress="$(_LocalDBVersionToUseForSqlExpress)"
+                        Condition="'$(PublishDatabaseSettingsFile)' != ''">
+      <Output TaskParameter="List" ItemName="_DatabasesToPackage" />
+      <Output TaskParameter="SourceManifest" ItemName="_DatabasesToSourceManifest" />
+    </CreateProviderList>
+
+
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert)"
+                   Encoding="utf-8"
+                   File="$(PackageLogDir)\DatabasesToPackage.txt"
+                   Lines="@(_DatabasesToPackage->'
+                      Name:%(Identity) 
+                      SourceProvider:%(SourceProvider)
+                      SourcePath=%(SourcePath)
+                      SourcePath_RegExExcaped=%(SourcePath_RegExExcaped)
+                      DestinationGroup=%(DestinationGroup)')" Overwrite="True" />
+
+  </Target>
+
+
+
+  <!--********************************************************************-->
+  <!-- ParseSQLScriptForMSDeployParameters  -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <PublishDatabases Condition="'$(PublishDatabases)'==''">True</PublishDatabases>
+    <ParseSQLScriptForMSDeployParametersDependsOn>
+      $(ParseSQLScriptForMSDeployParametersDependsOn);
+      GetMSDeployInstalledVersionPath;
+      ProcessPublishDatabaseSettings;
+    </ParseSQLScriptForMSDeployParametersDependsOn>
+  </PropertyGroup>
+  <Target Name="ParseSQLScriptForMSDeployParameters" DependsOnTargets="$(ParseSQLScriptForMSDeployParametersDependsOn)" Condition="$(PublishDatabases) And ('$(PublishDatabaseSettings)' != '' Or '$(PublishDatabaseSettingsFile)' != '')">
+    <ItemGroup>
+      <_DatabasesToPackageForSQL  Include="@(_DatabasesToPackage)"
+                                  Condition="$(EnableSqlScriptVariableParameterize) 
+                                              And '%(_DatabasesToPackage.SourceProvider)' == 'DbFullSql' 
+                                              And '%(_DatabasesToPackage.SourcePath)' != '' 
+                                              And Exists('%(_DatabasesToPackage.SourcePath)') 
+                                              And '$([System.IO.Path]::GetExtension($([System.String]::new(%(_DatabasesToPackage.SourcePath)))))' == '.sql'">
+      </_DatabasesToPackageForSQL>
+    </ItemGroup>
+
+    <!-- this is very costly operation depend on sql file size. For example,  256 Meg sql file, it takes about 11 second to process (merely open it and scan it.)
+         We should avoid process if we have any knowledge on the sql file-->
+    <SqlScriptPreprocessSqlVariables
+      UnsupportedKeywords="$(MsdeploySqlUnsupportedCommand)"
+      CheckForUnsupportCommands="$(CheckSqlScriptForUnsupportedCommands)"
+      TreadSqlScriptUnsupportedCommandsAsWarning="$(TreadSqlScriptUnsupportedCommandsAsWarning)"
+      SqlScriptFile="%(_DatabasesToPackageForSQL.SourcePath)"
+      DestinationGroup="%(_DatabasesToPackageForSQL.DestinationGroup)"
+      ResolveIncludes="$(SqlScriptPreProcessResolveIncludes)"
+      BatchDelimiter="$(SqlScriptPreProcessBatchDelimiter)"
+      Condition="$(EnableSqlScriptVariableParameterize) And '%(_DatabasesToPackageForSQL.SourcePath)' != '' And Exists('%(_DatabasesToPackageForSQL.SourcePath)')  ">
+      <Output TaskParameter="List" ItemName="_DatabasesToPackage_SqlVariables" />
+    </SqlScriptPreprocessSqlVariables>
+
+    <!--Log the information  Set $(EnablePackageProcessLoggingAndAssert) to True if you want to see this information-->
+    <MakeDir Condition="$(EnableSqlScriptVariableParameterize) And $(EnablePackageProcessLoggingAndAssert) And !Exists('$(PackageLogDir)')"
+             Directories="$(PackageLogDir)" />
+
+    <!-- (Debug Only, Turn on EnablePackageProcessLoggingAndAssert if needed )
+    Dump the list to the log file in the log dir-->
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert) and $(EnableSqlScriptVariableParameterize)"
+                      Encoding="utf-8"
+                      File="$(PackageLogDir)\SqlVariables.txt"
+                      Lines="@(_DatabasesToPackage_SqlVariables->'
+                      Name:%(Identity) 
+                      Vaule:%(Value)
+                      IsDeclared:%(IsDeclared)
+                      SourcePath=%(SourcePath)
+                      SourcePath_RegExExcaped=%(SourcePath_RegExExcaped)
+                      DestinationGroup=%(DestinationGroup)')" Overwrite="True" />
+  </Target>
+
+
+
+  <!--********************************************************************-->
+  <!-- HandleEFCodeFirstDataMigration  -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <PublishDatabases Condition="'$(PublishDatabases)'==''">True</PublishDatabases>
+    <HandleEFCodeFirstDataMigrationDependsOn>
+      $(HandleEFCodeFirstDataMigrationDependsOn);
+      GetMSDeployInstalledVersionPath;
+      ProcessPublishDatabaseSettings;
+    </HandleEFCodeFirstDataMigrationDependsOn>
+  </PropertyGroup>
+  <Target Name="HandleEFCodeFirstDataMigration" DependsOnTargets="$(HandleEFCodeFirstDataMigrationDependsOn)" Condition="$(PublishDatabases) And ('$(PublishDatabaseSettings)' != '' Or '$(PublishDatabaseSettingsFile)' != '')">
+
+   <ItemGroup>
+      <_DatabasesToPackageForEFCodeFirst  Include="@(_DatabasesToPackage)"
+                                  Condition="'%(_DatabasesToPackage.SourceProvider)' == 'DbCodeFirst' 
+                                              And '%(_DatabasesToPackage.SourcePath)' == 'DBMigration'">
+      </_DatabasesToPackageForEFCodeFirst>
+    </ItemGroup>
+
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert)"
+                 Encoding="utf-8"
+                 File="$(PackageLogDir)\DatabasesToPackageForEFCodeFirst.txt"
+                 Lines="@(_DatabasesToPackageForEFCodeFirst->'
+                      Name:%(Identity) 
+                      SourceProvider:%(SourceProvider)
+                      SourcePath=%(SourcePath)
+                      SourcePath_RegExExcaped=%(SourcePath_RegExExcaped)
+                      SourceMigrationConfiguration=%(SourceMigrationConfiguration)
+                      SourceDbContext=%(SourceDbContext)
+                      DestinationGroup=%(DestinationGroup)')" Overwrite="True" />
+
+  </Target>
+
+
+  <!--********************************************************************
+  Target PreInsertEFCodeFirstDeployWebCofig 
+  ********************************************************************-->
+  <PropertyGroup>
+    <PreInsertEFCodeFirstDeployWebCofigDependsOn>
+      HandleEFCodeFirstDataMigration;
+      ProfileTransformWebConfig;
+    </PreInsertEFCodeFirstDeployWebCofigDependsOn>
+    <PreInsertEFCodeFirstDeployWebCofigBeforeTarget>
+      $(PreInsertEFCodeFirstDeployWebCofigBeforeTarget);
+      AutoParameterizationWebConfigConnectionStrings;
+      PreAutoParameterizationWebConfigConnectionStrings;
+    </PreInsertEFCodeFirstDeployWebCofigBeforeTarget>
+  </PropertyGroup>
+
+  <Target Name="PreInsertEFCodeFirstDeployWebCofig"
+          DependsOnTargets="$(PreInsertEFCodeFirstDeployWebCofigDependsOn)"
+          Condition="'@(_DatabasesToPackageForEFCodeFirst)' !=''"
+          BeforeTargets="$(PreInsertEFCodeFirstDeployWebCofigBeforeTarget)">
+    <ItemGroup>
+      <_WebConfigsToInsertEFCodeFirstDeployContext Include="@(FilesForPackagingFromProject)"
+                             Condition="'%(FilesForPackagingFromProject.Filename)%(FilesForPackagingFromProject.Extension)'=='$(ProjectConfigFileName)' 
+                                         And !%(FilesForPackagingFromProject.Exclude)
+                                         And '%(DestinationRelativePath)' == '$(ProjectConfigFileName)'">
+        <TransformOriginalFolder>$(InsertEFCodeFirstDeployWebCofigLocation)\original</TransformOriginalFolder>
+        <TransformOutputFile>$(InsertEFCodeFirstDeployWebCofigLocation)\transformed\%(DestinationRelativePath)</TransformOutputFile>
+        <TransformScope>$([System.IO.Path]::GetFullPath($(WPPAllFilesInSingleFolder)\%(DestinationRelativePath)))</TransformScope>
+      </_WebConfigsToInsertEFCodeFirstDeployContext>
+      <_WebConfigsToInsertEFCodeFirstDeployContextOuputFiles Include="@(_WebConfigsToInsertEFCodeFirstDeployContext->'%(TransformOutputFile)')">
+      </_WebConfigsToInsertEFCodeFirstDeployContextOuputFiles>
+    </ItemGroup>
+
+    <PropertyGroup>
+      <_WebConfigsToInsertEFCodeFirstDeployContextOuputDirectories>@(_WebConfigsToInsertEFCodeFirstDeployContextOuputFiles->'%(RootDir)%(Directory)')</_WebConfigsToInsertEFCodeFirstDeployContextOuputDirectories>
+      <_WebConfigsToInsertEFCodeFirstDeployContextOuput>@(_WebConfigsToInsertEFCodeFirstDeployContext->'%(TransformOutputFile)');</_WebConfigsToInsertEFCodeFirstDeployContextOuput>
+    </PropertyGroup>
+
+    <ItemGroup>
+      <_WebConfigsToInsertEFCodeFirstDeployContextOuputDirectories Include="$(_WebConfigsToInsertEFCodeFirstDeployContextOuputDirectories)" />
+    </ItemGroup>
+
+     <!--Make sure required directories exist-->  
+    <MakeDir Directories="@(_WebConfigsToInsertEFCodeFirstDeployContextOuputDirectories)" Condition="!Exists(%(Identity))"/>
+
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert) And ('@(_WebConfigsToInsertEFCodeFirstDeployContext)'!='') And !%(Exclude)"
+                      Encoding="utf-8"
+                      Overwrite="True"
+                      File="$(PackageLogDir)\PreInsertEFCodeFirstDeployWebCofig.Log"
+                      Lines="@(_WebConfigsToInsertEFCodeFirstDeployContext->'
+    InsertEFCodeFirstDeployContextTransform   input: %(Identity) 
+                      output: %(TransformOutputFile)
+                      From:%(Identity) 
+                      DestinationRelativePath:%(DestinationRelativePath) 
+                      Exclude:%(Exclude) 
+                      FromTarget:%(FromTarget) 
+                      Category:%(Category)
+                      ProjectFileType:%(ProjectFileType)
+                      ')" />
+
+
+    <!--Copy the original web.config-->
+    <CopyPipelineFiles PipelineItems="@(_WebConfigsToInsertEFCodeFirstDeployContext)"
+                           SourceDirectory="$(WebPublishPipelineProjectDirectory)"
+                           TargetDirectory="%(TransformOriginalFolder)"
+                           SkipMetadataExcludeTrueItems="True"
+                           UpdateItemSpec="False"
+                           DeleteItemsMarkAsExcludeTrue ="True"
+                       Condition="'@(_WebConfigsToInsertEFCodeFirstDeployContext)' != ''">
+      <Output TaskParameter="UpdatedPipelineItems" ItemName="_UpdatedWebConfigsToInsertEFCodeFirstDeployContext"/>
+    </CopyPipelineFiles>
+
+     <!--Delete those web.config have been updated if existed-->
+    <Delete Files="@(_UpdatedWebConfigsToInsertEFCodeFirstDeployContext->'%(TransformOutputFile)')" />
+
+
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_EFCodeFirstConnectionStringParameterDescription">
+      <Output TaskParameter="Result" PropertyName="_PublishLocalizedString_EFCodeFirstConnectionStringParameterDescription" />
+    </GetPublishingLocalizedString>
+
+    <PropertyGroup>
+      <DeployParameterEFCodeFirstConnectionStringDescription Condition="'$(DeployParameterEFCodeFirstConnectionStringDescription)'==''">$(_PublishLocalizedString_EFCodeFirstConnectionStringParameterDescription)</DeployParameterEFCodeFirstConnectionStringDescription>
+    </PropertyGroup>
+
+    <!--Description might have the xml special character, we need to escape it. -->
+    <EscapeXMLString
+      Source="$(DeployParameterEFCodeFirstConnectionStringDescription)" >
+      <Output TaskParameter="Result" PropertyName="_EscapedDeployParameterEFCodeFirstConnectionStringDescription" />
+    </EscapeXMLString>
+
+    
+    <ItemGroup>
+      <MSDeployParameterValue Include="@(_DatabasesToPackageForEFCodeFirst->'$(DeployParameterPrefix)%(DestinationGroup)_DatabasePublish-Web.config Connection String')">
+        <ParameterValue>%(_DatabasesToPackageForEFCodeFirst.DestinationPath)</ParameterValue>
+        <Description>%(_DatabasesToPackageForEFCodeFirst.DestinationGroup) $(_EscapedDeployParameterEFCodeFirstConnectionStringDescription)</Description>
+        <UpdateDestWebConfig>True</UpdateDestWebConfig>
+        <AllowUIUpdate>False</AllowUIUpdate>
+      </MSDeployParameterValue>
+    </ItemGroup>
+
+    <ItemGroup>
+      <_InsertEFCodeFirstDeployContextNames Include="@(_DatabasesToPackageForEFCodeFirst)">
+        <TransformXMLFragement_CSInsert>
+          &lt;add
+          name=&quot;%(_DatabasesToPackageForEFCodeFirst.DestinationGroup)_DatabasePublish&quot;&#13;&#10;
+          connectionString=&quot;%(_DatabasesToPackageForEFCodeFirst.DestinationGroup)_DatabasePublish.ConnetionString&quot;&#13;&#10;
+          providerName=&quot;$(InsertAdditionalWebConfigConnectionStringProviderName)&quot;&#13;&#10;
+          xdt:Transform=&quot;InsertIfMissing&quot; &#13;&#10;
+          xdt:Locator=&quot;Match(name)&quot;&#13;&#10;
+          xdt:SupressWarnings=&quot;True&quot;&#13;&#10;
+          /&gt;
+        </TransformXMLFragement_CSInsert>
+        <TransformXMLFragement_Deploy>
+          &lt;context type="%(_DatabasesToPackageForEFCodeFirst.SourceDbContext)" &#13;&#10;
+          xdt:Transform="InsertIfMissing" &#13;&#10;
+          xdt:Locator=&quot;Match(type)&quot;&#13;&#10;
+          xdt:SupressWarnings=&quot;true&quot;&#13;&#10;
+          &gt;&#13;&#10;
+            &lt;databaseInitializer type="System.Data.Entity.MigrateDatabaseToLatestVersion`2[[%(_DatabasesToPackageForEFCodeFirst.SourceDbContext)], [%(_DatabasesToPackageForEFCodeFirst.SourceMigrationConfiguration)]], EntityFramework, PublicKeyToken=b77a5c561934e089"&gt;&#13;&#10;
+              &lt;parameters&gt;&#13;&#10;
+                &lt;parameter value="%(_DatabasesToPackageForEFCodeFirst.DestinationGroup)_DatabasePublish" /&gt;&#13;&#10;
+              &lt;/parameters&gt;&#13;&#10;
+            &lt;/databaseInitializer&gt;&#13;&#10;
+          &lt;/context&gt;
+        </TransformXMLFragement_Deploy>
+      </_InsertEFCodeFirstDeployContextNames>
+    </ItemGroup>
+
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert) And ('@(_InsertEFCodeFirstDeployContextNames)'!='') "
+                  Encoding="utf-8"
+                  Overwrite="True"
+                  File="$(PackageLogDir)\InsertEFCodeFirstDeployContextName.Log"
+                  Lines="@(_InsertEFCodeFirstDeployContextNames->'
+    _InsertEFCodeFirstDeployContextNames   
+                      TransformXMLFragement_CSInsert: %(TransformXMLFragement_CSInsert)
+                      TransformXMLFragement_Deploy: %(TransformXMLFragement_Deploy)
+                      ')" />
+
+    <PropertyGroup>
+      <_WebConfigsToInsertEFCodeFirstDeployContext_Transform>&lt;?xml version=&quot;1.0&quot;?&gt;
+        &lt;configuration xmlns:xdt=&quot;http://schemas.microsoft.com/XML-Document-Transform&quot;&gt;
+        &lt;connectionStrings xdt:Transform=&quot;InsertIfMissing&quot; xdt:SupressWarnings=&quot;True&quot;&gt;
+        @(_InsertEFCodeFirstDeployContextNames->'%(TransformXMLFragement_CSInsert)', '')
+        &lt;/connectionStrings&gt;
+        &lt;entityFramework xdt:Transform=&quot;InsertIfMissing&quot; xdt:SupressWarnings=&quot;true&quot;&gt;
+        &lt;contexts xdt:Transform=&quot;InsertIfMissing&quot; xdt:SupressWarnings=&quot;true&quot;&gt;
+        @(_InsertEFCodeFirstDeployContextNames->'%(TransformXMLFragement_Deploy)', '')
+        &lt;/contexts&gt;
+        &lt;/entityFramework&gt;
+        &lt;/configuration&gt;
+      </_WebConfigsToInsertEFCodeFirstDeployContext_Transform>
+    </PropertyGroup>
+
+
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert) And ('@(_InsertEFCodeFirstDeployContextNames)'!='') "
+                Encoding="utf-8"
+                Overwrite="False"
+                File="$(PackageLogDir)\InsertEFCodeFirstDeployContextName.Log"
+                Lines="Final Transform-------------------------------
+                $(_WebConfigsToInsertEFCodeFirstDeployContext_Transform)" />
+
+  </Target>
+
+  <!--********************************************************************-->
+  <!--Target InsertEFCodeFirstDeployWebCofigCore -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <InsertEFCodeFirstDeployWebCofigCoreDependsOn>
+      HandleEFCodeFirstDataMigration;
+      ProfileTransformWebConfig;
+      PreInsertEFCodeFirstDeployWebCofig;
+    </InsertEFCodeFirstDeployWebCofigCoreDependsOn>
+  </PropertyGroup>
+
+  <Target Name="InsertEFCodeFirstDeployWebCofigCore"
+          Inputs="@(_WebConfigsToInsertEFCodeFirstDeployContext)"
+          Outputs="%(TransformOutputFile)"
+          DependsOnTargets="$(InsertEFCodeFirstDeployWebCofigCoreDependsOn)"
+          Condition="'@(_DatabasesToPackageForEFCodeFirst)' !=''">
+
+    <!-- First Delete the output parameter file-->
+    <!-- Remove the output file if there is change on $(UseParameterizeToTransformWebConfig)-->
+    <Delete Files="@(_WebConfigsToInsertEFCodeFirstDeployContext->'%(TransformOutputFile)')"/>
+
+
+    <PropertyGroup>
+      <_WebConfigToInsertEFCodeFirstDeployContext_Identity>%(_WebConfigsToInsertEFCodeFirstDeployContext.Identity)</_WebConfigToInsertEFCodeFirstDeployContext_Identity>
+      <_WebConfigToInsertEFCodeFirstDeployContext_TransformOutputFile>%(_WebConfigsToInsertEFCodeFirstDeployContext.TransformOutputFile)</_WebConfigToInsertEFCodeFirstDeployContext_TransformOutputFile>
+      <_WebConfigsToInsertEFCodeFirstDeployContext_TransformScope>%(_WebConfigsToInsertEFCodeFirstDeployContext.TransformScope)</_WebConfigsToInsertEFCodeFirstDeployContext_TransformScope>
+    </PropertyGroup>
+
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert)"
+                  Encoding="utf-8"
+                  Overwrite="False"
+                  File="$(PackageLogDir)\InsertEFCodeFirstDeployContextName.Log"
+                  Lines="_WebConfigToInsertEFCodeFirstDeployContext_Identity: $(_WebConfigToInsertEFCodeFirstDeployContext_Identity) 
+                      _WebConfigToInsertEFCodeFirstDeployContext_TransformOutputFile: $(_WebConfigToInsertEFCodeFirstDeployContext_TransformOutputFile)
+                      _WebConfigsToInsertEFCodeFirstDeployContext_TransformScope: $(_WebConfigsToInsertEFCodeFirstDeployContext_TransformScope)
+                      _WebConfigsToInsertEFCodeFirstDeployContext_Transform: $(_WebConfigsToInsertEFCodeFirstDeployContext_Transform)
+                      " />
+
+    <!-- Now we use the tokenize transform to auto parameterize the web.config-->
+    <ParameterizeTransformXml
+      Source="$(_WebConfigToInsertEFCodeFirstDeployContext_Identity)"
+      IsSourceAFile="True"
+      Transform="$(_WebConfigsToInsertEFCodeFirstDeployContext_Transform)"
+      IsTransformAFile="False"
+      Destination="$(_WebConfigToInsertEFCodeFirstDeployContext_TransformOutputFile)"
+      IsDestinationAFile="True"
+      Scope="$(_WebConfigsToInsertEFCodeFirstDeployContext_TransformScope)"
+      StackTrace="$(TransformWebConfigStackTraceEnabled)"
+      SourceRootPath="$(WebPublishPipelineSourceRootDirectory)">
+    </ParameterizeTransformXml>
+  </Target>
+
+  <!--********************************************************************-->
+  <!--Target PostInsertEFCodeFirstDeployWebCofig -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <PostInsertEFCodeFirstDeployWebCofigDependsOn>
+      HandleEFCodeFirstDataMigration;
+      ProfileTransformWebConfig;
+      PreInsertEFCodeFirstDeployWebCofig;
+      InsertEFCodeFirstDeployWebCofigCore;
+    </PostInsertEFCodeFirstDeployWebCofigDependsOn>
+  </PropertyGroup>
+
+  <Target Name="PostInsertEFCodeFirstDeployWebCofig"
+          DependsOnTargets="$(PostInsertEFCodeFirstDeployWebCofigDependsOn)"
+          Condition="'@(_DatabasesToPackageForEFCodeFirst)' !=''">
+
+    <ItemGroup>
+      <!--Remove untransformed Web.configs from the pipeline-->
+      <FilesForPackagingFromProject Remove="@(_WebConfigsToInsertEFCodeFirstDeployContext)" Condition="'@(_WebConfigsToInsertEFCodeFirstDeployContext)'!='' And !%(_WebConfigsToInsertEFCodeFirstDeployContext.Exclude) And Exists(%(_WebConfigsToInsertEFCodeFirstDeployContext.TransformOutputFile))"/>
+      <!--Add the transformed Web.configs at the new loction to the pipeline-->
+      <FilesForPackagingFromProject Include="@(_WebConfigsToInsertEFCodeFirstDeployContext->'%(TransformOutputFile)')" Condition="'@(_WebConfigsToInsertEFCodeFirstDeployContext)'!='' And !%(_WebConfigsToInsertEFCodeFirstDeployContext.Exclude) And Exists(%(_WebConfigsToInsertEFCodeFirstDeployContext.TransformOutputFile))"/>
+    </ItemGroup>
+
+    <!--Get Localized string before displaying message-->
+    <GetPublishingLocalizedString
+       Importance="High"
+       Condition="'@(_WebConfigsToInsertEFCodeFirstDeployContext)'!='' And !%(_WebConfigsToInsertEFCodeFirstDeployContext.Exclude) And Exists(%(_WebConfigsToInsertEFCodeFirstDeployContext.TransformOutputFile))"
+       ID="PublishLocalizedString_InsertEFCodeFirstDeployContextTransformConfigToTransformOutputFile"
+       ArgumentCount="2"
+       Arguments="@(_WebConfigsToInsertEFCodeFirstDeployContext->'%(Identity)');%(TransformOutputFile)"
+       LogType="Message" />
+    <!--<Message Importance="high"
+             Condition="'@(_WebConfigsToInsertEFCodeFirstDeployContext)'!='' And !%(_WebConfigsToInsertEFCodeFirstDeployContext.Exclude) And Exists(%(_WebConfigsToInsertEFCodeFirstDeployContext.TransformOutputFile))"
+             Text="Auto ConnectionString Transformed @(_WebConfigsToInsertEFCodeFirstDeployContext) into %(TransformOutputFile)" />-->
+
+
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert)"
+                      Encoding="utf-8"
+                      File="$(PackageLogDir)\PostInsertEFCodeFirstDeployWebCofig.txt"
+                      Lines="@(FilesForPackagingFromProject->'
+                      From:%(Identity) 
+                      DestinationRelativePath:%(DestinationRelativePath) 
+                      Exclude:%(Exclude) 
+                      FromTarget:%(FromTarget) 
+                      Category:%(Category)
+                      ProjectFileType:%(ProjectFileType)')" Overwrite="True" />
+
+  </Target>
+
+  <!--********************************************************************-->
+  <!--Target InsertEFCodeFirstDeployWebCofig-->
+  <!--**********************************************************************-->
+  <PropertyGroup>
+    <InsertEFCodeFirstDeployWebCofigDependsOn>
+      $(OnBeforeInsertEFCodeFirstDeployWebCofig);
+      $(InsertEFCodeFirstDeployWebCofigDependsOn);
+      TransformWebConfig;
+      HandleEFCodeFirstDataMigration;
+      ProfileTransformWebConfig;
+      PreInsertEFCodeFirstDeployWebCofig;
+      InsertEFCodeFirstDeployWebCofigCore;
+      PostInsertEFCodeFirstDeployWebCofig;
+    </InsertEFCodeFirstDeployWebCofigDependsOn>
+    <InsertEFCodeFirstDeployWebCofigBeforeTargets>
+      $(InsertEFCodeFirstDeployWebCofigBeforeTargets);
+      PreAutoParameterizationWebConfigConnectionStrings;
+      AutoParameterizationWebConfigConnectionStrings;
+      PipelineMsdeploySpecificTransformPhase;
+    </InsertEFCodeFirstDeployWebCofigBeforeTargets>
+  </PropertyGroup>
+  <Target Name="InsertEFCodeFirstDeployWebCofig" 
+          DependsOnTargets="$(InsertEFCodeFirstDeployWebCofigDependsOn)"
+          BeforeTargets="$(InsertEFCodeFirstDeployWebCofigBeforeTargets)"
+          Condition="'$(InsertEFCodeFirstDeployWebCofig)' != 'False'">
+
+  </Target>
+
+  <Target Name="_GatherDbDacFxDestinationPathes">
+    <ItemGroup>
+      <_DbDacFxDestinationPathesToPublish Include="@(_DatabasesToPackage->'%(DestinationPath)')" Condition="'%(_DatabasesToPackage.SourceProvider)' == 'dbDacFx'" />
+    </ItemGroup>
+  </Target>
+  
+  <!--********************************************************************-->
+  <!-- _CheckDBProvidersAreAvailableAtServer  -->
+  <!--********************************************************************-->
+  <Target Name="_CheckDBProvidersAreAvailableAtServer"
+          DependsOnTargets="_GatherDbDacFxDestinationPathes"
+          Condition="'$(WebPublishMethod)' != 'Package' And '$(MsDeployServiceUrl)' != ''">
+    <CallTarget Targets="_DetectDbDacFxProvider" RunEachTargetSeparately="false" Condition="'@(_DbDacFxDestinationPathesToPublish)' != ''" />      
+  </Target>
+
+  <!--********************************************************************-->
+  <!-- CollectDatabasesToPublish  -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <PublishDatabases Condition="'$(PublishDatabases)'==''">True</PublishDatabases>
+    <CollectDatabasesToPublishDependsOn>
+      $(CollectDatabasesToPublishDependsOn);
+      GetMSDeployInstalledVersionPath;
+      ProcessPublishDatabaseSettings;
+      _CheckDBProvidersAreAvailableAtServer;
+      ParseSQLScriptForMSDeployParameters;
+      HandleEFCodeFirstDataMigration;
+      InsertEFCodeFirstDeployWebCofig;
+    </CollectDatabasesToPublishDependsOn>
+  </PropertyGroup>
+  <Target Name="CollectDatabasesToPublish" DependsOnTargets="$(CollectDatabasesToPublishDependsOn)" Condition="$(PublishDatabases) And ('$(PublishDatabaseSettings)' != '' Or '$(PublishDatabaseSettingsFile)' != '')">
+  </Target>
+
+  <!--********************************************************************-->
+  <!-- AddDeclareParametersItemsForDatabaseScript  -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <BeforeAddDeclareParametersItemsForDatabaseScript Condition="'$(BeforeAddDeclareParametersItemsForDatabaseScript)'==''">
+    </BeforeAddDeclareParametersItemsForDatabaseScript>
+    <AfterAddDeclareParametersItemsForDatabaseScript Condition="'$(AfterAddDeclareParametersItemsForDatabaseScript)'==''">
+    </AfterAddDeclareParametersItemsForDatabaseScript>
+    <AddDeclareParametersItemsForDatabaseScriptDependsOn>
+      $(BeforeAddDeclareParametersItemsForDatabaseScript);
+      CollectDatabasesToPublish;
+    </AddDeclareParametersItemsForDatabaseScriptDependsOn>
+  </PropertyGroup>
+  <Target Name="AddDeclareParametersItemsForDatabaseScript"
+          DependsOnTargets="$(AddDeclareParametersItemsForDatabaseScriptDependsOn)">
+
+    <!--Get localized $(DeployParameterSqlScriptVariablesDescription) from the Task.dll if it wasn't bee set by user.-->
+    <GetPublishingLocalizedString
+      Condition="'$(DeployParameterSqlScriptVariablesDescription)'==''"
+      ID="PublishLocalizedString_SqlCommandVariableParameterDescription">
+      <Output TaskParameter="Result" PropertyName="DeployParameterSqlScriptVariablesDescription" />
+    </GetPublishingLocalizedString>
+
+
+    <!--Get localized $(DeployParameterIISAppConnectionStringDescription) from the Task.dll if it wasn't bee set by user.-->
+    <GetPublishingLocalizedString
+      Condition="'$(DeployParameterIISAppConnectionStringDescription)'=='' And !$(DeployParameterAutoDescriptionbyTags)"
+      ID="PublishLocalizedString_DatabaseConnectionStringParameterDescription">
+      <Output TaskParameter="Result" PropertyName="DeployParameterIISAppConnectionStringDescription" />
+    </GetPublishingLocalizedString>
+
+    <!--if $(DeployParameterAutoDescriptionbyTags), we turn off the description.-->
+    <DeployParameterIISAppConnectionStringDescription Condition="'$(DeployParameterIISAppConnectionStringDescription)'!='' And $(DeployParameterAutoDescriptionbyTags)"></DeployParameterIISAppConnectionStringDescription>
+
+    <ItemGroup  Condition="!$(DisableAllVSGeneratedMSDeployParameter)">
+      <_VsPublish_DatabaseToPackage_DeclareParameters Include="@(_DatabasesToPackage->'$(DeployParameterPrefix)%(DestinationGroup)-Deployment Connection String')"
+                                                      Condition="'%(_DatabasesToPackage.Identity)' !=''  And '%(_DatabasesToPackage.SourceProvider)' != 'DbCodeFirst' ">
+        <Kind>ProviderPath</Kind>
+        <Scope>%(_DatabasesToPackage.SourceProvider)</Scope>
+        <Match>^%(_DatabasesToPackage.SourcePath_RegExExcaped)$</Match>
+        <Description>$(DeployParameterIISAppConnectionStringDescription)</Description>
+        <DefaultValue>%(_DatabasesToPackage.DestinationPath)</DefaultValue>
+        <Value>%(_DatabasesToPackage.DestinationPath)</Value>
+        <Tags>$(MsDeployDatabaseTag)</Tags>
+      </_VsPublish_DatabaseToPackage_DeclareParameters>
+
+      
+      <_VsPublish_DatabaseToPackage_DeclareParameters Include="@(_DatabasesToPackage_SqlVariables->'$(DeployParameterPrefix)Sql script variable %24(%(Identity)) in %(DestinationGroup) scripts')"
+                                                      Condition="$(EnableSqlScriptVariableParameterize) And '%(_DatabasesToPackage_SqlVariables.Identity)' !=''">
+        <Kind>$(MsDeploySqlCommandVariableKind)</Kind>
+        <Scope>^%(_DatabasesToPackage_SqlVariables.SourcePath_RegExExcaped)$</Scope>
+        <Match>%(_DatabasesToPackage_SqlVariables.Identity)</Match>
+        <Description>$(DeployParameterSqlScriptVariablesDescription)</Description>
+        <DefaultValue>%(_DatabasesToPackage_SqlVariables.Value)</DefaultValue>
+        <Value>%(_DatabasesToPackage_SqlVariables.Value)</Value>
+        <Tags>sql</Tags>
+      </_VsPublish_DatabaseToPackage_DeclareParameters>
+
+      <!--Work around the TSData script when there are Sqlcommand variable that declare as Empty string-->
+      <_VsPublish_DatabaseToPackage_DeclareParameters Include="@(_DatabasesToPackage_SqlVariables->'$(DeployParameterPrefix)Sql script variable %24(%(Identity)) in %(DestinationGroup) scripts')"
+                                                      Condition="$(EnableSqlScriptVariableParameterize) and '%(_DatabasesToPackage_SqlVariables.Identity)' !='' and ('%(_DatabasesToPackage_SqlVariables.Value)' == '') and ('%(_DatabasesToPackage_SqlVariables.IsDeclared)' == 'true') ">
+        <Element>parameterValidation</Element>
+        <Kind>AllowEmpty</Kind>
+      </_VsPublish_DatabaseToPackage_DeclareParameters>
+
+      <MsDeployDeclareParameters Include="@(_VsPublish_DatabaseToPackage_DeclareParameters)">
+        <Priority>$(VsSQLDatabaseScriptParametersPriority)</Priority>
+      </MsDeployDeclareParameters>
+    </ItemGroup>
+
+    <CallTarget Targets="$(AfterAddDeclareParametersItemsForDatabaseScript)" RunEachTargetSeparately="false" Condition="'$(AfterAddDeclareParametersItemsForDatabaseScript)' != ''" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!-- AddDatabasesToSourceManifest  -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <WriteItemsToSourceManifestDependsOn>
+      $(WriteItemsToSourceManifestDependsOn);
+      AddDatabasesToSourceManifest;
+    </WriteItemsToSourceManifestDependsOn>
+  </PropertyGroup>
+  <PropertyGroup>
+    <BeforeAddDatabasesToSourceManifest Condition="'$(BeforeAddDatabasesToSourceManifest)'==''">
+    </BeforeAddDatabasesToSourceManifest>
+    <AfterAddDatabasesToSourceManifest Condition="'$(AfterAddDatabasesToSourceManifest)'==''">
+    </AfterAddDatabasesToSourceManifest>
+    <AddDatabasesToSourceManifestDependsOn>
+      $(BeforeAddDatabasesToSourceManifest);
+      CollectDatabasesToPublish;
+    </AddDatabasesToSourceManifestDependsOn>
+    <AddDatabasesToSourceManifestAfterTargets>
+      $(AddDatabasesToSourceManifestAfterTargets);
+      AddIisSettingAndFileContentsToSourceManifest;
+    </AddDatabasesToSourceManifestAfterTargets>
+  </PropertyGroup>
+  <Target Name="AddDatabasesToSourceManifest"
+          DependsOnTargets="$(AddDatabasesToSourceManifestDependsOn)">
+
+    <ItemGroup>
+      <MsDeploySourceManifest Include="@(_DatabasesToSourceManifest)" Condition="'%(_DatabasesToSourceManifest.Identity)' != 'DbCodeFirst'"/>
+    </ItemGroup>
+
+    <CallTarget Targets="$(AfterAddDatabasesToSourceManifest)" RunEachTargetSeparately="false" Condition="'$(AfterAddDatabasesToSourceManifest)' != ''" />
+  </Target>
+
+  
+
+
+  <!--***********************************************************************-->
+  <!--GenerateSampleDeployScript task-->
+  <!--***********************************************************************-->
+  <PropertyGroup>
+    <GenerateSampleDeployScriptDependsOn Condition="'$(GenerateSampleDeployScriptDependsOn)'==''">
+      GetMSDeployInstalledVersionPath;
+      GenerateMsDeployManifestSettings;
+      GenerateMsdeployManifestFiles;
+    </GenerateSampleDeployScriptDependsOn>
+    <GenerateSampleDeployScriptAfterTargets>
+      $(GenerateSampleDeployScriptAfterTargets);
+      PackageUsingManifest;
+    </GenerateSampleDeployScriptAfterTargets>
+  </PropertyGroup>
+
+  <Target Condition="$(GenerateSampleDeployScript)"
+          Name="GenerateSampleDeployScript"
+          DependsOnTargets="$(GenerateSampleDeployScriptDependsOn)"
+          AfterTargets="$(GenerateSampleDeployScriptAfterTargets)">
+
+    <!--Get Localized string before displaying message-->
+    <GetPublishingLocalizedString
+       Importance="Low"
+       ID="PublishLocalizedString_GenerateSampleMsdeployBatchScript"
+       LogType="Message" />
+    <!--<Message Text="GenerateSampleDeployScript the package..." Importance="low"/>-->
+
+    <PropertyGroup>
+      <!--
+        MSDeployPublishSourceType can be 
+        SingleFilePackage(a single ziped file package)
+        Manifest(a file with Iis VDir info plus file pathes)
+        RawIisVDir(Let MSDeploy published all files underneath the phisical path)
+        ArchiveDir(a folder genearated by package with all files to be transferred)
+      -->
+      <!--So far, if we see the single file package, we pick it up; otherwise, we GenerateSampleDeployScript from Iis vdir -->
+      <GenerateSampleDeployScriptSourceType>manifest</GenerateSampleDeployScriptSourceType>
+      <GenerateSampleDeployScriptSourceFileName>@(_MSDeploySourceManifest->'%(FileName)%(Extension)')</GenerateSampleDeployScriptSourceFileName>
+      <GenerateSampleDeployScriptSourceType Condition="$(_CreatePackage) And $(PackageAsSingleFile)">package</GenerateSampleDeployScriptSourceType>
+      <GenerateSampleDeployScriptSourceFileName Condition="$(_CreatePackage) And $(PackageAsSingleFile)">@(_MSDeployPackageFile->'%(FileName)%(Extension)')</GenerateSampleDeployScriptSourceFileName>
+      <GenerateSampleDeployScriptSourceType Condition="$(_CreatePackage) And !$(PackageAsSingleFile)">archiveDir</GenerateSampleDeployScriptSourceType>
+      <GenerateSampleDeployScriptSourceFileName Condition="$(_CreatePackage) And !$(PackageAsSingleFile)">@(_MSDeployArchiveDir->'%(FileName)%(Extension)')</GenerateSampleDeployScriptSourceFileName>
+      <GenerateSampleDeployScriptSourceRoot>%25RootPath%25$(GenerateSampleDeployScriptSourceFileName)</GenerateSampleDeployScriptSourceRoot>
+      <GenerateSampleDeployScriptDestinationType>%25_Destination%25</GenerateSampleDeployScriptDestinationType>
+      <GenerateSampleDeployScriptDestinationRoot></GenerateSampleDeployScriptDestinationRoot>
+      <GenerateSampleDeployScriptParameters>@(_MSDeploySampleParametersValue->'%25RootPath%25%(FileName)%(Extension)')</GenerateSampleDeployScriptParameters>
+      <_ScriptGenerateSampleDeployScriptReadMeLocation>%25RootPath%25$(GenerateSampleDeployScriptReadMeFileName)</_ScriptGenerateSampleDeployScriptReadMeLocation>
+      <_MSdeployFwdLink>http://go.microsoft.com/?linkid=9278654</_MSdeployFwdLink>
+      <_SampleDeployCmdFwdLink>http://go.microsoft.com/fwlink/?LinkID=183544</_SampleDeployCmdFwdLink>
+    </PropertyGroup>
+
+    <ItemGroup>
+      <_MsDeployDeclareParametersNotExclude Include="@(MsDeployDeclareParameters)" Condition="'%(ExcludeFromSetParameter)' != true and '%(MsDeployDeclareParameters.Identity)' !=''" />
+    </ItemGroup>
+
+    <SortParametrsByPriority Parameters="@(_MsDeployDeclareParametersNotExclude)"
+                             OptimisticParameterDefaultValue="$(EnableOptimisticParameterDefaultValue)"
+                             OptimisticParameterMetadataName="Value"
+                             >
+      <Output TaskParameter="Result" ItemName="_SortedMsDeployDeclareParameters"/>
+    </SortParametrsByPriority>
+
+    <RemoveDuplicates Inputs="@(_SortedMsDeployDeclareParameters)">
+      <Output TaskParameter="Filtered" ItemName="_SampleSetParametersFiltered"/>
+    </RemoveDuplicates>
+
+    <ItemGroup>
+      <MsDeploySourceProviderSetting Remove="@(MsDeploySourceProviderSetting)" />
+      <MsDeploySourceProviderSetting Include="$(GenerateSampleDeployScriptSourceType)">
+        <Path>$(GenerateSampleDeployScriptSourceRoot)</Path>
+        <EncryptPassword>$(DeployEncryptKey)</EncryptPassword>
+      </MsDeploySourceProviderSetting>
+      <MsDeployDestinationProviderSetting Remove="@(MsDeployDestinationProviderSetting)" />
+      <MsDeployDestinationProviderSetting Include="$(GenerateSampleDeployScriptDestinationType)">
+        <Path>$(GenerateSampleDeployScriptDestinationRoot)</Path>
+        <EncryptPassword>$(DeployEncryptKey)</EncryptPassword>
+      </MsDeployDestinationProviderSetting>
+    </ItemGroup>
+
+    <!--Debug/Diagnostic message is not localized-->
+    <Message Text="GenerateSampleDeployScript MsDeploySourceProviderSetting is @(MsDeploySourceProviderSetting)" Condition="$(EnablePackageProcessLoggingAndAssert)" />
+    <Message Text="GenerateSampleDeployScript MsDeployDestinationProviderSetting is @(MsDeployDestinationProviderSetting)" Condition="$(EnablePackageProcessLoggingAndAssert)"/>
+
+    <!--Generate the command line  script for straight deploy-->
+    <MSdeploy
+        PreviewCommandLineOnly="True"
+        Verb="sync"
+        Source="@(MsDeploySourceProviderSetting)"
+        Destination="@(MsDeployDestinationProviderSetting)"
+        DisableLink="$(PublishDisableLinks)"
+        EnableLink="$(PublishEnableLinks)"
+        SkipRuleItems="@(MsDeploySkipRules)"
+        ExePath="%25MSDeployPath%25">
+      <Output TaskParameter="CommandLine" PropertyName="_SampleDeployScript" />
+    </MSdeploy>
+
+    <MSdeploy
+      PreviewCommandLineOnly="True"
+      Verb="sync"
+      Source="@(MsDeploySourceProviderSetting)"
+      Destination="@(MsDeployDestinationProviderSetting)"
+      DisableLink="$(PublishDisableLinks)"
+      EnableLink="$(PublishEnableLinks)"
+      SkipRuleItems="@(MsDeploySkipRules)"
+      ImportSetParametersItems="%25_DeploySetParametersFile%25"
+      ExePath="%25MSDeployPath%25">
+      <Output TaskParameter="CommandLine" PropertyName="_SampleDeployScriptOnSetParametersFile" />
+    </MSdeploy>
+    <!--Generate the command line script for the what-if msdeploy-->
+    <MSdeploy
+      PreviewCommandLineOnly="True"
+      WhatIf="True"
+      Verb="sync"
+      Source="@(MsDeploySourceProviderSetting)"
+      Destination="@(MsDeployDestinationProviderSetting)"
+      DisableLink="$(PublishDisableLinks)"
+      EnableLink="$(PublishEnableLinks)"
+      SkipRuleItems="@(MsDeploySkipRules)"
+      ImportSetParametersItems="%25_DeploySetParametersFile%25"
+      ExePath="%25MSDeployPath%25">
+      <Output TaskParameter="CommandLine" PropertyName="_SampleDeployScriptOnSetParametersFileWithWhatIf" />
+    </MSdeploy>
+
+
+    <!--Generate the Set Parameter file-->
+    <ExportParametersFile
+      Parameters="@(_SampleSetParametersFiltered)"
+      OptimisticParameterDefaultValue="$(EnableOptimisticParameterDefaultValue)"
+      SetParameterFile="$(GenerateSampleParametersValueLocation)"
+      GenerateFileEvenIfEmpty="True"
+      />
+
+    <ItemGroup>
+      <FileWrites Include="$(GenerateSampleParametersValueLocation)" />
+    </ItemGroup>
+
+
+
+
+    <!--Now write the sample batch file. Note this relies on the fact that the Batch file should be under the same location as the package and manifestfiles -->
+    <!--Note that by default Command line file only support the ANSI. Even if we code it against utf-8, the cmd.exe won't be able to handle it.
+    Only the package and setparameters.xml file name matter.  You change the deploy parameters into setparameters.xml which support utf-8 properly.-->
+    <WriteLinesToFile File="$(GenerateSampleDeployScriptLocation)"
+                      Overwrite="True"
+                      Encoding="us-ascii"
+                      Lines="@rem ---------------------------------------------------------------------------------
+@rem Copyright 2008 Microsoft Corporation. All rights reserved.
+@rem This is provided as sample to deploy the package using msdeploy.exe
+@rem For information about IIS Web Deploy technology,
+@rem please visit $(_MSdeployFwdLink)
+@rem Note: This batch file assumes the package and setparametsrs.xml are in the same folder with this file
+@rem ---------------------------------------------------------------------------------
+@if %_echo%!==! echo off
+setlocal
+@rem ---------------------------------------------------------------------------------
+@rem Please Make sure you have Web Deploy install in your machine. 
+@rem Alternatively, you can explicit set the MsDeployPath to the location it is on your machine
+@rem set MSDeployPath=&quot;$(MSDeployPath)&quot;
+@rem ---------------------------------------------------------------------------------
+                      
+@rem ---------------------------------------------------------------------------------
+@rem if user does not set MsDeployPath environment variable, we will try to retrieve it from registry.
+@rem ---------------------------------------------------------------------------------
+if &quot;%MSDeployPath%&quot; == &quot;&quot; (
+for /F &quot;usebackq tokens=1,2,*&quot; %%h  in (`reg query &quot;HKLM\SOFTWARE\Microsoft\IIS Extensions\MSDeploy&quot; /s  ^| findstr -i &quot;InstallPath&quot;`) do (
+if /I &quot;%%h&quot; == &quot;InstallPath&quot; ( 
+if /I &quot;%%i&quot; == &quot;REG_SZ&quot; ( 
+if not &quot;%%j&quot; == &quot;&quot; ( 
+if &quot;%%~dpj&quot; == &quot;%%j&quot; ( 
+set MSDeployPath=%%j
+))))))
+
+@rem ------------------------------------------
+$(_GenerateSampleDeployScript_Set_MSDeployPath)
+@rem ------------------------------------------
+
+                      
+if not exist &quot;%MSDeployPath%msdeploy.exe&quot; (
+echo. msdeploy.exe is not found on this machine. Please install Web Deploy before execute the script. 
+echo. Please visit $(_MSdeployFwdLink)
+goto :usage
+)
+
+set RootPath=%~dp0
+if /I &quot;%_DeploySetParametersFile%&quot; == &quot;&quot; (
+set _DeploySetParametersFile=$(GenerateSampleDeployScriptParameters)
+)
+
+@rem ------------------------------------------
+$(_GenerateSampleDeployScript_Set_DeploySetParametersFile)
+@rem ------------------------------------------
+
+                      
+set _ArgTestDeploy=
+set _ArgDestinationType=auto
+set _ArgComputerNameWithQuote=&quot;&quot;
+set _ArgUserNameWithQuote=&quot;&quot;
+set _ArgPasswordWithQuote=&quot;&quot;
+set _ArgEncryptPasswordWithQuote=&quot;&quot;
+set _ArgIncludeAclsWithQuote=&quot;False&quot;
+set _ArgAuthTypeWithQuote=&quot;&quot;
+set _ArgtempAgentWithQuote=&quot;&quot;
+set _ArgLocalIIS=
+set _ArgLocalIISVersion=
+set _HaveArgMSDeployAdditonalFlags=
+                      
+                      
+@rem ---------------------------------------------------------------------------------
+@rem Simple Parse the arguments
+@rem ---------------------------------------------------------------------------------
+:NextArgument
+set _ArgCurrent=%~1
+set _ArgFlagFirst=%_ArgCurrent:~0,1%
+set _ArgFlag=%_ArgCurrent:~0,3%
+set _ArgValue=%_ArgCurrent:~3%
+
+if /I &quot;%_ArgFlag%&quot; == &quot;&quot; goto :GetStarted
+if /I &quot;%_ArgFlag%&quot; == &quot;~0,3&quot; goto :GetStarted
+if /I &quot;%_ArgFlag%&quot; == &quot;/T&quot; set _ArgTestDeploy=true&amp;goto :ArgumentOK
+if /I &quot;%_ArgFlag%&quot; == &quot;/Y&quot; set _ArgTestDeploy=false&amp;goto :ArgumentOK
+if /I &quot;%_ArgFlag%&quot; == &quot;/L&quot; set _ArgLocalIIS=true&amp;goto :ArgumentOK
+
+if /I &quot;%_ArgFlag%&quot; == &quot;/M:&quot; set _ArgComputerNameWithQuote=&quot;%_ArgValue%&quot;&amp;goto :ArgumentOK
+if /I &quot;%_ArgFlag%&quot; == &quot;/U:&quot; set _ArgUserNameWithQuote=&quot;%_ArgValue%&quot;&amp;goto :ArgumentOK
+if /I &quot;%_ArgFlag%&quot; == &quot;/P:&quot; set _ArgPasswordWithQuote=&quot;%_ArgValue%&quot;&amp;goto :ArgumentOK
+if /I &quot;%_ArgFlag%&quot; == &quot;/E:&quot; set _ArgEncryptPasswordWithQuote=&quot;%_ArgValue%&quot;&amp;goto :ArgumentOK
+if /I &quot;%_ArgFlag%&quot; == &quot;/I:&quot; set _ArgIncludeAclsWithQuote=&quot;%_ArgValue%&quot;&amp;goto :ArgumentOK
+if /I &quot;%_ArgFlag%&quot; == &quot;/A:&quot; set _ArgAuthTypeWithQuote=&quot;%_ArgValue%&quot;&amp;goto :ArgumentOK
+if /I &quot;%_ArgFlag%&quot; == &quot;/G:&quot; set _ArgtempAgentWithQuote=&quot;%_ArgValue%&quot;&amp;goto :ArgumentOK
+
+@rem Any addition flags, pass through to the msdeploy
+if &quot;%_HaveArgMSDeployAdditonalFlags%&quot; == &quot;&quot; (
+goto :Assign_ArgMsDeployAdditionalFlags
+)
+set _ArgMsDeployAdditionalFlags=%_ArgMsDeployAdditionalFlags:&amp;=^&amp;% %_ArgCurrent:&amp;=^&amp;%
+set _HaveArgMSDeployAdditonalFlags=1
+goto :ArgumentOK
+
+
+:Assign_ArgMsDeployAdditionalFlags
+set _ArgMsDeployAdditionalFlags=%_ArgCurrent:&amp;=^&amp;%
+set _HaveArgMSDeployAdditonalFlags=1
+goto :ArgumentOK
+
+:ArgumentOK
+shift
+goto :NextArgument
+
+:GetStarted
+@rem ------------------------------------------
+$(_GenerateSampleDeployScript_AfterParseArguments)
+@rem ------------------------------------------
+if /I &quot;%_ArgTestDeploy%&quot; == &quot;&quot; goto :usage
+if /I &quot;%_ArgDestinationType%&quot; == &quot;&quot;  goto :usage
+
+set _Destination=%_ArgDestinationType%
+if not %_ArgComputerNameWithQuote% == &quot;&quot; set _Destination=%_Destination%,computerName=%_ArgComputerNameWithQuote%
+if not %_ArgUserNameWithQuote% == &quot;&quot; set _Destination=%_Destination%,userName=%_ArgUserNameWithQuote%
+if not %_ArgPasswordWithQuote% == &quot;&quot; set _Destination=%_Destination%,password=%_ArgPasswordWithQuote%
+if not %_ArgAuthTypeWithQuote% == &quot;&quot; set _Destination=%_Destination%,authtype=%_ArgAuthTypeWithQuote%
+if not %_ArgEncryptPasswordWithQuote% == &quot;&quot; set _Destination=%_Destination%,encryptPassword=%_ArgEncryptPasswordWithQuote%
+if not %_ArgIncludeAclsWithQuote% == &quot;&quot; set _Destination=%_Destination%,includeAcls=%_ArgIncludeAclsWithQuote%
+if not %_ArgtempAgentWithQuote% == &quot;&quot; set _Destination=%_Destination%,tempAgent=%_ArgtempAgentWithQuote%
+
+@rem ------------------------------------------
+$(_GenerateSampleDeployScript_AfterSet_Destination)
+@rem ------------------------------------------
+
+                      
+@rem ---------------------------------------------------------------------------------
+@rem add -whatif when -T is specified                      
+@rem ---------------------------------------------------------------------------------
+if /I &quot;%_ArgTestDeploy%&quot; NEQ &quot;false&quot; (
+set _MsDeployAdditionalFlags=-whatif %_MsDeployAdditionalFlags%
+)
+
+@rem ------------------------------------------
+$(_GenerateSampleDeployScript_AfterSet_WhatIf)
+@rem ------------------------------------------
+
+@rem ---------------------------------------------------------------------------------
+@rem add flags for IISExpress when -L is specified                      
+@rem ---------------------------------------------------------------------------------
+
+if /I &quot;%_ArgLocalIIS%&quot; == &quot;true&quot; (
+call :SetIISExpressArguments
+)
+if /I &quot;%_ArgLocalIIS%&quot; == &quot;true&quot; (
+if not exist &quot;%IISExpressPath%%IISExpressManifest%&quot; (
+echo. IISExpress is not found on this machine. Please install through Web Platform Installer before execute the script. 
+echo. or remove /L flag
+echo. Please visit $(_MSdeployFwdLink)
+goto :usage
+)
+if not exist &quot;%IISExpressUserProfileDirectory%&quot; (
+echo. %IISExpressUserProfileDirectory% is not exists
+echo. IISExpress is found on the machine. But the user have run IISExpress at least once.
+echo. Please visit $(_MSdeployFwdLink) for detail
+goto :usage
+)
+                      
+set _MsDeployAdditionalFlags=%_MsDeployAdditionalFlags% -appHostConfigDir:%IISExpressUserProfileDirectory% -WebServerDir:&quot;%IISExpressPath%&quot; -webServerManifest:&quot;%IISExpressManifest%&quot;
+)
+
+@rem ---------------------------------------------------------------------------------
+@rem check the existence of the package file
+@rem ---------------------------------------------------------------------------------
+if not exist &quot;$(GenerateSampleDeployScriptSourceRoot)&quot; (
+echo &quot;$(GenerateSampleDeployScriptSourceRoot)&quot; does not exist. 
+echo This batch file relies on this deploy source file^(s^) in the same folder.
+goto :usage
+)
+
+@rem ---------------------------------------------
+$(_GenerateSampleDeployScript_BeforeExecuteMsDeployExe)
+@rem ---------------------------------------------
+
+@rem ---------------------------------------------------------------------------------
+@rem Execute msdeploy.exe command line
+@rem ---------------------------------------------------------------------------------
+call :CheckParameterFile
+echo. Start executing msdeploy.exe
+echo -------------------------------------------------------
+if  not exist &quot;%_DeploySetParametersFile%&quot; (
+set _MSDeployCommandline=$(_SampleDeployScript)
+) else (
+set _MSDeployCommandline=$(_SampleDeployScriptOnSetParametersFile)
+)
+
+if &quot;%_HaveArgMSDeployAdditonalFlags%&quot; == &quot;&quot; (
+goto :MSDeployWithOutArgMsDeployAdditionalFlag
+) 
+goto :MSDeployWithArgMsDeployAdditionalFlag
+goto :eof
+
+@rem ---------------------------------------------------------------------------------
+@rem MSDeployWithArgMsDeployAdditionalFlag
+@rem ---------------------------------------------------------------------------------
+:MSDeployWithArgMsDeployAdditionalFlag
+echo. %_MSDeployCommandline% %_MsDeployAdditionalFlags% %_ArgMsDeployAdditionalFlags:&amp;=^&amp;%
+%_MSDeployCommandline% %_MsDeployAdditionalFlags% %_ArgMsDeployAdditionalFlags:&amp;=^&amp;%
+goto :eof
+
+@rem ---------------------------------------------------------------------------------
+@rem MSDeployWithOutArgMsDeployAdditionalFlag
+@rem ---------------------------------------------------------------------------------
+:MSDeployWithOutArgMsDeployAdditionalFlag
+echo. %_MSDeployCommandline% %_MsDeployAdditionalFlags%
+%_MSDeployCommandline% %_MsDeployAdditionalFlags%
+goto :eof
+
+@rem ---------------------------------------------------------------------------------
+@rem Find and set IISExpress argument.
+@rem ---------------------------------------------------------------------------------
+:SetIISExpressArguments
+                      
+if &quot;%IISExpressPath%&quot; == &quot;&quot; (
+for /F &quot;usebackq tokens=1,2,*&quot; %%h  in (`reg query &quot;HKLM\SOFTWARE\Microsoft\IISExpress&quot; /s  ^| findstr -i &quot;InstallPath&quot;`) do (
+if /I &quot;%%h&quot; == &quot;InstallPath&quot; ( 
+if /I &quot;%%i&quot; == &quot;REG_SZ&quot; ( 
+if not &quot;%%j&quot; == &quot;&quot; ( 
+if &quot;%%~dpj&quot; == &quot;%%j&quot; ( 
+set IISExpressPath=%%j
+))))))
+
+if &quot;%IISExpressPath%&quot; == &quot;&quot; (
+for /F &quot;usebackq tokens=1,2,*&quot; %%h  in (`reg query &quot;HKLM\SOFTWARE\Wow6432Node\Microsoft\IISExpress&quot; /s  ^| findstr -i &quot;InstallPath&quot;`) do (
+if /I &quot;%%h&quot; == &quot;InstallPath&quot; ( 
+if /I &quot;%%i&quot; == &quot;REG_SZ&quot; ( 
+if not &quot;%%j&quot; == &quot;&quot; ( 
+if &quot;%%~dpj&quot; == &quot;%%j&quot; ( 
+set IISExpressPath=%%j
+))))))
+
+if &quot;%PersonalDocumentFolder%&quot; == &quot;&quot; (
+for /F &quot;usebackq tokens=2*&quot; %%i  in (`reg query &quot;HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders&quot; /v Personal`) do (
+set PersonalDocumentFolder=%%j
+))
+
+if &quot;%IISExpressManifest%&quot; == &quot;&quot; (
+for /F &quot;usebackq tokens=1,2,*&quot; %%h  in (`reg query &quot;HKLM\SOFTWARE\Microsoft\IISExpress&quot; /s  ^| findstr -i &quot;Manifest&quot;`) do (
+if /I &quot;%%h&quot; == &quot;Manifest&quot; ( 
+if /I &quot;%%i&quot; == &quot;REG_SZ&quot; ( 
+if not &quot;%%j&quot; == &quot;&quot; ( 
+set IISExpressManifest=%%j
+)))))
+
+if &quot;%IISExpressManifest%&quot; == &quot;&quot; (
+for /F &quot;usebackq tokens=1,2,*&quot; %%h  in (`reg query &quot;HKLM\SOFTWARE\Wow6432Node\Microsoft\IISExpress&quot; /s  ^| findstr -i &quot;Manifest&quot;`) do (
+if /I &quot;%%h&quot; == &quot;Manifest&quot; ( 
+if /I &quot;%%i&quot; == &quot;REG_SZ&quot; ( 
+if not &quot;%%j&quot; == &quot;&quot; ( 
+set IISExpressManifest=%%j
+)))))
+                      
+set IISExpressUserProfileDirectory=&quot;%PersonalDocumentFolder%\IISExpress\config&quot;
+
+@rem ---------------------------------------------
+$(_GenerateSampleDeployScript_AfterSetIISexpressRelatedVariable)
+@rem ---------------------------------------------
+
+goto :eof                      
+                      
+@rem ---------------------------------------------------------------------------------
+@rem CheckParameterFile -- check if the package's setparamters.xml exists or not
+@rem ---------------------------------------------------------------------------------
+:CheckParameterFile
+if exist &quot;%_DeploySetParametersFile%&quot; (
+echo SetParameters from:
+echo &quot;%_DeploySetParametersFile%&quot;
+echo You can change IIS Application Name, Physical path, connectionString
+echo or other deploy parameters in the above file.
+) else (
+echo SetParamterFiles does not exist in package location.
+echo Use package embedded defaultValue to deploy.
+)
+echo -------------------------------------------------------
+goto :eof
+
+@rem ---------------------------------------------------------------------------------
+@rem Usage
+@rem ---------------------------------------------------------------------------------
+:usage
+echo =========================================================
+if not exist &quot;$(_ScriptGenerateSampleDeployScriptReadMeLocation)&quot; (
+echo Usage:%~nx0 [/T^|/Y] [/M:ComputerName] [/U:userName] [/P:password] [/G:tempAgent] [additional msdeploy flags ...]
+echo Required flags:
+echo /T  Calls msdeploy.exe with the &quot;-whatif&quot; flag, which simulates deployment. 
+echo /Y  Calls msdeploy.exe without the &quot;-whatif&quot; flag, which deploys the package to the current machine or destination server 
+echo Optional flags:  
+echo. By Default, this script deploy to the current machine where this script is invoked which will use current user credential without tempAgent. 
+echo.   Only pass these arguments when in advance scenario.
+echo /M:  Msdeploy destination name of remote computer or proxy-URL. Default is local.
+echo /U:  Msdeploy destination user name. 
+echo /P:  Msdeploy destination password.
+echo /G:  Msdeploy destination tempAgent. True or False. Default is false.
+echo /A:  specifies the type of authentication to be used. The possible values are NTLM and Basic. If the wmsvc provider setting is specified, the default authentication type is Basic; otherwise, the default authentication type is NTLM.
+echo /L:  Deploy to Local IISExpress User Instance.  
+
+echo.[additional msdeploy flags]: note: &quot; is required for passing = through command line.
+echo  &quot;-skip:objectName=setAcl&quot; &quot;-skip:objectName=dbFullSql&quot;
+echo.Alternative environment variable _MsDeployAdditionalFlags is also honored.
+echo.
+echo. Please make sure MSDeploy is installed in the box $(_MSdeployFwdLink)
+echo.
+echo In addition, you can change IIS Application Name, Physical path, 
+echo connectionString and other deploy parameters in the following file:
+echo &quot;%_DeploySetParametersFile%&quot;
+echo.
+echo For more information about this batch file, visit $(_SampleDeployCmdFwdLink) 
+) else (
+start notepad &quot;$(_ScriptGenerateSampleDeployScriptReadMeLocation)&quot;
+)
+echo =========================================================
+goto :eof
+"/>
+
+
+    <ItemGroup>
+      <FileWrites Include="$(GenerateSampleDeployScriptLocation)" />
+    </ItemGroup>
+
+    <!--Force evaluation of the $(GenerateSampleDeployScriptLocation)-->
+    <CreateProperty Value="$(GenerateSampleDeployScriptLocation)">
+      <Output TaskParameter="Value" PropertyName="_GenerateSampleDeployScriptLocation"/>
+    </CreateProperty>
+
+    <!--Generate localized readme.txt for this batch file-->
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_SampleScriptHelpPrerequisites"
+      ArgumentCount="3"
+      Arguments="$(_MSdeployFwdLink);$(GenerateSampleDeployScriptSourceFileName);$(GenerateSampleParametersValueFileName)">
+      <Output TaskParameter="Result" ItemName="_PublishLocalizedString_SampleScriptHelpString" />
+    </GetPublishingLocalizedString>
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_SampleScriptHelpSection1"
+      ArgumentCount="1"
+      Arguments="$([System.IO.Path]::GetFileName($(_GenerateSampleDeployScriptLocation)))">
+      <Output TaskParameter="Result" ItemName="_PublishLocalizedString_SampleScriptHelpString" />
+    </GetPublishingLocalizedString>
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_SampleScriptHelpRequired">
+      <Output TaskParameter="Result" ItemName="_PublishLocalizedString_SampleScriptHelpString" />
+    </GetPublishingLocalizedString>
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_SampleScriptHelpRequiredExplainedFlagT">
+      <Output TaskParameter="Result" ItemName="_PublishLocalizedString_SampleScriptHelpString" />
+    </GetPublishingLocalizedString>
+    <GetPublishingLocalizedString
+    ID="PublishLocalizedString_SampleScriptHelpRequiredExplainedFlagY">
+      <Output TaskParameter="Result" ItemName="_PublishLocalizedString_SampleScriptHelpString" />
+    </GetPublishingLocalizedString>
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_SampleScriptHelpOptional">
+      <Output TaskParameter="Result" ItemName="_PublishLocalizedString_SampleScriptHelpString" />
+    </GetPublishingLocalizedString>
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_SampleScriptHelpOptionalExplainedFlagM">
+      <Output TaskParameter="Result" ItemName="_PublishLocalizedString_SampleScriptHelpString" />
+    </GetPublishingLocalizedString>
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_SampleScriptHelpOptionalExplainedFlagUP">
+      <Output TaskParameter="Result" ItemName="_PublishLocalizedString_SampleScriptHelpString" />
+    </GetPublishingLocalizedString>
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_SampleScriptHelpOptionalExplainedFlagG">
+      <Output TaskParameter="Result" ItemName="_PublishLocalizedString_SampleScriptHelpString" />
+    </GetPublishingLocalizedString>
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_SampleScriptHelpOptionalExplainedFlagA">
+      <Output TaskParameter="Result" ItemName="_PublishLocalizedString_SampleScriptHelpString" />
+    </GetPublishingLocalizedString>
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_SampleScriptHelpOptionalExplainedFlagL">
+      <Output TaskParameter="Result" ItemName="_PublishLocalizedString_SampleScriptHelpString" />
+    </GetPublishingLocalizedString>
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_SampleScriptHelpOptionalExplainedAdditionalFlags">
+      <Output TaskParameter="Result" ItemName="_PublishLocalizedString_SampleScriptHelpString" />
+    </GetPublishingLocalizedString>
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_SampleScriptHelpEnviroment">
+      <Output TaskParameter="Result" ItemName="_PublishLocalizedString_SampleScriptHelpString" />
+    </GetPublishingLocalizedString>
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_SampleScriptHelpEnviromentExplained"
+      ArgumentCount="1"
+      Arguments="$(GenerateSampleParametersValueFileName)">
+      <Output TaskParameter="Result" ItemName="_PublishLocalizedString_SampleScriptHelpString" />
+    </GetPublishingLocalizedString>
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_SampleScriptHelpMoreInfo"
+      ArgumentCount="1"
+      Arguments="$(_SampleDeployCmdFwdLink)">
+      <Output TaskParameter="Result" ItemName="_PublishLocalizedString_SampleScriptHelpString" />
+    </GetPublishingLocalizedString>
+
+    <WriteLinesToFile File="$(GenerateSampleDeployScriptReadMeLocation)"
+                      Overwrite="True"
+                       Encoding="utf-8"
+                       Lines="@(_PublishLocalizedString_SampleScriptHelpString,'')" />
+
+
+    <ItemGroup>
+      <FileWrites Include="$(GenerateSampleDeployScriptReadMeLocation)" />
+    </ItemGroup>
+
+
+    <!--Get Localized string before displaying message where we generate the batch file-->
+    <GetPublishingLocalizedString
+       Importance="High"
+       ID="PublishLocalizedString_FinishGenerateSampleMsDeployBatchScript"
+       ArgumentCount="2"
+       Arguments="$(GenerateSampleDeployScriptLocation);$(GenerateSampleParametersValueLocation)"
+       LogType="Message" />
+
+    <!--<Message Importance="high"
+         Text="Sample script for deploying this package is generated at the following location:
+$(GenerateSampleDeployScriptLocation)
+For this sample script, you can change the deploy parameters by changing the following file:
+$(GenerateSampleParametersValueLocation)" />-->
+
+  </Target>
+
+
+  <!--ImportAfter Extension-->
+  <PropertyGroup>
+    <ImportByWildcardAfterMicrosoftWebPublishingMSDeployCommonTargets Condition="'$(ImportByWildcardAfterMicrosoftWebPublishingMSDeployCommonTargets)'==''">true</ImportByWildcardAfterMicrosoftWebPublishingMSDeployCommonTargets>
+  </PropertyGroup>
+  <Import Project="$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportAfter\*" Condition="'$(ImportByWildcardAfterMicrosoftWebPublishingMSDeployCommonTargets)' == 'true' and exists('$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportAfter')"/>
+
+</Project>

BIN
servicestack/lib/VisualStudio.MsBuild.11.0/Web/Microsoft.Web.Publishing.Tasks.dll


+ 4678 - 0
servicestack/lib/VisualStudio.MsBuild.11.0/Web/Microsoft.Web.Publishing.targets

@@ -0,0 +1,4678 @@
+<!--
+***********************************************************************************************
+Microsoft.Web.Publishing.targets  
+
+WARNING:  DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
+          created a backup copy.  Incorrect changes to this file will make it
+          impossible to load or build your web deploy projects from the command-line or the IDE.
+
+This file defines the steps in the standard build process to deploy web application projects.
+
+Copyright (C) Microsoft Corporation. All rights reserved.
+***********************************************************************************************
+-->
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <UsingTask TaskName="GetProjectProperties" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="TransformXml" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="ParameterizeTransformXml" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="MSDeploy" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="VSMSDeploy" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="CopyPipelineFiles"  AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="GetPipelineDestinationFileNameMatch"  AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="EscapeTextForRegularExpressions" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="RemoveTrailingSlash" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="ConcatFullServiceUrlWithSiteName" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="IsCleanMSDeployPackageNeeded" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="CheckPathAttributes" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="CheckItemsCount" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="CheckItemsForDuplication" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="CreateProviderList" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="CreateDacPac" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="GatherLinkExtensionsToBeExposedInVS" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="MapUriToIisWebServer" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="ImportParametersFile" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="ExportParametersFile" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="SortParametrsByPriority" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="RemoveEmptyDirectories" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="FilterByItems" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="ExportManifestFile" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="GetDeployManagedRuntimeVersion" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="NormalizeServiceUrl" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="SqlScriptPreprocessSqlVariables" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="GetPublishingLocalizedString" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="CollectFilesinFolder" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="GetLocalMachineRegistrySubKeyNames" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="EscapeXMLString" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="DetectRemoteProvider" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="CheckRemoteFx45" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="PublishToolsVersionCheck" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll"/>
+
+  <!-- The build process can be extended in a similar way as MS.Common.targets -->
+  <PropertyGroup>
+    <ImportByWildcardBeforeMicrosoftWebPublishingTargets Condition="'$(ImportByWildcardBeforeMicrosoftWebPublishingTargets)'==''">true</ImportByWildcardBeforeMicrosoftWebPublishingTargets>
+  </PropertyGroup>
+  <Import Project="$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportBefore\*" Condition="'$(ImportByWildcardBeforeMicrosoftWebPublishingTargets)' == 'true' and exists('$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportBefore')"/>
+
+  <!--***************************************************************-->
+  <!-- Web Publish Pipeline Version/Supports
+       _WPPVersion: Version Stamp 
+       _WPPSupports: Function support list-->
+  <!--***************************************************************-->
+  <PropertyGroup>
+    <_WPPVersion>2.0</_WPPVersion>
+    <_WPPSupports>IISExpress;AspNetCompileMerge</_WPPSupports>
+    <_WPPWebPublishMethodSupports>WebMSDeployPublish;WebPackagePublish</_WPPWebPublishMethodSupports>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <_WPPSupports Include="$(_WPPSupports)" />
+  </ItemGroup>
+
+
+  <!--Generic mapping for the IISExpress Application Pools to IIS Application Pools common names-->
+  <ItemGroup>
+    <_IISApplicationPool Include="Clr4IntegratedAppPool">
+      <DestinationIISApplicationPool>ASP.NET v4.0</DestinationIISApplicationPool>
+    </_IISApplicationPool>
+    <_IISApplicationPool Include="Clr4ClassicAppPool">
+      <DestinationIISApplicationPool>ASP.NET v4.0 Classic</DestinationIISApplicationPool>
+    </_IISApplicationPool>
+    <_IISApplicationPool Include="Clr2IntegratedAppPool">
+      <DestinationIISApplicationPool>DefaultAppPool</DestinationIISApplicationPool>
+    </_IISApplicationPool>
+    <_IISApplicationPool Include="Clr2ClassicAppPool">
+      <DestinationIISApplicationPool>Classic .NET AppPool</DestinationIISApplicationPool>
+    </_IISApplicationPool>
+  </ItemGroup>
+  
+  
+  
+  <!--***************************************************************-->
+  <!-- Setting up properties which MS.Common.targets would normally setup -->
+  <!--***************************************************************-->
+  <PropertyGroup Condition="'$(BaseIntermediateOutputPath)'=='' ">
+    <BaseIntermediateOutputPath >obj\</BaseIntermediateOutputPath>
+    <BaseIntermediateOutputPath Condition="!HasTrailingSlash('$(BaseIntermediateOutputPath)')">$(BaseIntermediateOutputPath)\</BaseIntermediateOutputPath>
+  </PropertyGroup>
+
+  <PropertyGroup Condition=" '$(IntermediateOutputPath)' == '' ">
+    <IntermediateOutputPath Condition=" '$(PlatformName)' == 'AnyCPU' Or '$(PlatformName)' == ''">$(BaseIntermediateOutputPath)$(Configuration)\</IntermediateOutputPath>
+    <IntermediateOutputPath Condition=" '$(IntermediateOutputPath)' == '' ">$(BaseIntermediateOutputPath)$(PlatformName)\$(Configuration)\</IntermediateOutputPath>
+    <IntermediateOutputPath Condition="!HasTrailingSlash('$(IntermediateOutputPath)')">$(IntermediateOutputPath)\</IntermediateOutputPath>
+  </PropertyGroup>
+
+  <!--***************************************************************-->
+  <!-- Global settings for Web publish pipeline -->
+  <!--***************************************************************-->
+  <PropertyGroup>
+    <WebPublishPipelineProjectDirectory Condition="'$(WebPublishPipelineProjectDirectory)'==''">$(MSBuildProjectDirectory)</WebPublishPipelineProjectDirectory>
+    <WebPublishPipelineSourceRootDirectory Condition="'$(WebPublishPipelineSourceRootDirectory)'==''">$(WebPublishPipelineProjectDirectory)</WebPublishPipelineSourceRootDirectory>
+    <WebPublishPipelineTransformRootDirectory Condition="'$(WebPublishPipelineTransformRootDirectory)'==''"></WebPublishPipelineTransformRootDirectory>
+    <WebPublishPipelineProjectName Condition="'$(WebPublishPipelineProjectName)'==''">$(MSBuildProjectName)</WebPublishPipelineProjectName>
+    <WebPublishPipelineProjectFile Condition="'$(WebPublishPipelineProjectFile)'==''">$(MSBuildProjectFile)</WebPublishPipelineProjectFile>
+    <WebPublishPipeLineProjectFullPath Condition="'$(WebPublishPipelineProjectFullPath)'==''">$([System.IO.Path]::GetFullPath($([System.IO.Path]::Combine($(WebPublishPipelineProjectDirectory), $(WebPublishPipelineProjectFile)))))</WebPublishPipeLineProjectFullPath>
+    <IsDesktopBuild Condition="'$(IsDesktopBuild)'=='' And '$(TeamFoundationServerUrl)' != ''">False</IsDesktopBuild>
+    <WebPublishPipelineWAPProjectSettings Condition="'$(WebPublishPipelineWAPProjectSettings)' ==''">$(WebPublishPipeLineProjectFullPath)</WebPublishPipelineWAPProjectSettings>
+    <_WPPDefaultIntermediateOutputPathPathRoot Condition="'$(WebPublishPipelineProjectDirectory)' != '$(MSBuildProjectDirectory)'">$(MSBuildProjectDirectory)\</_WPPDefaultIntermediateOutputPathPathRoot>
+    <VerifyDatabaseSettingWithImport Condition="'$(VerifyDatabaseSettingWithImport)' == '' And '$(IgnoreDatabaseSettingOutOfSync)' == 'true'">False</VerifyDatabaseSettingWithImport>
+    <VerifyDatabaseSettingWithImport Condition="'$(VerifyDatabaseSettingWithImport)' == '' ">True</VerifyDatabaseSettingWithImport>
+    <_LocalDBVersionToUseForSqlExpress Condition="'$(_LocalDBVersionToUseForSqlExpress)' == ''">11.0</_LocalDBVersionToUseForSqlExpress>
+    <_PublishProfileSet>False</_PublishProfileSet>
+    <EnableWebPublishProfileFile>True</EnableWebPublishProfileFile>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(_WPPDefaultIntermediateOutputPath)' == ''">
+    <_WPPDefaultIntermediateOutputPath>$(IntermediateOutputPath)</_WPPDefaultIntermediateOutputPath>
+    <_WPPDefaultIntermediateOutputPath Condition="'$([System.IO.Path]::IsPathRooted($(IntermediateOutputPath)))' == 'False'">$(_WPPDefaultIntermediateOutputPathPathRoot)$(IntermediateOutputPath)</_WPPDefaultIntermediateOutputPath>
+    <_WPPDefaultIntermediateOutputFullPath>$([System.IO.Path]::GetFullPath($(_WPPDefaultIntermediateOutputPath)))</_WPPDefaultIntermediateOutputFullPath>
+  </PropertyGroup>
+
+  <!--***************************************************************
+  	If a publish profile is specified setup the properties to import the file
+  ***************************************************************-->
+  <PropertyGroup Condition="'$(PublishProfile)' != ''">
+    <_PublishProfileExtension>$([System.IO.Path]::GetExtension($(PublishProfile)))</_PublishProfileExtension>
+    <_PublishProfileDirectory>$([System.IO.Path]::GetDirectoryName($(PublishProfile)))</_PublishProfileDirectory>
+    <_PublishProfileName>$([System.IO.Path]::GetFileNameWithoutExtension($(PublishProfile)))</_PublishProfileName>
+    <_PublishProfileSet>True</_PublishProfileSet>
+    <DeployDefaultTarget Condition="'$(DeployDefaultTarget)'==''">WebPublish</DeployDefaultTarget>
+  </PropertyGroup>
+
+  <PropertyGroup>
+    <PublishProfileRootFolder Condition="'$(PublishProfileRootFolder)' == '' and '$(AppDesignerFolder)'!='' ">$(WebPublishPipelineProjectDirectory)\$(AppDesignerFolder)\PublishProfiles</PublishProfileRootFolder>
+    <PublishProfileRootFolder Condition="'$(PublishProfileRootFolder)' == '' and '$(MSBuildProjectExtension)' =='.vbproj' ">$(WebPublishPipelineProjectDirectory)\My Project\PublishProfiles</PublishProfileRootFolder>
+    <PublishProfileRootFolder Condition="'$(PublishProfileRootFolder)' == '' and '$(MSBuildProjectExtension)' =='.csproj' ">$(WebPublishPipelineProjectDirectory)\Properties\PublishProfiles</PublishProfileRootFolder>
+    <PublishProfileRootFolder Condition="'$(PublishProfileRootFolder)' == ''">$(WebPublishPipelineProjectDirectory)\__profiles</PublishProfileRootFolder>
+  </PropertyGroup>
+  
+  <PropertyGroup Condition="'$(_PublishProfileExtension)' == '' And '$(_PublishProfileDirectory)' == ''">
+    <PublishProfileName Condition="'$(PublishProfileName)' == '' ">$(_PublishProfileName)</PublishProfileName>
+  </PropertyGroup>
+
+  <PropertyGroup Condition="'$(PublishProfileName)' !='' And '$(WebPublishProfileFile)'==''">
+    <WebPublishProfileFile>$(PublishProfileRootFolder)\$(PublishProfileName).pubxml</WebPublishProfileFile>
+    <WebPublishProfileFile Condition="'$(_WebProjectType)' == 'WebSite'">$(WebPublishPipelineProjectDirectory)\App_Data\PublishProfiles\$(PublishProfileName).pubxml</WebPublishProfileFile>
+  </PropertyGroup>
+
+  <PropertyGroup Condition="$(_PublishProfileSet) And '$(PublishProfileName)' =='' And '$(WebPublishProfileFile)'==''">
+    <WebPublishProfileFile Condition="'$([System.IO.Path]::IsPathRooted($(PublishProfile)))' == 'True'">$(PublishProfile)</WebPublishProfileFile>
+    <WebPublishProfileFile Condition="'$([System.IO.Path]::IsPathRooted($(PublishProfile)))' == 'False' And '$([System.IO.File]::Exists($(WebPublishPipelineProjectDirectory)\$(PublishProfile)))'">$(WebPublishPipelineProjectDirectory)\$(PublishProfile)</WebPublishProfileFile>
+    <WebPublishProfileFile Condition="'$(WebPublishProfileFile)'==''">$(PublishProfileRootFolder)\$(PublishProfile)</WebPublishProfileFile>
+  </PropertyGroup>
+
+  <PropertyGroup Condition="'$(PublishProfileName)' == '' And '$(WebPublishProfileFile)' !=''">
+    <PublishProfileName>$([System.IO.Path]::GetFileNameWithoutExtension($(WebPublishProfileFile)))</PublishProfileName>
+    <_PublishProfileName>$(PublishProfileName)</_PublishProfileName>
+  </PropertyGroup>
+
+  <PropertyGroup>
+    <_WebPublishProfileFileWillBeImported>false</_WebPublishProfileFileWillBeImported>
+    <_WebPublishProfileFileWillBeImported Condition="'$(EnableWebPublishProfileFile)'=='true' And '$(WebPublishProfileFile)' != '' And Exists($(WebPublishProfileFile))">true</_WebPublishProfileFileWillBeImported>
+  </PropertyGroup>
+
+  <Import Project="$(WebPublishProfileFile)" Condition="'$(_WebPublishProfileFileWillBeImported)'=='true'"/>
+
+  <PropertyGroup Condition="'$(_WebPublishProfileFileWillBeImported)'=='true'">
+    <WebPublishProfileCustomizeTargetFile Condition="'$(WebPublishProfileCustomizeTargetFile)'==''">$([System.IO.Path]::ChangeExtension($(WebPublishProfileFile), '.wpp.targets'))</WebPublishProfileCustomizeTargetFile>
+    <WebPublishProfileParametersXMLFile Condition="'$(WebPublishProfileParametersXMLFile)'==''">$([System.IO.Path]::ChangeExtension($(WebPublishProfileFile), '.parameters.xml'))</WebPublishProfileParametersXMLFile>
+  </PropertyGroup>
+
+  <Import Project="$(WebPublishProfileCustomizeTargetFile)" Condition="'$(WebPublishProfileCustomizeTargetFile)' != '' And Exists($(WebPublishProfileCustomizeTargetFile)) " />
+
+  <!--***************************************************************-->
+  <!-- If there is a file named $(WebPublishPipelineProjectName).wpp.targets it will automatically be imported. -->
+  <!-- This allows users to extend the build/publish process for the project -->
+  <!--***************************************************************-->
+  <PropertyGroup>
+    <WebPublishPipelineCustomizeTargetFile Condition="'$(WebPublishPipelineCustomizeTargetFile)'==''">$(WebPublishPipelineProjectDirectory)\*.wpp.targets</WebPublishPipelineCustomizeTargetFile>
+    <WebPublishPipelineSolutionTargetFile Condition="'$(WebPublishPipelineSolutionTargetFile)'==''">$(WebPublishPipelineProjectDirectory)\..\wpp.deploysettings.targets</WebPublishPipelineSolutionTargetFile>
+  </PropertyGroup>
+  <Import Project="$(WebPublishPipelineCustomizeTargetFile)" Condition="'$(WebPublishPipelineCustomizeTargetFile)' != ''"/>
+  <Import Project="$(WebPublishPipelineSolutionTargetFile)" Condition="'$(WebPublishPipelineSolutionTargetFile)' != '' And Exists($(WebPublishPipelineSolutionTargetFile))"/>
+
+  <!--***************************************************************-->
+  <!--Globals settings for the Clean target -->
+  <!--***************************************************************-->
+  <PropertyGroup>
+    <_WPPCleanTargets>
+      $(_WPPCleanTargets);
+      CleanWebsitesPackage;
+      CleanWebsitesWPPAllFilesInSingleFolder;
+      CleanWebPublishPipelineIntermediateOutput;
+    </_WPPCleanTargets>
+    <CleanDependsOn>
+      $(CleanDependsOn);
+      $(_WPPCleanTargets);
+    </CleanDependsOn>
+  </PropertyGroup>
+
+  <!-- Global settings for file collection -->
+  <PropertyGroup Condition="'$(WebPublishPipelineProjectDirectory)' == '$(MSBuildProjectDirectory)'">
+    <FilesToIncludeForPublish Condition="'$(FilesToIncludeForPublish)'==''">OnlyFilesToRunTheApp</FilesToIncludeForPublish>
+    <AlternativeProjectDirectory></AlternativeProjectDirectory>
+  </PropertyGroup>
+
+  <PropertyGroup Condition="'$(WebPublishPipelineProjectDirectory)' != '$(MSBuildProjectDirectory)'">
+    <FilesToIncludeForPublish Condition="'$(FilesToIncludeForPublish)'==''">AllFilesInProjectFolder</FilesToIncludeForPublish>
+    <AlternativeProjectDirectory>$(WebPublishPipelineProjectDirectory)</AlternativeProjectDirectory>
+    <AlternativeProjectDirectory Condition="!HasTrailingSlash('$(AlternativeProjectDirectory)')">$(AlternativeProjectDirectory)</AlternativeProjectDirectory>
+  </PropertyGroup>
+
+  <PropertyGroup>
+    <!-- For website project we will always exclude debug symbols from publishing. This can be overridden in the .pubxml file. -->
+    <ExcludeGeneratedDebugSymbol Condition="'$(ExcludeGeneratedDebugSymbol)'=='' And '$(_WebProjectType)' == 'WebSite'">True</ExcludeGeneratedDebugSymbol>
+    
+    <ExcludeGeneratedDebugSymbol Condition="'$(ExcludeGeneratedDebugSymbol)'=='' And '$(Configuration)' == 'Release'">True</ExcludeGeneratedDebugSymbol>
+    <ExcludeGeneratedDebugSymbol Condition="'$(ExcludeGeneratedDebugSymbol)'==''">False</ExcludeGeneratedDebugSymbol>
+
+    <!-- This will control whether XML files from ResolveAssemblyReference is published, default is true (to exclude) -->
+    <ExcludeXmlAssemblyFiles Condition=" '$(ExcludeXmlAssemblyFiles)'=='' ">true</ExcludeXmlAssemblyFiles>
+    
+    <ExcludeApp_Data Condition="'$(ExcludeApp_Data)'==''">False</ExcludeApp_Data>
+    <SkipApp_DataFolder Condition="'$(SkipApp_DataFolder)'==''">$(ExcludeApp_Data)</SkipApp_DataFolder>
+    <UseMsdeployExe Condition="'$(UseMsdeployExe)'==''">False</UseMsdeployExe>
+
+    <!-- Determines if Linked files should be collected during the PipelineCollectFilesPhase -->
+    <EnableCollectLinkFilesInProject Condition="'$(EnableCollectLinkFilesInProject)'==''">True</EnableCollectLinkFilesInProject>
+    <ExcludeLinkFilesInProject Condition="'$(ExcludeLinkFilesInProject)'==''">False</ExcludeLinkFilesInProject>
+
+    <!-- If $(CleanWPPAllFilesInSingleFolder) is explicit set, we should set $(_CleanWPPIfNeedTo) accordingly -->
+    <_CleanWPPIfNeedTo Condition="'$(_CleanWPPIfNeedTo)' == '' And '$(CleanWPPAllFilesInSingleFolder)'!=''">$(CleanWPPAllFilesInSingleFolder)</_CleanWPPIfNeedTo>
+    <CleanWPPAllFilesInSingleFolder Condition="'$(CleanWPPAllFilesInSingleFolder)'==''">False</CleanWPPAllFilesInSingleFolder>
+    
+    <IncludeIisSettings Condition="'$(IncludeIisSettings)'==''">False</IncludeIisSettings>
+    <!-- Determines if the files in @(ExcludeFilesFromPackage) will be excluded -->
+    <ExcludeFilesFromPackage Condition="'$(ExcludeFilesFromPackage)'==''">True</ExcludeFilesFromPackage>
+    <!-- Determines if the parameters.xml file will be merged into @(ParametersXMLFiles) -->
+    <ImportParametersFiles  Condition="'$(ImportParametersFiles)'==''">True</ImportParametersFiles>
+    <ImportParametersFile_DisableEscapeMSBuildVariable Condition="'$(ImportParametersFile_DisableEscapeMSBuildVariable)' == ''" >False</ImportParametersFile_DisableEscapeMSBuildVariable>
+    <ImportProjectParametersFiles Condition="'$(ImportProjectParametersFiles)'==''">True</ImportProjectParametersFiles>
+    <ImportProfileParametersFiles Condition="'$(ImportProfileParametersFiles)'==''">True</ImportProfileParametersFiles>
+    <ImportPublishingParameterValues  Condition="'$(ImportPublishingParameterValues)'==''">True</ImportPublishingParameterValues>
+    <EnableOptimisticParameterDefaultValue Condition="'$(EnableOptimisticParameterDefaultValue)'==''">True</EnableOptimisticParameterDefaultValue>
+    <ParameterApplicationPool Condition="'$(ParameterApplicationPool)'==''">True</ParameterApplicationPool>
+    <IIS6ParameterApplicationPool Condition="'$(IIS6ParameterApplicationPool)'==''">False</IIS6ParameterApplicationPool>
+    <!-- This allows disabling the generation of the MSDeploy parameters -->
+    <DisableAllVSGeneratedMSDeployParameter Condition="'$(DisableAllVSGeneratedMSDeployParameter)'==''">False</DisableAllVSGeneratedMSDeployParameter>
+    <!-- Setting this to false will disable the $(name) tokenization of connection strings in web.config when a package is created -->
+    <AutoParameterizationWebConfigConnectionStrings  Condition="'$(AutoParameterizationWebConfigConnectionStrings)'==''">True</AutoParameterizationWebConfigConnectionStrings>
+    <AutoParameterizationWebConfigCSNoDefaultValue  Condition="'$(AutoParameterizationWebConfigCSNoDefaultValue)'==''">False</AutoParameterizationWebConfigCSNoDefaultValue>
+    <AutoParameterizationWebConfigConnectionStringsIntermediateOutput Condition="'$(AutoParameterizationWebConfigConnectionStringsIntermediateOutput)'==''">CSAutoParameterize</AutoParameterizationWebConfigConnectionStringsIntermediateOutput>
+    <AutoParameterizationWebConfigConnectionStringsLocation Condition="'$(AutoParameterizationWebConfigConnectionStringsLocation)'==''">$(_WPPDefaultIntermediateOutputPath)$(AutoParameterizationWebConfigConnectionStringsIntermediateOutput)</AutoParameterizationWebConfigConnectionStringsLocation>
+
+    <_WPPLastBuildInfoIntermediateOutput Condition="'$(_WPPLastBuildInfoIntermediateOutput)'==''">_WPPLastBuildInfo.txt</_WPPLastBuildInfoIntermediateOutput>
+    <_WPPLastBuildInfoLocation Condition="'$(_WPPLastBuildInfoLocation)'==''">$(_WPPDefaultIntermediateOutputPath)$(_WPPLastBuildInfoIntermediateOutput)</_WPPLastBuildInfoLocation>
+
+    <InsertAdditionalWebCofigConnectionStrings Condition="'$(InsertAdditionalWebCofigConnectionStrings)' == ''">True</InsertAdditionalWebCofigConnectionStrings>
+    <InsertAdditionalWebCofigConnectionStringsIntermediateOutput Condition="'$(InsertAdditionalWebCofigConnectionStringsIntermediateOutput)'==''">InsertAdditionalCS</InsertAdditionalWebCofigConnectionStringsIntermediateOutput>
+    <InsertAdditionalWebCofigConnectionStringsLocation Condition="'$(InsertAdditionalWebCofigConnectionStringsLocation)'==''">$(_WPPDefaultIntermediateOutputPath)$(InsertAdditionalWebCofigConnectionStringsIntermediateOutput)</InsertAdditionalWebCofigConnectionStringsLocation>
+    <InsertAdditionalWebConfigConnectionStringProviderName Condition="'$(InsertAdditionalWebConfigConnectionStringProviderName)'==''">System.Data.SqlClient</InsertAdditionalWebConfigConnectionStringProviderName>
+    <InsertAdditionalWebConfigConnectionStringOnlyInRoot Condition="'$(InsertAdditionalWebConfigConnectionStringOnlyInRoot)'==''">True</InsertAdditionalWebConfigConnectionStringOnlyInRoot>
+
+    <!-- For added .sql files this property determines if the script will be contained in a transaction. -->
+    <SqlScriptSourceTransacted Condition="'$(SqlScriptSourceTransacted)'==''"></SqlScriptSourceTransacted>
+    <!-- For the automatically generated SQL script for legacy SQL publishing this determines if the generated script will be
+    transactional or not. -->
+    <AutoSqlScriptSourceTransacted Condition="'$(AutoSqlScriptSourceTransacted)'==''"></AutoSqlScriptSourceTransacted>
+
+    <DatabaseDeployIntermediateRelativePath Condition="'$(DatabaseDeployIntermediateRelativePath)'==''">Database</DatabaseDeployIntermediateRelativePath>
+    <DatabaseDeployIntermediateOutputPath Condition="'$(DatabaseDeployIntermediateOutputPath)'==''">$(_WPPDefaultIntermediateOutputPath)$(DatabaseDeployIntermediateRelativePath)</DatabaseDeployIntermediateOutputPath>
+    <_WebConfigsToAutoParmeterizeCsTransformOutputParametersFile>$(AutoParameterizationWebConfigConnectionStringsLocation).parameters.xml</_WebConfigsToAutoParmeterizeCsTransformOutputParametersFile>
+    
+    <!-- This is for backw compat that /p:DeployOnBuild=true without publish profile, it will fall back to package -->
+    <DeployDefaultTarget Condition="'$(DeployDefaultTarget)'==''">Package</DeployDefaultTarget>
+    <DeployTarget Condition="'$(DeployTarget)'==''">$(DeployDefaultTarget)</DeployTarget>
+    <RetryAttemptsForDeployment Condition="'$(RetryAttemptsForDeployment)'==''">2</RetryAttemptsForDeployment>
+    <DeployOnBuildDefault>False</DeployOnBuildDefault>
+    <DeployOnBuild Condition="'$(DeployOnBuild)'==''">$(DeployOnBuildDefault)</DeployOnBuild>
+    <EnableMSDeployBackup Condition=" '$(EnableMSDeployBackup)'=='' ">false</EnableMSDeployBackup>
+
+  </PropertyGroup>
+
+  <!-- Special flag for WAP to enable _CopyWebApplication to use Web Publishing Pipeline -->
+  <PropertyGroup>
+    <UseWPP_CopyWebApplication Condition="'$(UseWPP_CopyWebApplication)'==''">False</UseWPP_CopyWebApplication>
+  </PropertyGroup>
+  
+  <PropertyGroup>
+    <!-- Determines if the publish process will take a dependency on Build -->
+    <PipelineDependsOnBuild Condition="'$(PipelineDependsOnBuild)'=='' AND '$(BuildingInsideVisualStudio)' != 'true'">True</PipelineDependsOnBuild>
+    <PipelineDependsOnBuild Condition="'$(PipelineDependsOnBuild)'==''">False</PipelineDependsOnBuild>
+
+    <_DeployOnBuild>$(DeployOnBuild)</_DeployOnBuild>
+    <!-- When building in VS the publish process is handled directly in VS-->
+    <_DeployOnBuild Condition="'$(BuildingInsideVisualStudio)' == 'true'">False</_DeployOnBuild>
+
+    <!-- If _DeployOnBuild is true we should ensure that it executes after PrepareForRun -->
+     <PipelineDeployPhaseAfterTargets Condition="'$(PipelineDeployPhaseAfterTargets)' == '' And $(_DeployOnBuild) ">
+      PrepareForRun;
+    </PipelineDeployPhaseAfterTargets>    
+
+    <!-- We use the following property to detect BuildCircularDependency that we might introduce in the msbuild due to 
+    $(UseWPP_CopyWebApplication) and $(PipelineDependsOnBuild) both set to true.
+    Instead of letting msbuild failed error early with no message, we can capture it and provide a better error. -->
+    <WPPCopyWebApplicaitonPipelineCircularDependencyError>False</WPPCopyWebApplicaitonPipelineCircularDependencyError>
+    <WPPCopyWebApplicaitonPipelineCircularDependencyError Condition="$(UseWPP_CopyWebApplication) And !$(Disable_CopyWebApplication)  And $(PipelineDependsOnBuild) And !$(_DeployOnBuild)">True</WPPCopyWebApplicaitonPipelineCircularDependencyError>
+    <PipelineDependsOnBuild Condition="$(WPPCopyWebApplicaitonPipelineCircularDependencyError)">False</PipelineDependsOnBuild>
+
+    <!-- Setup the minimum set of targets required -->
+    <PipelineDependsOn>
+      $(PipelineDependsOn);
+      BeforeBuild;
+      BuildOnlySettings;
+      ResolveReferences;
+      PrepareResourceNames;
+      ComputeIntermediateSatelliteAssemblies;
+      GetCopyToOutputDirectoryItems;
+      _SGenCheckForOutputs;
+    </PipelineDependsOn>
+
+    <PipelineDependsOn Condition="$(PipelineDependsOnBuild) And !$(_DeployOnBuild)">
+      $(PipelineDependsOn);
+      Build;
+    </PipelineDependsOn>
+  
+    <PipelineDependsOn Condition="!$(PipelineDependsOnBuild) And !$(_DeployOnBuild)" >
+      $(PipelineDependsOn);
+      AfterBuild;
+    </PipelineDependsOn>
+  </PropertyGroup>
+
+  <!--***************************************************************-->
+  <!-- Settings relating to the web.config transform -->
+  <!--***************************************************************-->
+  <PropertyGroup>
+    <ProjectConfigFileName Condition="'$(ProjectConfigFileName)'==''">Web.config</ProjectConfigFileName>
+    <_ProjectConfigFileExtension>$([System.IO.Path]::GetExtension($(ProjectConfigFileName)))</_ProjectConfigFileExtension>
+    <_ProjectConfigFilePrefix>$([System.IO.Path]::GetFileNameWithoutExtension($(ProjectConfigFileName)))</_ProjectConfigFilePrefix>
+  </PropertyGroup>
+  <PropertyGroup>
+    <ProjectConfigTransformFileName Condition="'$(ProjectConfigTransformFileName)'==''">$(_ProjectConfigFilePrefix).$(Configuration)$(_ProjectConfigFileExtension)</ProjectConfigTransformFileName>
+    <TransformWebConfigEnabled Condition="'$(TransformWebConfigEnabled)'==''">true</TransformWebConfigEnabled>
+    <TransformWebConfigStackTraceEnabled Condition="'$(TransformWebConfigStackTraceEnabled)'==''">False</TransformWebConfigStackTraceEnabled>
+    <UseParameterizeToTransformWebConfig Condition="'$(UseParameterizeToTransformWebConfig)'==''">False</UseParameterizeToTransformWebConfig>
+    <TransformWebConfigIntermediateOutput Condition="'$(TransformWebConfigIntermediateOutput)'==''">TransformWebConfig</TransformWebConfigIntermediateOutput>
+    <TransformWebConfigIntermediateLocation Condition="'$(TransformWebConfigIntermediateLocation)'==''">$(_WPPDefaultIntermediateOutputPath)$(TransformWebConfigIntermediateOutput)</TransformWebConfigIntermediateLocation>
+    <_WebConfigTransformOutputParametersFile>$(TransformWebConfigIntermediateLocation).parameters.xml</_WebConfigTransformOutputParametersFile>
+
+    <ProjectProfileTransformFileName Condition="'$(ProjectProfileTransformFileName)'=='' And '$(PublishProfileName)' != '' ">$(_ProjectConfigFilePrefix).$(PublishProfileName)$(_ProjectConfigFileExtension)</ProjectProfileTransformFileName>
+
+    <!--if $(TransformWebConfigEnabled) is also enabled and the ConfigTransform and ProfileTransform happen to have same filename, we default $(ProfilefileTransformWebCofnigEnabled) to false so it doesn't do double transform-->
+    <ProfileTransformWebConfigEnabled Condition="'$(ProfileTransformWebConfigEnabled)'=='' And '$(TransformWebConfigEnabled)' == 'true' And ('$(ProjectProfileTransformFileName)' == '$(ProjectConfigTransformFileName)')">False</ProfileTransformWebConfigEnabled>
+    <ProfileTransformWebConfigEnabled Condition="'$(ProfileTransformWebConfigEnabled)'==''">true</ProfileTransformWebConfigEnabled>
+    <ProfileTransformWebConfigStackTraceEnabled Condition="'$(ProfileTransformWebConfigStackTraceEnabled)'==''">False</ProfileTransformWebConfigStackTraceEnabled>
+    <UseParameterizeToProfileTransformWebConfig Condition="'$(UseParameterizeToProfileTransformWebConfig)'==''">False</UseParameterizeToProfileTransformWebConfig>
+    <ProfileTransformWebConfigIntermediateOutput Condition="'$(ProfileTransformWebConfigIntermediateOutput)'==''">ProfileTransformWebConfig</ProfileTransformWebConfigIntermediateOutput>
+    <ProfileTransformWebConfigIntermediateLocation Condition="'$(ProfileTransformWebConfigIntermediateLocation)'==''">$(_WPPDefaultIntermediateOutputPath)$(ProfileTransformWebConfigIntermediateOutput)</ProfileTransformWebConfigIntermediateLocation>
+    <_ProfileWebConfigTransformOutputParametersFile>$(ProfileTransformWebConfigIntermediateLocation).parameters.xml</_ProfileWebConfigTransformOutputParametersFile>
+    
+    <ParameterizeTransformXmlUseXPath Condition="'$(ParameterizeTransformXmlUseXPath)'==''">True</ParameterizeTransformXmlUseXPath>
+  </PropertyGroup>
+
+  <!--***************************************************************-->
+  <!-- Overwrite WAP default for _CopyWebApplication -->
+  <!--***************************************************************-->
+  <PropertyGroup>
+    <!-- Required in case the WAP project doesn't exist -->
+    <WebProjectOutputDirInsideProjectDefault>True</WebProjectOutputDirInsideProjectDefault>
+    <WebProjectOutputDirInsideProjectDefault  Condition="('$(OutDir)' != '$(OutputPath)') Or ('$(IsDesktopBuild)' == 'False')" >False</WebProjectOutputDirInsideProjectDefault>
+    <WebProjectOutputDirInsideProject Condition="'$(WebProjectOutputDirInsideProject)' == ''">$(WebProjectOutputDirInsideProjectDefault)</WebProjectOutputDirInsideProject>
+    <CleanWebProjectOutputDir>True</CleanWebProjectOutputDir>
+    <CleanWebProjectOutputDir Condition="$(WebProjectOutputDirInsideProject)" >False</CleanWebProjectOutputDir>
+  </PropertyGroup>
+
+  <!--***************************************************************-->
+  <!-- Global settings for where the web package will be created for Team Build -->
+  <!--***************************************************************-->
+  <PropertyGroup>
+    <!--We need the following in case WAP project does not exist-->
+    <DefaultPackageOutputDir Condition="'$(DefaultPackageOutputDir)'=='' And !$(WebProjectOutputDirInsideProject) ">$(OutDir)_PublishedWebsites\$(WebPublishPipelineProjectName)_Package</DefaultPackageOutputDir>
+    <DefaultPackageOutputDir Condition="'$(DefaultPackageOutputDir)'==''">$(_WPPDefaultIntermediateOutputPath)Package</DefaultPackageOutputDir>
+    <DefaultPackageFileName Condition="'$(DefaultPackageFileName)'==''">$(WebPublishPipelineProjectName).zip</DefaultPackageFileName>
+    <DefaultMSDeployDestinationSite Condition="'$(DefaultMSDeployDestinationSite)'==''">Default Web Site</DefaultMSDeployDestinationSite>
+    <DefaultMsDeployAltSuffix Condition="'$(DefaultMsDeployAltSuffix)'==''">_deploy</DefaultMsDeployAltSuffix>
+    <DefaultMSDeployDestinationApplicationName Condition="'$(DefaultMSDeployDestinationApplicationName)'==''">$(WebPublishPipelineProjectName)</DefaultMSDeployDestinationApplicationName>
+    <DefaultDeployIisAppPath Condition="'$(DefaultDeployIisAppPath)'==''">$(DefaultMSDeployDestinationSite)/$(DefaultMSDeployDestinationApplicationName)$(DefaultMsDeployAltSuffix)</DefaultDeployIisAppPath>
+    <DefaultDeployIisRootAppPath Condition="'$(DefaultDeployIisRootAppPath)'==''">$(DefaultMSDeployDestinationApplicationName)$(DefaultMsDeployAltSuffix)</DefaultDeployIisRootAppPath>
+  </PropertyGroup>
+
+  <!--***************************************************************-->
+  <!--Global setting for controling the package creation process -->
+  <!--***************************************************************-->
+  <PropertyGroup>
+    <PackageAsSingleFile Condition="'$(PackageAsSingleFile)'==''">True</PackageAsSingleFile>
+    <!-- DesktopBuildPackageLocation is been set by VS UI -->
+    <PackageLocation Condition="'$(PackageLocation)'=='' and !(('$(OutDir)' != '$(OutputPath)') Or ('$(IsDesktopBuild)' == 'False')) ">$(DesktopBuildPackageLocation)</PackageLocation>
+    <PackageFileName Condition="'$(PackageFileName)'=='' And $(PackageAsSingleFile) And '$(PackageLocation)' != ''">$(PackageLocation)</PackageFileName>
+    <PackageFileName Condition="'$(PackageFileName)'!='' And $(PackageAsSingleFile) And '$([System.IO.Path]::GetExtension($(PackageFileName)))' == '' ">$(PackageFileName)\$(DefaultPackageFileName)</PackageFileName>  
+    <PackageFileName Condition="'$(PackageFileName)'==''">$(DefaultPackageOutputDir)\$(DefaultPackageFileName)</PackageFileName>
+    <PackageArchiveRootDir Condition="'$(PackageArchiveRootDir)'=='' And !$(PackageAsSingleFile) And '$(PackageLocation)' != ''">$(PackageLocation)</PackageArchiveRootDir>
+    <PackageArchiveRootDir Condition="'$(PackageArchiveRootDir)'==''">$(DefaultPackageOutputDir)</PackageArchiveRootDir>
+    <PackageTempRootDir Condition="'$(PackageTempRootDir)'==''">$(_WPPDefaultIntermediateOutputPath)Package</PackageTempRootDir>
+    <!-- This will determine if the published content will be marked as an IIS application or simply a folder -->
+    <DeployAsIisApp Condition="'$(DeployAsIisApp)'==''">true</DeployAsIisApp>
+    <IncludeSetAclProviderOnDestination Condition="'$(IncludeSetAclProviderOnDestination)'==''">True</IncludeSetAclProviderOnDestination>
+    <MarkApp_DataWritableOnDestination Condition="'$(MarkApp_DataWritableOnDestination)'==''">True</MarkApp_DataWritableOnDestination>
+    <IgnoreDeployManagedRuntimeVersion Condition="'$(IgnoreDeployManagedRuntimeVersion)'==''">False</IgnoreDeployManagedRuntimeVersion>
+    <DeployDefaultTargetFrameworkVersion Condition="'$(DeployDefaultTargetFrameworkVersion)'==''">$(TargetFrameworkVersion)</DeployDefaultTargetFrameworkVersion>
+    <DeployManagedRuntimeVersion Condition="'$(DeployManagedRuntimeVersion)'==''"></DeployManagedRuntimeVersion>
+    <DeployEnable32bitAppOnWin64 Condition="'$(DeployEnable32bitAppOnWin64)'==''"></DeployEnable32bitAppOnWin64>
+    <DeployManagedPipelineMode Condition="'$(DeployManagedPipelineMode)'==''"></DeployManagedPipelineMode>    
+    <!-- Determines if the deploy.cmd file will be written out -->
+    <GenerateSampleDeployScript Condition="'$(GenerateSampleDeployScript)'==''">True</GenerateSampleDeployScript>
+    <PackageLogDir Condition="'$(PackageLogDir)'==''">$(DefaultPackageOutputDir)\Log</PackageLogDir>
+    <EnablePackageProcessLoggingAndAssert Condition="'$(EnablePackageProcessLoggingAndAssert)'==''">False</EnablePackageProcessLoggingAndAssert>
+    <!-- PackageTraceLevel 3 different levels:  Error, Warning, Info (From System.Diagnostic.TraceLevel, Default to Info) -->
+    <PackageTraceLevel Condition="'$(PackageTraceLevel)'==''">Info</PackageTraceLevel>
+    <_CreatePackage Condition="'$(_CreatePackage)'==''" >True</_CreatePackage>
+    <_UseDefaultLinkExtensionValue>False</_UseDefaultLinkExtensionValue>
+    <_UseDefaultLinkExtensionValue Condition="'$(PackageEnableLinks)'=='' and '$(PackageDisableLinks)'==''">True</_UseDefaultLinkExtensionValue>
+    <PackageEnableLinks Condition="$(_UseDefaultLinkExtensionValue)"></PackageEnableLinks>
+    <PackageDisableLinks Condition="$(_UseDefaultLinkExtensionValue)">AppPoolExtension;ContentExtension;CertificateExtension</PackageDisableLinks>
+    <PackageEnableLinks Condition="'$(IncludeAppPool)'=='true' and $(_UseDefaultLinkExtensionValue)">AppPoolExtension</PackageEnableLinks>
+    <PackageDisableLinks Condition="'$(IncludeAppPool)'=='true' and $(_UseDefaultLinkExtensionValue)">ContentExtension;CertificateExtension</PackageDisableLinks>
+    <ProjectParametersXMLFile Condition="'$(ProjectParametersXMLFile)'=='' And Exists('$(MSBuildProjectDirectory)\Parameters.xml')">$(MSBuildProjectDirectory)\Parameters.xml</ProjectParametersXMLFile>
+    <ProjectParametersXMLFile Condition="'$(ProjectParametersXMLFile)'==''">$(WebPublishPipelineProjectDirectory)\Parameters.xml</ProjectParametersXMLFile>
+    <EnableProjectDeployParameterPrefix Condition="'$(EnableProjectDeployParameterPrefix)'==''">False</EnableProjectDeployParameterPrefix>
+    <DeployParameterPrefix Condition="$(EnableProjectDeployParameterPrefix) and '$(DeployParameterPrefix)'==''">$(WebPublishPipelineProjectName) </DeployParameterPrefix>
+    <DeployParameterIISAppName Condition="'$(DeployParameterIISAppName)'==''">$(DeployParameterPrefix)IIS Web Application Name</DeployParameterIISAppName>
+    <DeployParameterIISAppPoolName Condition="'$(DeployParameterIISAppPoolName)'==''">$(DeployParameterPrefix)IIS Web Application Pool Name</DeployParameterIISAppPoolName>
+    <DeployParameterApp_DataWritePermission Condition="'$(DeployParameterApp_DataWritePermission)'==''">$(DeployParameterPrefix)Add write permission to App_Data Folder</DeployParameterApp_DataWritePermission>
+    <DeployParameterIISAppPhysicalPath Condition="'$(DeployParameterIISAppPhysicalPath)'==''">$(DeployParameterPrefix)Web Application Physical Path</DeployParameterIISAppPhysicalPath>
+    
+    <DeployParameterAutoDescriptionbyTags Condition="'$(DeployParameterAutoDescriptionbyTags)'==''">True</DeployParameterAutoDescriptionbyTags>
+    <DeployParameterIISAppNameDescription Condition="'$(DeployParameterIISAppNameDescription)'==''"></DeployParameterIISAppNameDescription>
+    <DeployParameterIISAppPoolNameDescription Condition="'$(DeployParameterIISAppPoolNameDescription)'==''"></DeployParameterIISAppPoolNameDescription>
+    <DeployParameterIISAppPhysicalPathDescription Condition="'$(DeployParameterIISAppPhysicalPathDescription)'==''"></DeployParameterIISAppPhysicalPathDescription>
+    <DeployParameterIISAppConnectionStringDescription Condition="'$(DeployParameterIISAppConnectionStringDescription)'==''"></DeployParameterIISAppConnectionStringDescription>
+    <DeployParameterSqlScriptVariablesDescription Condition="'$(DeployParameterSqlScriptVariablesDescription)'==''"></DeployParameterSqlScriptVariablesDescription>
+    
+    <MsDeployDatabaseTag Condition="'$(MsDeployDatabaseTag)'==''">SqlConnectionString</MsDeployDatabaseTag>
+    <MsDeploySqlCommandVariableKind Condition="'$(MsDeploySqlCommandVariableKind)'==''">SqlCommandVariable</MsDeploySqlCommandVariableKind>
+    
+    <!-- Properties relating to checking SQL scripts for commands which MSDeploy does not support -->
+    <MsdeploySqlUnsupportedCommand Condition="'$(MsdeploySqlUnsupportedCommand)'==''">:Connect;:!!;:Exit;:Help;:r;:Quit;</MsdeploySqlUnsupportedCommand>
+    <CheckSqlScriptForUnsupportedCommands Condition="'$(CheckSqlScriptForUnsupportedCommands)'==''">True</CheckSqlScriptForUnsupportedCommands>
+
+    <!-- The following attributes will be preserved from connection string in web.config to the dest connection string on publish -->
+    <UpdateFromConnectionStringAttributes Condition="'$(UpdateFromConnectionStringAttributes)' == ''">MultipleActiveResultSets;App;</UpdateFromConnectionStringAttributes>
+   
+    <!-- Determines if unsupported SQL commands should be treated an an error or warning -->
+    <TreadSqlScriptUnsupportedCommandsAsWarning Condition="'$(TreadSqlScriptUnsupportedCommandsAsWarning)'==''">False</TreadSqlScriptUnsupportedCommandsAsWarning>
+    <_PackageTempDir Condition ="'$(_PackageTempDir)' == '' ">$(PackageTempRootDir)\PackageTmp</_PackageTempDir>
+    <WPPAllFilesInSingleFolder Condition="'$(WPPAllFilesInSingleFolder)' == ''">$(_PackageTempDir)</WPPAllFilesInSingleFolder>
+    <IsWPPAllFilesInSingleFolder>False</IsWPPAllFilesInSingleFolder>
+  </PropertyGroup>
+
+  <PropertyGroup>
+    <EnableSqlScriptVariableParameterize Condition="'$(EnableSqlScriptVariableParameterize)'==''">True</EnableSqlScriptVariableParameterize>
+    <!-- The default BatchDelimiter is "Go", "" is the same for ManagedBatchParser.Parser -->
+    <SqlScriptPreProcessBatchDelimiter Condition="'$(SqlScriptPreProcessBatchDelimiter)'==''"></SqlScriptPreProcessBatchDelimiter>
+    <SqlScriptPreProcessResolveIncludes Condition="'$(SqlScriptPreProcessResolveIncludes)'==''">False</SqlScriptPreProcessResolveIncludes>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ProjectParametersXMLFiles Condition="Exists($(ProjectParametersXMLFile))" Include="$(ProjectParametersXMLFile)" />
+    <WebPublishProfileParametersXMLFiles Condition="'$(WebPublishProfileParametersXMLFile)' != '' And Exists($(WebPublishProfileParametersXMLFile))" Include="$(WebPublishProfileParametersXMLFile)" />
+    <ParametersXMLFiles Include="@(ProjectParametersXMLFiles)" />
+    <ProfileParametersXMLFiles  Include="@(WebPublishProfileParametersXMLFiles)" />
+  </ItemGroup>
+
+  <!--***************************************************************-->
+  <!-- Properties relating to the publish destination -->
+  <!--***************************************************************-->
+  <PropertyGroup>
+    <DeployIisAppPath Condition="'$(DeployIisAppPath)'==''"></DeployIisAppPath>
+    <RemoteSitePhysicalPath Condition="'$(RemoteSitePhysicalPath)'==''"></RemoteSitePhysicalPath>
+    <DefaultDeployIisAppPhysicalPath Condition="'$(DefaultDeployIisAppPhysicalPath)'==''">$(WebPublishPipelineProjectDirectory)$(DefaultMsDeployAltSuffix)</DefaultDeployIisAppPhysicalPath>
+      <DeployIisAppPhysicalPath Condition="'$(DeployIisAppPhysicalPath)'==''"></DeployIisAppPhysicalPath>
+    <_DestinationIisAppPhysicalPath>$(DeployIisAppPhysicalPath)</_DestinationIisAppPhysicalPath>
+    <_DestinationIisAppPhysicalPath Condition="'$(_DestinationIisAppPhysicalPath)'==''">$(DefaultDeployIisAppPhysicalPath)</_DestinationIisAppPhysicalPath>
+    <!-- If it is not set the default value will be taken from $(LocalIisVersion)-->
+    <DestinationIisVersion Condition="'$(DestinationIisVersion)'==''"></DestinationIisVersion>
+    <DestinationUseIis Condition="'$(DestinationUseIis)' ==''"></DestinationUseIis>
+    <PublishEnableLinks Condition="'$(PublishEnableLinks)'==''">$(PackageEnableLinks)</PublishEnableLinks>
+    <PublishDisableLinks Condition="'$(PublishDisableLinks)'==''">$(PackageDisableLinks)</PublishDisableLinks>
+    <DeployEncryptKey Condition="'$(DeployEncryptKey)'==''"></DeployEncryptKey>
+    <SkipExtraFilesOnServer Condition="'$(SkipExtraFilesOnServer)'==''">False</SkipExtraFilesOnServer>
+    <MsDeployServiceUrl Condition="$(MsDeployServiceUrl)==''"></MsDeployServiceUrl>
+  </PropertyGroup>
+
+  <!-- Determines the order in which the related MSDeploy parametes will show up in the
+       IIS manager UI when the package is imported. The lower the numberered items are shown first.
+       Default is 0.Any integer number is allowed.
+       These values are placed in the MSDeployParameterPriority item list -->
+  <PropertyGroup>
+    <VsIisAppParametersPriority Condition="'$(VsIisAppParametersPriority)'==''">-100</VsIisAppParametersPriority>
+    <VsContentPathParametersPriority Condition="'$(VsContentPathParametersPriority)'==''">-80</VsContentPathParametersPriority>
+    <VsDestinationVDirParametersPriority Condition="'$(VsDestinationVDirParametersPriority)'==''">-70</VsDestinationVDirParametersPriority>
+    <VsSetAclPriority Condition="'$(VsSetAclPriority)'==''">-60</VsSetAclPriority>
+    <UserProfileParametersFileParametersPriority Condition="'$(UserProfileParametersFileParametersPriority)' == ''" >-55</UserProfileParametersFileParametersPriority>
+    <UserParametersFileParametersPriority Condition="'$(UserParametersFileParametersPriority)'==''">-50</UserParametersFileParametersPriority>
+    <UserWebConfigParametersPriority Condition="'$(UserWebConfigParametersPriority)'==''">-40</UserWebConfigParametersPriority>
+    <VsSQLDatabaseScriptParametersPriority Condition="'$(VsSQLDatabaseScriptParametersPriority)'==''">60</VsSQLDatabaseScriptParametersPriority>
+    <VsWebConfigAutoCsParametersPriority Condition="'$(VsWebConfigAutoCsParametersPriority)'==''">100</VsWebConfigAutoCsParametersPriority>
+  </PropertyGroup>
+
+  <!--***************************************************************-->
+  <!-- Properties relating to where the source manifest and related files will be created. -->
+  <!--***************************************************************-->
+  <ItemGroup>
+    <_MSDeployPackageFile Include="$(PackageFileName)" />
+    <_MSDeployArchiveDir Include="$(PackageArchiveRootDir)\Archive" />
+    <_MSDeployPackageLocation Condition="$(PackageAsSingleFile)" Include="$(PackageFileName)" />
+    <_MSDeployPackageLocation Condition="!$(PackageAsSingleFile)" Include="@(_MSDeployArchiveDir)" />
+  </ItemGroup>
+
+  <PropertyGroup>
+    <GenerateSampleDeployScriptLocation Condition="$(GenerateSampleDeployScript) And '$(GenerateSampleDeployScriptLocation)'==''">@(_MSDeployPackageLocation->'%(RootDir)%(Directory)%(FileName).deploy.cmd')</GenerateSampleDeployScriptLocation>
+
+    <PackageSourceManifest Condition="'$(PackageSourceManifest)'==''">@(_MSDeployPackageLocation->'%(RootDir)%(Directory)%(FileName).SourceManifest.xml')</PackageSourceManifest>
+    <UseDeclareParametersXMLInMsDeploy Condition="'$(UseDeclareParametersXMLInMsDeploy)'==''">$(UseMsdeployExe)</UseDeclareParametersXMLInMsDeploy>
+    <PackageParametersFile Condition="'$(PackageParametersFile)'==''">@(_MSDeployPackageLocation->'%(RootDir)%(Directory)%(FileName).Package.Parameters.xml')</PackageParametersFile>
+    <PublishParametersFile Condition="'$(PublishParametersFile)'==''">@(_MSDeployPackageLocation->'%(RootDir)%(Directory)%(FileName).Publish.Parameters.xml')</PublishParametersFile>
+    <GenerateSampleDeployScriptLocation Condition="$(GenerateSampleDeployScript) And '$(GenerateSampleDeployScriptLocation)'==''">@(_MSDeployPackageLocation->'%(RootDir)%(Directory)%(FileName).deploy.cmd')</GenerateSampleDeployScriptLocation>
+    <GenerateSampleDeployScriptReadMeFileName Condition="$(GenerateSampleDeployScript) And '$(GenerateSampleDeployScriptReadMeLocation)'==''">@(_MSDeployPackageLocation->'%(FileName).deploy-readme.txt')</GenerateSampleDeployScriptReadMeFileName>
+    <GenerateSampleDeployScriptReadMeLocation Condition="$(GenerateSampleDeployScript) And '$(GenerateSampleDeployScriptReadMeLocation)'==''">@(_MSDeployPackageLocation->'%(RootDir)%(Directory)%(FileName).deploy-readme.txt')</GenerateSampleDeployScriptReadMeLocation>
+    <GenerateSampleParametersValueLocationDefault Condition="'$(GenerateSampleParametersValueLocationDefault)'==''">@(_MSDeployPackageLocation->'%(RootDir)%(Directory)%(FileName).SetParameters.xml')</GenerateSampleParametersValueLocationDefault>
+    <GenerateSampleParametersValueLocation Condition="$(GenerateSampleDeployScript) And '$(GenerateSampleParametersValueLocation)'==''">$(GenerateSampleParametersValueLocationDefault)</GenerateSampleParametersValueLocation>
+    <GenerateSampleParametersValueFileName Condition="$(GenerateSampleDeployScript)">@(_MSDeployPackageLocation->'%(FileName).SetParameters.xml')</GenerateSampleParametersValueFileName>
+  </PropertyGroup>
+  
+  <!-- This will ensure that all values in the ExcludeFromPackageFiles have the
+       FromTarget metadata.
+       
+       To exclude files from publish in the .pubxml you can include something like the following
+       <ExcludeFromPackageFiles Include="Default.aspx">
+         <FromTarget>Project</FromTarget>
+       </ExcludeFromPackageFiles>
+      
+       You can exclude a file in the following way.
+       <ExcludeFromPackageFolders Include="SampleExclude">
+         <FromTarget>Project</FromTarget>
+       </ExcludeFromPackageFolders>
+  -->
+  <ItemDefinitionGroup>
+    <ExcludeFromPackageFiles>
+      <FromTarget>Unknown</FromTarget>
+    </ExcludeFromPackageFiles>
+    <ExcludeFromPackageFolders>
+      <FromTarget>Unknown</FromTarget>
+    </ExcludeFromPackageFolders>
+  </ItemDefinitionGroup>
+
+  <!--********************************************************************-->
+  <!-- This will ensure that all values have the required metadata -->
+  <!--********************************************************************-->
+  <ItemDefinitionGroup>
+    <FilesForPackagingFromProject>
+      <DestinationRelativePath></DestinationRelativePath>
+      <Exclude>False</Exclude>
+      <FromTarget>Unknown</FromTarget>
+      <Category>Run</Category>
+      <ProjectFileType>Default</ProjectFileType>
+    </FilesForPackagingFromProject>
+  </ItemDefinitionGroup>
+
+
+  <ItemDefinitionGroup>
+    <FilesForFileCopy>
+      <DestinationRelativePath></DestinationRelativePath>
+      <Exclude>False</Exclude>
+      <FromTarget>Unknown</FromTarget>
+      <Category>Run</Category>
+      <ProjectFileType>Default</ProjectFileType>
+    </FilesForFileCopy>
+  </ItemDefinitionGroup>
+
+  <!-- ReplaceRule(string RuleName, 
+  string objectName, 
+  string scopeAttributeName, 
+  string scopeAttributeValue, 
+  string targetAttributeName, 
+  string match, 
+  string replace);-->
+  <ItemDefinitionGroup>
+    <MsDeployReplaceRules>
+      <ObjectName></ObjectName>
+      <ScopeAttributeName></ScopeAttributeName>
+      <ScopeAttributeValue></ScopeAttributeValue>
+      <TargetAttributeName></TargetAttributeName>
+      <Match></Match>
+      <Replace></Replace>
+    </MsDeployReplaceRules>
+  </ItemDefinitionGroup>
+
+  <!--
+  DeploymentSkipRule(string skipAction, string objectName, string absolutePath, string XPath);-->
+  <ItemDefinitionGroup>
+    <MsDeploySkipRules>
+      <SkipAction></SkipAction>
+      <ObjectName></ObjectName>
+      <AbsolutePath></AbsolutePath>
+      <XPath></XPath>
+      <KeyAttribute></KeyAttribute>
+      <!--Source, Destination, Both(the default)-->
+      <Apply></Apply>
+    </MsDeploySkipRules>
+  </ItemDefinitionGroup>
+
+  <!--
+  DeploymentParameter(string name, string type, string scope, string match, string description, string defaultValue); -->
+  <ItemDefinitionGroup>
+    <MsDeployDeclareParameters>
+      <Kind></Kind>
+      <Scope></Scope>
+      <Match></Match>
+      <Description></Description>
+      <DefaultValue></DefaultValue>
+      <Tags></Tags>
+      <ExcludeFromSetParameter></ExcludeFromSetParameter>
+    </MsDeployDeclareParameters>
+  </ItemDefinitionGroup>
+
+  <!--
+  DeploymentParameter(string name, string value);  -->
+  <ItemDefinitionGroup>
+    <MsDeploySimpleSetParameters>
+      <Value></Value>
+    </MsDeploySimpleSetParameters>
+  </ItemDefinitionGroup>
+
+  <!--
+  DeploymentParameter(string type, string scope, string match, string value);  -->
+  <ItemDefinitionGroup>
+    <MsDeploySetParameters>
+      <Kind></Kind>
+      <Scope></Scope>
+      <Match></Match>
+      <Value></Value>
+      <Description></Description>
+      <DefaultValue></DefaultValue>
+      <Tags></Tags>
+    </MsDeploySetParameters>
+  </ItemDefinitionGroup>
+  
+  <!-- 
+  DeploymentParameter(string type, string scope, string match, string value);  -->
+  <ItemDefinitionGroup>
+    <MsDeploySourceProviderSetting>
+      <Path></Path>
+      <ComputerName></ComputerName>
+      <!--<Wmsvc></Wmsvc>  Not supported yet-->
+      <UserName></UserName>
+      <Password></Password>
+      <EncryptPassword></EncryptPassword>
+      <IncludeAcls></IncludeAcls>
+      <authType></authType>
+      <prefetchPayload></prefetchPayload>
+    </MsDeploySourceProviderSetting>
+  </ItemDefinitionGroup>
+
+  <ItemDefinitionGroup>
+    <MsDeployDestinationProviderSetting>
+      <Path></Path>
+      <ComputerName></ComputerName>
+      <!--<Wmsvc></Wmsvc>  Not supported yet-->
+      <UserName></UserName>
+      <Password></Password>
+      <EncryptPassword></EncryptPassword>
+      <IncludeAcls></IncludeAcls>
+      <authType></authType>
+      <prefetchPayload></prefetchPayload>
+    </MsDeployDestinationProviderSetting>
+  </ItemDefinitionGroup>
+
+  <!-- AdditionalProviderSettings denote the additionProviderSetting need to be set in the manifest files-->
+  <ItemDefinitionGroup>
+    <MsDeploySourceManifest>
+      <Path>Unknown</Path>
+      <AdditionalProviderSettings></AdditionalProviderSettings>
+    </MsDeploySourceManifest>
+  </ItemDefinitionGroup>
+
+  <ItemDefinitionGroup>
+    <SqlCommandVariableMetaData>
+      <Value/>
+      <IsDeclared/>
+      <SourcePath/>
+      <SourcePath_RegExExcaped/>
+      <DestinationGroup/>
+    </SqlCommandVariableMetaData>
+  </ItemDefinitionGroup>
+
+  <!-- Import the .targets file which defines how files are collected. -->
+  <!--
+  In $(MSBuildExtensionsPath)\Microsoft\VisualStudio\v11.0\Web\CollectFiles
+  Microsoft.Web.Publishing.AllFilesInProjectFolder.targets
+  Microsoft.Web.Publishing.AllFilesInTheProject.targets
+  Microsoft.Web.Publishing.OnlyFilesToRunTheApp.targets
+  MyCustomized.targets
+  -->
+  <!-- This property determines what .targets file will be imported for file collection -->
+  <PropertyGroup Condition="'$(FilesToIncludeTargetFile)'==''">
+    <FilesToIncludeTargetFile Condition="Exists('$(MSBuildThisFileDirectory)\CollectFiles\$(FilesToIncludeForPublish).targets')">$(MSBuildThisFileDirectory)\CollectFiles\$(FilesToIncludeForPublish).targets</FilesToIncludeTargetFile>
+    <FilesToIncludeTargetFile Condition="'$(FilesToIncludeTargetFile)'==''">$(MSBuildThisFileDirectory)\CollectFiles\Microsoft.Web.Publishing.$(FilesToIncludeForPublish).targets</FilesToIncludeTargetFile>
+  </PropertyGroup>
+  <Import Condition="'$(FilesToIncludeTargetFile)' != '' And Exists($(FilesToIncludeTargetFile))"
+    Project="$(FilesToIncludeTargetFile)" />
+
+  <!-- Import the .targets file which defines the publish steps. This is based off $(WebPublishMethod) -->
+  <!--
+  In $(MSBuildExtensionsPath)\Microsoft\VisualStudio\v11.0\Web\Deploy
+  Microsoft.Web.Publishing.FTP.targets
+  Microsoft.Web.Publishing.FPSE.targets
+  MyCustomized.targets
+  -->
+  <!-- This is the target file for the way to customize for collection files -->
+  <PropertyGroup Condition="'$(DeployTargetFile)'=='' and '$(WebPublishMethod)' != ''">
+    <DeployTargetFile Condition="Exists('$(MSBuildThisFileDirectory)\Deploy\$(WebPublishMethod).targets')">$(MSBuildThisFileDirectory)\Deploy\$(WebPublishMethod).targets</DeployTargetFile>
+    <DeployTargetFile Condition="'$(DeployTargetFile)'==''">$(MSBuildThisFileDirectory)\Deploy\Microsoft.Web.Publishing.Deploy.$(WebPublishMethod).targets</DeployTargetFile>
+  </PropertyGroup>
+  <Import Condition="'$(DeployTargetFile)'!='' And Exists($(DeployTargetFile))"
+           Project="$(DeployTargetFile)"/>
+
+  <!-- Import AspNetCompile and Merge into the target -->
+  <!-- Loop in AspnetCompilerMergeTarget if need to-->
+  <PropertyGroup Condition="'$(AspNetCompileMerge)' == ''">
+    <AspNetCompileMerge>False</AspNetCompileMerge>
+    <AspnetCompileMerge Condition="'$(PrecompileBeforePublish)' == 'true'">True</AspnetCompileMerge>
+  </PropertyGroup>
+
+  <PropertyGroup Condition="'$(Web_Publishing_AspNetCompileMerge_targets)' == ''">
+    <Web_Publishing_AspNetCompileMerge_targets>Transform\Microsoft.Web.Publishing.AspNetCompileMerge.targets</Web_Publishing_AspNetCompileMerge_targets>
+  </PropertyGroup>
+
+  <Import Condition="'$(Microsoft_Web_Publishing_AspNetCompileMerge_targets_Imported)' != 'True' And '$(AspNetCompileMerge)' == 'true'"
+          Project="$(Web_Publishing_AspNetCompileMerge_targets)"/>
+
+
+
+  <!--***************************************************************-->
+  <!-- Import Common MSDeploy target/tasks to support /t:Package -->
+  <!--***************************************************************-->
+  <PropertyGroup>
+    <Microsoft_Web_Publishing_MSDeploy_Common_targets Condition="'$(Microsoft_Web_Publishing_MSDeploy_Common_targets)' == ''">Deploy\Microsoft.Web.Publishing.MSDeploy.Common.targets</Microsoft_Web_Publishing_MSDeploy_Common_targets>
+  </PropertyGroup>
+  <Import Project="$(Microsoft_Web_Publishing_MSDeploy_Common_targets)" Condition="'$(Microsoft_Web_Publishing_MSDeploy_Common_targets_Imported)' != 'true' And Exists($(Microsoft_Web_Publishing_MSDeploy_Common_targets))"/>
+
+
+  <!--********************************************************************-->
+  <!-- ExcludeApp_Data -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <ExcludeApp_DataDependsOn Condition="'$(ExcludeApp_DataDependsOn)'==''">
+    </ExcludeApp_DataDependsOn>
+  </PropertyGroup>
+
+  <Target Name="ExcludeApp_Data"
+          DependsOnTargets="$(ExcludeApp_DataDependsOn)"
+          Condition="$(ExcludeApp_Data)">
+
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_ExcludeAllFilesUnderFolder"
+      ArgumentCount="1"
+      Arguments="App_Data"
+      LogType="Message" />
+
+    <!-- This excludes the files in the App_Data folder -->
+    <ItemGroup>
+      <ExcludeFromPackageFolders Include="App_Data">
+        <FromTarget>ExcludeApp_Data</FromTarget>
+      </ExcludeFromPackageFolders>
+    </ItemGroup>
+  </Target>
+
+  <!--********************************************************************-->
+  <!-- ExcludeGeneratedDebugSymbol -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <ExcludeGeneratedDebugSymbolDependsOn Condition="'$(ExcludeGeneratedDebugSymbolDependsOn)'==''">
+    </ExcludeGeneratedDebugSymbolDependsOn>
+  </PropertyGroup>
+  <Target Name="ExcludeGeneratedDebugSymbol"
+          DependsOnTargets="$(ExcludeGeneratedDebugSymbolDependsOn)"
+          Condition="$(ExcludeGeneratedDebugSymbol)">
+
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_ExcludeAllDebugSymbols"
+      LogType="Message" />
+
+    <ItemGroup>
+      <ExcludeFromPackageFiles Include="@(FilesForPackagingFromProject)" Condition="'%(FilesForPackagingFromProject.Extension)'=='.pdb'">
+        <FromTarget>ExcludeGeneratedDebugSymbol</FromTarget>
+      </ExcludeFromPackageFiles>
+    </ItemGroup>
+  </Target>
+
+  <PropertyGroup>
+    <ExcludeXmlAssemblyFilesDependsOn>
+      @(ExcludeXmlAssemblyFilesDependsOn);
+    </ExcludeXmlAssemblyFilesDependsOn>
+  </PropertyGroup>
+  <Target Name="ExcludeXmlAssemblyFiles" Condition=" '$(ExcludeXmlAssemblyFiles)'=='true' " DependsOnTargets="@(ExcludeXmlAssemblyFilesDependsOn)">    
+    <ItemGroup>
+      <ExcludeFromPackageFiles Include="%(_ReferenceRelatedPaths.FullPath)" Condition="'%(_ReferenceRelatedPaths.Extension)'=='.xml'">
+        <FromTarget>ExcludeXmlAssemblyFiles</FromTarget>
+      </ExcludeFromPackageFiles>
+    </ItemGroup>
+  </Target>
+
+  <!--********************************************************************
+  ExcludeFilesByExtension
+    If $(FilesToIncludeForPublish) is set to OnlyFilesToRunTheApp then you can exclude files by their extension.
+    
+    You can exlude all files with a given extension, by adding that extension to
+    the WebPublishExtnsionsToExcludeItem ItemGroup before this target executes.
+  
+    You can disable this functionality by setting $(EnableExcludeFilesByExtension) to false.
+  
+    By default the extensions listed in $(WebPublishExtensionsToExclude) will be excluded. 
+    You can override this property if you need to publish files with one of those extensions.
+  ********************************************************************-->
+  <PropertyGroup>
+    <EnableExcludeFilesByExtension Condition=" '$(EnableExcludeFilesByExtension)'=='' and '$(FilesToIncludeForPublish)'=='OnlyFilesToRunTheApp' ">true</EnableExcludeFilesByExtension>
+    <ExcludeFilesByExtensionDependsOn>$(ExcludeFilesByExtensionDependsOn);</ExcludeFilesByExtensionDependsOn>
+    <WebPublishExtensionsToExclude Condition=" '$(WebPublishExtensionsToExclude)'=='' ">.tt;.settings</WebPublishExtensionsToExclude>
+  </PropertyGroup>
+  <ItemGroup>
+    <WebPublishExtnsionsToExcludeItem Include="$(WebPublishExtensionsToExclude)"/>
+  </ItemGroup>
+  <Target Name="ExcludeFilesByExtension" DependsOnTargets="$(ExcludeFilesByExtensionDependsOn)"
+          Outputs="%(WebPublishExtnsionsToExcludeItem.Identity)" Condition=" '$(EnableExcludeFilesByExtension)'=='true' ">
+    <!-- this target will execute once per value in @(WebPublishExtnsionsToExcludeItem) -->
+    <Message Text="ExcludeFilesByExtension" Importance="high"/>
+    <PropertyGroup>
+      <_ExtToExclude>%(WebPublishExtnsionsToExcludeItem.Identity)</_ExtToExclude>
+    </PropertyGroup>
+
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert)"
+                      Encoding="utf-8"
+                      File="$(PackageLogDir)\ExcludeFilesByExtension.txt"
+                      Lines="Excluding files with extension '$(_ExtToExclude)' from the publish/package operation"
+                      Overwrite="True" />
+    
+    <ItemGroup>
+      <ExcludeFromPackageFiles Include="@(FilesForPackagingFromProject)"
+                               Condition="'%(FilesForPackagingFromProject.Extension)'=='$(_ExtToExclude)'">
+        <FromTarget>ExcludeFilesByExtension</FromTarget>
+      </ExcludeFromPackageFiles>
+    </ItemGroup>
+  </Target>
+  
+  <!--**********************************************************************-->
+  <!-- ExcludeFilesFromPackage-->
+  <!--**********************************************************************-->
+  <PropertyGroup>
+    <ExcludeFilesFromPackageDependsOn>
+      $(ExcludeFilesFromPackageDependsOn);
+      ExcludeApp_Data;
+      ExcludeGeneratedDebugSymbol;
+      ExcludeXmlAssemblyFiles;
+      ExcludeFilesByExtension;
+    </ExcludeFilesFromPackageDependsOn>
+  </PropertyGroup>
+  <Target Name="ExcludeFilesFromPackage" DependsOnTargets="$(ExcludeFilesFromPackageDependsOn)"
+          Condition="$(ExcludeFilesFromPackage)">
+
+    <!--Add the exclude Folder into the list (Note that ItemGroup doesn't work in this scenario.
+        Note that this is specify in the DestinationRelativePath in the item.Spec-->
+    <CreateItem Include="@(ExcludeFromPackageFolders->'$(AlternativeProjectDirectory)%(Identity)\**')"
+                AdditionalMetadata="FromTarget=%(FromTarget)">
+      <Output TaskParameter="Include" ItemName="ExcludeFromPackageFiles"/>
+    </CreateItem>
+
+    <MakeDir Condition="$(EnablePackageProcessLoggingAndAssert) And !Exists($(PackageLogDir))"
+             Directories="$(PackageLogDir)" />
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert)"
+                      Encoding="utf-8"
+                      File="$(PackageLogDir)\ExcludeFromPackageFiles.txt"
+                      Lines="@(ExcludeFromPackageFiles->'
+                      Files:%(Identity) 
+                      FromTarget:%(FromTarget)
+                      DestinationRelativePath:%(DestinationRelativePath)')"
+                      Overwrite="True" />
+
+    <!-- This will exclude files if the DestinationRelativePath is found in @(ExcludeFromPackageFiles) -->
+    <FilterByItems PipelineItems="@(FilesForPackagingFromProject)"
+                   SourceMetadataName="DestinationRelativePath"
+                   FilterRootFolder="$(AlternativeProjectDirectory)"
+                   FilterBaseOnRelativePath="True"
+                   Filter="@(ExcludeFromPackageFiles)">
+      <Output TaskParameter="InFilter" ItemName="_NeedtoMarkasExclude_FilesForPackagingFromProject"/>
+    </FilterByItems>
+
+
+    <!--This exclude if the filter item's DestinationRelativePath is specified.  
+        This is useful for case like Reference Dll and pdb where the source is not under the current project.-->
+    <FilterByItems PipelineItems="@(FilesForPackagingFromProject)"
+                       SourceMetadataName="DestinationRelativePath"
+                       FilterRootFolder="$(AlternativeProjectDirectory)"
+                       FilterBaseOnRelativePath="True"
+                       FilterMetadataName="DestinationRelativePath"
+                       Filter="@(ExcludeFromPackageFiles)">
+      <Output TaskParameter="InFilter" ItemName="_NeedtoMarkasExclude_FilesForPackagingFromProject"/>
+    </FilterByItems>
+
+    <FilterByItems PipelineItems="@(FilesForPackagingFromProject)"
+                       SourceMetadataName="FullPath"
+                       FilterBaseOnRelativePath="False"
+                       FilterMetadataName="FullPath"
+                       Filter="@(ExcludeFromPackageFiles)">
+      <Output TaskParameter="InFilter" ItemName="_NeedtoMarkasExclude_FilesForPackagingFromProject"/>
+    </FilterByItems>
+
+    <ItemGroup>
+      <FilesForPackagingFromProject Remove="@(_NeedtoMarkasExclude_FilesForPackagingFromProject)" />
+      <FilesForPackagingFromProject Include="@(_NeedtoMarkasExclude_FilesForPackagingFromProject)">
+        <Exclude>True</Exclude>
+      </FilesForPackagingFromProject>
+    </ItemGroup>
+
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert)"
+                      Encoding="utf-8"
+                      File="$(PackageLogDir)\AfterExcludeFilesFilesList.txt"
+                      Lines="@(FilesForPackagingFromProject->'
+                      From:%(Identity) 
+                      DestinationRelativePath:%(DestinationRelativePath) 
+                      Exclude:%(Exclude) 
+                      FromTarget:%(FromTarget) 
+                      Category:%(Category)
+                      ProjectFileType:%(ProjectFileType)')" Overwrite="True" />
+
+    <CallTarget Targets="$(OnAfterExcludeFilesFromPackage)" RunEachTargetSeparately="False" />
+  </Target>
+
+  <!--Target ImportParametersFiles-->
+  <Target Name="ImportParametersFiles" DependsOnTargets="$(ImportParametersFilesDependsOn)"
+          Condition="$(ImportParametersFiles)">
+
+    <ExportParametersFile
+      Condition=" $(EnablePackageProcessLoggingAndAssert)"
+      Parameters="@(MsDeployDeclareParameters)"
+      DeclareParameterFile="$(PackageLogDir)\BeforeImportParametersFiles.parameters.xml"
+      GenerateFileEvenIfEmpty="True"
+      />
+    <ImportParametersFile  Files="@(ParametersXMLFiles)" 
+                           DisableEscapeMSBuildVariable="$(ImportParametersFile_DisableEscapeMSBuildVariable)">
+      <Output TaskParameter="Result" ItemName="_ImportedMSDeployDeclareParameters"/>
+    </ImportParametersFile>
+
+    <ItemGroup>
+      <!-- Use %(Identity) to force msbuild not to batch based on %(DefaultValue) -->
+      <MsDeployDeclareParameters Include="@(_ImportedMSDeployDeclareParameters)"
+                                 Condition="'$(ImportProjectParametersFiles)' == 'true' And '%(_ImportedMSDeployDeclareParameters.Identity)' !=''">
+        <Value>%(_ImportedMSDeployDeclareParameters.DefaultValue)</Value>
+        <Priority>$(UserParametersFileParametersPriority)</Priority>
+      </MsDeployDeclareParameters>
+    </ItemGroup>
+
+    <ImportParametersFile  Files="@(ProfileParametersXMLFiles)" DisableEscapeMSBuildVariable="$(ImportParametersFile_DisableEscapeMSBuildVariable)">
+      <Output TaskParameter="Result" ItemName="_ImportedProfileMSDeployDeclareParameters"/>
+    </ImportParametersFile>
+
+    <ItemGroup>
+      <!-- Use %(Identity) to force msbuild not to batch based on %(DefaultValue)-->
+      <MsDeployDeclareParameters Include="@(_ImportedProfileMSDeployDeclareParameters)"
+                                 Condition="'$(ImportProfileParametersFiles)' == 'true' And '%(_ImportedProfileMSDeployDeclareParameters.Identity)' !=''">
+        <Value>%(_ImportedProfileMSDeployDeclareParameters.DefaultValue)</Value>
+        <Priority>$(UserProfileParametersFileParametersPriority)</Priority>
+      </MsDeployDeclareParameters>
+    </ItemGroup>
+
+    <ExportParametersFile
+      Condition=" $(EnablePackageProcessLoggingAndAssert)"
+      Parameters="@(MsDeployDeclareParameters)"
+      DeclareParameterFile="$(PackageLogDir)\AfterImportParametersFiles.parameters.xml"
+      GenerateFileEvenIfEmpty="True"
+      />
+
+  </Target>
+
+  <!--********************************************************************-->
+  <!-- Target ImportPublishingParameterValues-->
+  <!--**********************************************************************-->
+  <Target Name="ImportPublishingParameterValues" DependsOnTargets="$(ImportPublishingParameterValuesDependsOn)"
+          Condition="$(ImportPublishingParameterValues)">
+
+    <ItemGroup Condition="'$(AutoParameterizationWebConfigCSNoDefaultValue)' == 'false'">
+      <MsDeployDeclareParameters Include="@(MSDeployParameterValue)"  Condition="'%(MSDeployParameterValue.Identity)' !='' And '%(MSDeployParameterValue.UpdateDestWebConfig)' !='False'">
+        <Value>%(MSDeployParameterValue.ParameterValue)</Value>
+        <DefaultValue>%(MSDeployParameterValue.ParameterValue)</DefaultValue>
+        <Description>%(MSDeployParameterValue.Description)</Description>
+        <Priority>%(MSDeployParameterValue.ParameterPriority)</Priority>
+      </MsDeployDeclareParameters>
+    </ItemGroup>
+    <ItemGroup Condition="'$(AutoParameterizationWebConfigCSNoDefaultValue)' != 'false'">
+      <MsDeployDeclareParameters Include="@(MSDeployParameterValue)"  Condition="'%(MSDeployParameterValue.Identity)' !='' And '%(MSDeployParameterValue.UpdateDestWebConfig)' !='False'">
+        <Value>%(MSDeployParameterValue.ParameterValue)</Value>
+        <Description>%(MSDeployParameterValue.Description)</Description>
+        <Priority>%(MSDeployParameterValue.ParameterPriority)</Priority>
+      </MsDeployDeclareParameters>
+    </ItemGroup>
+  </Target>
+  
+  <!--Target ValidateGlobalSettings -->
+  <PropertyGroup>
+    <ValidateGlobalSettingsDependsOn>
+      $(ValidateGlobalSettingsDependsOn);
+      GetProjectWebProperties;
+    </ValidateGlobalSettingsDependsOn>
+  </PropertyGroup>
+  <Target Name="ValidateGlobalSettings"
+          DependsOnTargets="$(ValidateGlobalSettingsDependsOn)" Condition="'$(ValidateGlobalSettings)' != 'False'">
+
+    <GetPublishingLocalizedString
+          ID="PublishLocalizedString_MsBuildPropertySettingValue"
+          ArgumentCount="2"
+          Arguments="WPPAllFilesInSingleFolder;$(WPPAllFilesInSingleFolder)"
+          Condition="'$(WPPAllFilesInSingleFolder)' == ''  Or 
+          $([System.String]::IsNullOrWhiteSpace($(WPPAllFilesInSingleFolder)))"
+          LogType="Error" />
+
+    <Error Text="Target ValidateGlobalSettings Failed"
+       Condition="'$(WPPAllFilesInSingleFolder)' == ''  Or 
+          $([System.String]::IsNullOrWhiteSpace($(WPPAllFilesInSingleFolder)))"
+       />
+
+  </Target>
+
+  <!--********************************************************************-->
+  <!--Target ValidateGlobalPackageSetting -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <ValidateGlobalPackageSettingDependsOn>
+      $(ValidateGlobalPackageSettingDependsOn);
+      GetProjectWebProperties;
+      ValidateGlobalSettings;
+    </ValidateGlobalPackageSettingDependsOn>
+  </PropertyGroup>
+
+  <Target Name="ValidateGlobalPackageSetting"
+          DependsOnTargets="$(ValidateGlobalPackageSettingDependsOn)" Condition="$(_CreatePackage)">
+
+    <GetPublishingLocalizedString
+          ID="PublishLocalizedString_MsBuildPropertySettingValue"
+          ArgumentCount="2"
+          Arguments="PackageAsSingleFile;$(PackageAsSingleFile)"
+          LogType="Message" />
+    
+    <GetPublishingLocalizedString
+      Condition="$(PackageAsSingleFile)"
+          ID="PublishLocalizedString_CheckingForValidMsBuildPropertyValue"
+          ArgumentCount="2"
+          Arguments="PackageFileName;$(PackageFileName)"
+          LogType="Message" />
+    <GetPublishingLocalizedString
+          Condition="!$(PackageAsSingleFile)"
+          ID="PublishLocalizedString_CheckingForValidMsBuildPropertyValue"
+          ArgumentCount="2"
+          Arguments="PackageArchiveRootDir;$(PackageArchiveRootDir)"
+          LogType="Message" />
+    
+    <PropertyGroup>
+      <_CheckPackageLocation Condition="$(PackageAsSingleFile)">$(PackageFileName)</_CheckPackageLocation>
+      <_CheckPackageLocation Condition="!$(PackageAsSingleFile)">$(PackageArchiveRootDir)</_CheckPackageLocation>
+      <_CheckPackageLocationArchiveDir Condition="!$(PackageAsSingleFile)">$(PackageArchiveRootDir)\Archive</_CheckPackageLocationArchiveDir>
+    </PropertyGroup>
+
+    <CheckPathAttributes Path="$(_CheckPackageLocation)" Condition="'$(_CheckPackageLocation)' != ''">
+      <Output TaskParameter="IsExists" PropertyName="_CheckPackageLocationExists" />
+      <Output TaskParameter="IsFolder" PropertyName="_CheckPackageLocationIsFolder" />
+    </CheckPathAttributes>
+
+    <CheckPathAttributes Condition="'$(_CheckPackageLocationArchiveDir)' != ''" Path="$(_CheckPackageLocationArchiveDir)">
+      <Output TaskParameter="IsExists" PropertyName="_CheckPackageLocationArchiveDirExists" />
+      <Output TaskParameter="IsFolder" PropertyName="_CheckPackageLocationArchiveDirIsFolder" />
+    </CheckPathAttributes>
+
+    <!-- Check on valid location-->
+    <GetPublishingLocalizedString
+       Condition="$(PackageAsSingleFile) And $(_CheckPackageLocationExists) And $(_CheckPackageLocationIsFolder)"
+       ID="PublishLocalizedString_ErrorPackageAsFilePointToAnExistingFolder"
+       ArgumentCount="1"
+       Arguments="$(PackageFileName)"
+       LogType="Error" />
+    <!-- "You can't package as a single file to be the same name as an existing folder. Please delete the folder before packaging. Alternative,you can call msbuild with /t:CleanWebsitesPackage target to remove it." />-->
+
+    <GetPublishingLocalizedString
+       Condition="!$(PackageAsSingleFile) And $(_CheckPackageLocationExists) And !$(_CheckPackageLocationIsFolder)"
+       ID="PublishLocalizedString_ErrorPackageAsFolderPointToAnExistingFile"
+       ArgumentCount="1"
+       Arguments="$(PackageArchiveRootDir)"
+       LogType="Error" />
+    <!-- "'$(PackageArchiveRootDir)' exist as a file. You can't package as an archive directory to be the same as an existing file. Please delete the file before packaging. Alternative,you can call msbuild with /t:CleanWebsitesPackage target to remove it." />-->
+    
+    <GetPublishingLocalizedString
+       Condition="!$(PackageAsSingleFile) And $(_CheckPackageLocationArchiveDirExists) And !$(_CheckPackageLocationArchiveDirIsFolder)"
+       ID="PublishLocalizedString_ErrorPackageAsFolderPointToAnExistingFile"
+       ArgumentCount="1"
+       Arguments="$(PackageArchiveRootDir)\Archive"
+       LogType="Error" />
+    <!-- "'$(PackageArchiveRootDir)\Archive' exist as a file. You can't package as an archive directory to be the same as an existing file. Please delete the file before packaging.   Alternative,you can call msbuild with /t:CleanWebsitesPackage target to clean it." />-->
+
+    <!--Check on the IIS version compatibility-->
+    <GetPublishingLocalizedString
+       Condition="$(DestinationUseIis) And ($(DestinationIisVersion) &lt; '7') And $(_DeploymentUseIis) And ($(LocalIisVersion) &gt;= '7')"
+       ID="PublishLocalizedString_ErrorCannotDeployFromIIS7AboveToLowerIIS"
+       ArgumentCount="3"
+       Arguments="$(IncludeIisSettings);$(DestinationIisVersion);$(LocalIisVersion)"
+       LogType="Error" />
+    <!-- "Deploy with IIS Setting from a IIS 7 or above to a lower verstion of IIS server is not supported. To fix the problem, please set the %24(IncludeIisSettings) to false. Your current setting are %24(IncludeIisSettings) is $(IncludeIisSettings), %24(DestinationIisVersion) is $(DestinationIisVersion) and %24(LocalIisVersion) is  $(LocalIisVersion)." />-->
+
+    <Error Text="Target ValidateGlobalPackageSetting Failed"
+       Condition="(!$(PackageAsSingleFile) And $(_CheckPackageLocationExists) And !$(_CheckPackageLocationIsFolder)) 
+       Or ($(PackageAsSingleFile) And $(_CheckPackageLocationExists) And $(_CheckPackageLocationIsFolder))
+       Or (!$(PackageAsSingleFile) And $(_CheckPackageLocationArchiveDirExists) And !$(_CheckPackageLocationArchiveDirIsFolder))
+       Or ($(DestinationUseIis) And ($(DestinationIisVersion) &lt; '7') And $(_DeploymentUseIis) And ($(LocalIisVersion) &gt;= '7'))"
+       />    
+  </Target>
+
+  <Target Name="ProcessItemToExcludeFromDeployment">
+    <ItemGroup>
+      <ExcludeFromPackageFiles Condition="'$(ExcludeFilesFromDeployment)'!=''" Include="$(ExcludeFilesFromDeployment)" />
+      <ExcludeFromPackageFolders Condition="'$(ExcludeFoldersFromDeployment)'!=''" Include="$(ExcludeFoldersFromDeployment)" />
+    </ItemGroup>
+  </Target>
+
+  <!--********************************************************************-->
+  <!-- Target WPPCopyWebApplicaitonPipelineCircularDependencyError -->
+  <!--********************************************************************-->
+  <Target Name="WPPCopyWebApplicaitonPipelineCircularDependencyError" Condition="$(WPPCopyWebApplicaitonPipelineCircularDependencyError)">
+    <GetPublishingLocalizedString
+       Condition="$(WPPCopyWebApplicaitonPipelineCircularDependencyError)"
+       ID="PublishLocalizedString_ErrorUseWPP_CopyWebApplicationAndPipelineDependsOnBuildBothTrue"
+       LogType="Error" />
+
+    <Error Text="Target WPPCopyWebApplicaitonPipelineCircularDependencyError failed"
+           Condition ="$(WPPCopyWebApplicaitonPipelineCircularDependencyError)" />
+    <!--
+    "These two Properties are not compatable  %24(UseWPP_CopyWebApplication) and  %24(PipelineDependsOnBuild) both are True.  
+            Please correct the problem by either set %24(Disable_CopyWebApplication) to true or set %24(PipelineDependsOnBuild) to false to break the circular build dependency.
+            Detail: %24(UseWPP_CopyWebApplication) make the publsih pipeline (WPP) to be Part of the build and %24(PipelineDependsOnBuild) make the WPP depend on build thus cause the build circular build dependency.  " />
+            -->
+  </Target>
+
+  <!--********************************************************************-->
+  <!--Target _CleanWPPIfNeedTo -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <_CleanWPPIfNeedToDependsOn>
+      $(_CleanWPPIfNeedToDependsOn);
+      ValidateGlobalSettings;
+    </_CleanWPPIfNeedToDependsOn>
+  </PropertyGroup>
+  <Target Name="_CleanWPPIfNeedTo" Condition="'$(_CleanWPPIfNeedTo)' != 'False'" DependsOnTargets="$(_CleanWPPIfNeedToDependsOn)">
+    <PropertyGroup>
+      <_IsSameWPPBuildInfoAsLastBuildInfo>True</_IsSameWPPBuildInfoAsLastBuildInfo>
+      <_IsSameWPPBuildInfoAsLastBuildInfo Condition="!Exists($(_WPPLastBuildInfoLocation))">False</_IsSameWPPBuildInfoAsLastBuildInfo>
+    </PropertyGroup>
+   
+    <!-- This is the tracking property -->
+    <PropertyGroup>
+      <_WPPCurrentBuildInfo>$(_WPPCurrentBuildInfo);PlatformName=$(PlatformName);Configuration=$(Configuration);WPPAllFilesInSingleFolder=$([System.IO.Path]::GetFullPath($(WPPAllFilesInSingleFolder)));WebPublishProfileFile=$(WebPublishProfileFile)</_WPPCurrentBuildInfo>
+    </PropertyGroup>
+
+    <ItemGroup>
+      <_WPPCurrentBuildInfoItems Include="$(_WPPCurrentBuildInfo)" />
+    </ItemGroup>
+
+    <ReadLinesFromFile  Condition="$(_IsSameWPPBuildInfoAsLastBuildInfo)"
+                        File="$(_WPPLastBuildInfoLocation)">
+      <Output TaskParameter="Lines" ItemName="_WPPLastBuildInfo"/>
+    </ReadLinesFromFile>
+
+    <PropertyGroup Condition="$(_IsSameWPPBuildInfoAsLastBuildInfo)">
+      <_IsSameWPPBuildInfoAsLastBuildInfo Condition="'@(_WPPLastBuildInfo)' != '@(_WPPCurrentBuildInfoItems)'" >False</_IsSameWPPBuildInfoAsLastBuildInfo>
+    </PropertyGroup>
+
+    <Message  Text="_WPPLastBuildInfoLocation is $(_WPPLastBuildInfoLocation)
+              _WPPCurrentBuildInfo is @(_WPPCurrentBuildInfoItems)
+              _WPPLastBuildInfo is @(_WPPLastBuildInfo)
+              _IsSameWPPBuildInfoAsLastBuildInfo is $(_IsSameWPPBuildInfoAsLastBuildInfo)" 
+              Importance="Low"/>
+
+    <CallTarget Condition="!$(_IsSameWPPBuildInfoAsLastBuildInfo)"
+              Targets="$(_WPPCleanTargets)"
+              RunEachTargetSeparately="false" />
+    <PropertyGroup>
+      <_WPPLastBuildInfoLocationDirectory>$([System.IO.Path]::GetDirectoryName($(_WPPLastBuildInfoLocation)))</_WPPLastBuildInfoLocationDirectory>
+    </PropertyGroup>
+
+    <MakeDir Directories="$(_WPPLastBuildInfoLocationDirectory)" Condition="!Exists($(_WPPLastBuildInfoLocationDirectory))"/>
+
+    <WriteLinesToFile  File="$(_WPPLastBuildInfoLocation)"
+                        Lines="@(_WPPCurrentBuildInfoItems)"
+                        Overwrite="true"
+                        Encoding="Unicode"/>
+    
+  </Target>
+  <!--********************************************************************-->
+  <!-- Target PipelineCollectFilesPhase -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <OnBeforePipelineCollectFilesPhase>
+      $(OnBeforePipelineCollectFilesPhase);
+      _CleanWPPIfNeedTo;
+    </OnBeforePipelineCollectFilesPhase>
+    <OnAfterPipelineCollectFilesPhase>
+      $(OnAfterPipelineCollectFilesPhase);
+      ExcludeFilesFromPackage;
+      ImportParametersFiles;
+    </OnAfterPipelineCollectFilesPhase>
+    <PipelineCollectFilesPhaseDependsOn>
+      $(OnBeforePipelineCollectFilesPhase);
+      $(PipelineCollectFilesPhaseDependsOn);
+      WPPCopyWebApplicaitonPipelineCircularDependencyError;
+      ProcessItemToExcludeFromDeployment;
+      GetProjectWebProperties;
+      ValidateGlobalSettings;
+      ValidateGlobalPackageSetting;
+      $(PipelineDependsOn);
+      $(PublishPipelineCollectFilesCore);
+    </PipelineCollectFilesPhaseDependsOn>
+  </PropertyGroup>
+
+  <Target Name="PipelineCollectFilesPhase"
+          Outputs="@(FilesForPackagingFromProject)"
+          DependsOnTargets="$(PipelineCollectFilesPhaseDependsOn)">
+
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_WebPublishPipelineCollectFilesPhase"
+      LogType="Message" />
+
+    <MakeDir Condition="$(EnablePackageProcessLoggingAndAssert) And !Exists('$(PackageLogDir)')"
+             Directories="$(PackageLogDir)" />
+
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert)"
+                      Encoding="utf-8"
+                      File="$(PackageLogDir)\PreExcludePipelineCollectFilesPhaseFileList.txt"
+                      Lines="@(FilesForPackagingFromProject->'
+                      From:%(Identity) 
+                      DestinationRelativePath:%(DestinationRelativePath) 
+                      Exclude:%(Exclude) 
+                      FromTarget:%(FromTarget) 
+                      Category:%(Category)
+                      ProjectFileType:%(ProjectFileType)')" Overwrite="True" />
+
+    <CheckItemsForDuplication
+      Condition="$(EnablePackageProcessLoggingAndAssert)"
+      Items="@(FilesForPackagingFromProject)"
+      TraceLevel="Error"
+      MetadataToVerify="DestinationRelativePath">
+      <Output TaskParameter="HasDuplicate"  PropertyName="_FilesForPackagingDestinationRelativePathHasDuplicate"/>
+    </CheckItemsForDuplication>
+
+    <CheckItemsForDuplication
+      Condition="$(EnablePackageProcessLoggingAndAssert)"
+      Items="@(FilesForPackagingFromProject)"
+      TraceLevel="Warning">
+      <Output TaskParameter="HasDuplicate"  PropertyName="_FilesForPackagingIdentityHasDuplicate"/>
+    </CheckItemsForDuplication>
+
+    <CallTarget Targets="$(OnAfterPipelineCollectFilesPhase)" RunEachTargetSeparately="False" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!--Target TransformWebConfig -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <TransformWebConfigBeforeTargets>
+      $(TransformWebConfigBeforeTargets);
+      MarkWebConfigAssistFilesAsExclude;
+    </TransformWebConfigBeforeTargets>
+    <TransformWebConfigDependsOn>
+      $(OnBeforeTransformWebConfig);
+      $(TransformWebConfigDependsOn);
+      PreTransformWebConfig;
+      TransformWebConfigCore;
+      ParameterizeTransformWebConfigCore;
+      PostTransformWebConfig;
+    </TransformWebConfigDependsOn>
+  </PropertyGroup>
+
+  <Target Name="TransformWebConfig"
+          DependsOnTargets="$(TransformWebConfigDependsOn)"
+          BeforeTargets="$(TransformWebConfigBeforeTargets)">
+
+
+    <CallTarget Targets="$(OnAfterTransformWebConfig)" RunEachTargetSeparately="False" />
+  </Target>
+
+  <!--********************************************************************-->
+  <!--Target CollectWebConfigsToTransform -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <CollectWebConfigsToTransformDependsOn>
+      $(OnBeforeCollectWebConfigsToTransform);
+      $(CollectWebConfigsToTransformDependsOn);
+      PipelineCollectFilesPhase;
+    </CollectWebConfigsToTransformDependsOn>
+  </PropertyGroup>
+
+  <Target Name="CollectWebConfigsToTransform" DependsOnTargets="$(CollectWebConfigsToTransformDependsOn)" Condition="'$(CollectWebConfigsToTransform)' != 'false'">
+    <!-- Gather Sources, Transforms, and Destinations for the TransformXml task -->
+    <ItemGroup Condition="'$(ProjectConfigTransformFileName)'!=''">
+      <WebConfigsToTransform Include="@(FilesForPackagingFromProject)"
+                             Condition="'%(FilesForPackagingFromProject.Filename)%(FilesForPackagingFromProject.Extension)'=='$(ProjectConfigFileName)'">
+        <TransformFile>$([System.String]::new($(WebPublishPipelineProjectDirectory)\$([System.IO.Path]::GetDirectoryName($([System.String]::new(%(DestinationRelativePath)))))).TrimEnd('\'))\$(ProjectConfigTransformFileName)</TransformFile>
+        <TransformOriginalFolder>$(TransformWebConfigIntermediateLocation)\original</TransformOriginalFolder>
+        <TransformFileFolder>$(TransformWebConfigIntermediateLocation)\assist</TransformFileFolder>
+        <TransformOutputFile>$(TransformWebConfigIntermediateLocation)\transformed\%(DestinationRelativePath)</TransformOutputFile>
+        <TransformScope>$([System.IO.Path]::GetFullPath($(WPPAllFilesInSingleFolder)\%(DestinationRelativePath)))</TransformScope>
+      </WebConfigsToTransform>
+      <_WebConfigsToTransformOuputs Include="@(WebConfigsToTransform->'%(TransformOutputFile)')" />
+    </ItemGroup>
+    <CallTarget Targets="$(OnAfterCollectWebConfigsToTransform)" RunEachTargetSeparately="False" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!--Target PreTransformWebConfig -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <PreTransformWebConfigDependsOn>
+      CollectWebConfigsToTransform;
+    </PreTransformWebConfigDependsOn>
+  </PropertyGroup>
+
+  <Target Name="PreTransformWebConfig"
+          DependsOnTargets="$(PreTransformWebConfigDependsOn)">
+
+    <ItemGroup>
+      <!-- Gather all the web.config files which do not have a transform file -->
+      <_TempNoTransformWebConfigToTransform Include="@(WebConfigsToTransform)"
+                                            Condition="!Exists(%(TransformFile))" />
+      <!-- Remove all these files -->
+      <WebConfigsToTransform Remove="@(_TempNoTransformWebConfigToTransform)"/>
+    </ItemGroup>
+    
+    <PropertyGroup>
+      <_WebConfigsToTransformOuputsDirectories>@(_WebConfigsToTransformOuputs->'%(RootDir)%(Directory)')</_WebConfigsToTransformOuputsDirectories>
+    </PropertyGroup>
+
+    <ItemGroup>
+      <_WebConfigsToTransformOuputsDirectories Include="$(_WebConfigsToTransformOuputsDirectories)" />
+    </ItemGroup>
+
+    <PropertyGroup>
+      <_MessageArguments>@(WebConfigsToTransform->'%(DestinationRelativePath)', ', ')</_MessageArguments>
+    </PropertyGroup>
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_FoundApplicationConfigForTransformation"
+      ArgumentCount="1"
+      Arguments="$(_MessageArguments)"
+      LogType="Message"
+      Condition="'$(_MessageArguments)'!=''"/>
+
+    <!-- Make sure required directories exist -->
+    <MakeDir Directories="@(_WebConfigsToTransformOuputsDirectories)" Condition="!Exists(%(Identity))"/>
+
+    <PropertyGroup>
+      <_WebConfigTransformOutput>@(WebConfigsToTransform->'%(TransformOutputFile)')</_WebConfigTransformOutput>
+      <_WebConfigTransformOutput Condition="$(UseParameterizeToTransformWebConfig)">$(_WebConfigTransformOutput);$(_WebConfigTransformOutputParametersFile)</_WebConfigTransformOutput>
+    </PropertyGroup>
+
+    <!-- Remove the output file if there is change on $(UseParameterizeToTransformWebConfig)-->
+    <Delete Files="@(WebConfigsToTransform->'%(TransformOutputFile)');$(_WebConfigTransformOutputParametersFile)"
+            Condition="(!$(UseParameterizeToTransformWebConfig) And Exists($(_WebConfigTransformOutputParametersFile))) 
+                       Or ($(UseParameterizeToTransformWebConfig) And !Exists($(_WebConfigTransformOutputParametersFile)))"
+            ContinueOnError="true"/>
+
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert) And ('@(WebConfigsToTransform)'!='') And !%(Exclude)"
+                      Encoding="utf-8"
+                      Overwrite="True"
+                      File="$(PackageLogDir)\PreTransformWebConfig.Log"
+                      Lines="@(WebConfigsToTransform->' 
+           Transforming  input: %(Identity) 
+                      with:  %(TransformFile)
+                      output: %(TransformOutputFile)
+                      ')" />
+
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert)"
+                      Encoding="utf-8"
+                      Overwrite="False"
+                      File="$(PackageLogDir)\PreTransformWebConfig.Log"
+                      Lines="_WebConfigTransformOutput: $(_WebConfigTransformOutput)" />
+
+    <!-- Copy the original web.config -->
+    <CopyPipelineFiles PipelineItems="@(WebConfigsToTransform)"
+                           SourceDirectory="$(WebPublishPipelineProjectDirectory)"
+                           TargetDirectory="%(TransformOriginalFolder)"
+                           SkipMetadataExcludeTrueItems="True"
+                           UpdateItemSpec="False"
+                           DeleteItemsMarkAsExcludeTrue ="True"
+                       Condition="'@(WebConfigsToTransform)' != ''">
+      <Output TaskParameter="UpdatedPipelineItems" ItemName="_UpdatedWebConfigsToTransform"/>
+    </CopyPipelineFiles>
+
+    <!-- Delete the updated web.config files -->
+    <Delete Files="@(_UpdatedWebConfigsToTransform->'%(TransformOutputFile)')" />
+
+    <!--Copy the transform file-->
+    <CopyPipelineFiles PipelineItems="@(WebConfigsToTransform->'%(TransformFile)')"
+                           SourceDirectory="$(WebPublishPipelineProjectDirectory)"
+                           TargetDirectory="%(TransformFileFolder)"
+                           SkipMetadataExcludeTrueItems="True"
+                           UpdateItemSpec="False"
+                           DeleteItemsMarkAsExcludeTrue ="True"
+                       Condition="'@(WebConfigsToTransform)' != ''">
+      <Output TaskParameter="UpdatedPipelineItems" ItemName="_UpdatedWebConfigsTransformFile"/>
+    </CopyPipelineFiles>
+
+    <!-- Delete the updated web.config files -->
+    <Delete Files="@(_UpdatedWebConfigsTransformFile->'%(TransformOutputFile)')" />
+  </Target>
+
+  <!--********************************************************************-->
+  <!--Target TransformWebConfigCore -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <TransformWebConfigCoreDependsOn>
+      PreTransformWebConfig;
+    </TransformWebConfigCoreDependsOn>
+  </PropertyGroup>
+
+  <Target Name="TransformWebConfigCore"
+          DependsOnTargets="$(TransformWebConfigCoreDependsOn)"
+          Inputs="@(WebConfigsToTransform);%(TransformFile)"
+          Outputs="$(_WebConfigTransformOutput)"
+          Condition="@(WebConfigsToTransform)!='' And $(TransformWebConfigEnabled) And !$(UseParameterizeToTransformWebConfig)">
+
+    <!-- Execute transformations -->
+    <TransformXml Source="@(WebConfigsToTransform)"
+                  Transform="%(TransformFile)"
+                  Destination="%(TransformOutputFile)"
+                  Condition="!%(Exclude)"
+                  StackTrace="$(TransformWebConfigStackTraceEnabled)"
+                  SourceRootPath="$(WebPublishPipelineSourceRootDirectory)"
+                  TransformRootPath="$(WebPublishPipelineTransformRootDirectory)"/>
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!--Target ParameterizeTransformWebConfigCore -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <ParameterizeTransformWebConfigCoreDependsOn>
+      PreTransformWebConfig;
+    </ParameterizeTransformWebConfigCoreDependsOn>
+  </PropertyGroup>
+  <Target Name="ParameterizeTransformWebConfigCore"
+          DependsOnTargets="$(TransformWebConfigCoreDependsOn)"
+          Inputs="@(WebConfigsToTransform);%(TransformFile)"
+          Outputs="%(TransformOutputFile)"
+          Condition="$(TransformWebConfigEnabled) And $(UseParameterizeToTransformWebConfig)">
+
+    <!-- Remove the output files -->
+    <Delete Files="@(WebConfigsToTransform->'%(TransformOutputFile)');$(_WebConfigTransformOutputParametersFile)" />
+
+    <!-- Execute transformations -->
+    <ParameterizeTransformXml
+      Source="@(WebConfigsToTransform)"
+      IsSourceAFile="True"
+      Transform="%(TransformFile)"
+      IsTransformAFile="True"
+      Destination="%(TransformOutputFile)"
+      IsDestinationAFile="True"
+      Scope="%(TransformScope)"
+      EnableTokenizeParameters="True"
+      UseXpathToFormParameter="$(ParameterizeTransformXmlUseXPath)"
+      StackTrace="$(TransformWebConfigStackTraceEnabled)"
+      SourceRootPath="$(WebPublishPipelineSourceRootDirectory)"
+      TransformRootPath="$(WebPublishPipelineTransformRootDirectory)"
+      Condition="!%(Exclude)">
+      <!-- Created the DeclareParameters for later after DB import is included-->
+      <Output TaskParameter="DeclareParameters" ItemName="_ParameterizeTransformWebConfig"/>
+    </ParameterizeTransformXml>
+
+
+    <!-- Set GenerateFileEvenIfEmpty to true to make sure incremental build works-->
+    <ExportParametersFile
+      Parameters="@(_ParameterizeTransformWebConfig)"
+      DeclareParameterFile="$(_WebConfigTransformOutputParametersFile)"
+      GenerateFileEvenIfEmpty="True"
+      />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!--Target PostTransformWebConfig -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <PostTransformWebConfigDependsOn>
+      TransformWebConfigCore;
+      ParameterizeTransformWebConfigCore;
+    </PostTransformWebConfigDependsOn>
+  </PropertyGroup>
+
+  <Target Name="PostTransformWebConfig"
+          DependsOnTargets="$(PostTransformWebConfigDependsOn)">
+
+    <ItemGroup>
+      <!-- Remove untransformed Web.configs from the pipeline -->
+      <FilesForPackagingFromProject Remove="@(WebConfigsToTransform)" Condition="'@(WebConfigsToTransform)'!='' And !%(WebConfigsToTransform.Exclude) And Exists(%(WebConfigsToTransform.TransformOutputFile))"/>
+      <!-- Add the transformed Web.configs at the new loction to the pipeline-->
+      <FilesForPackagingFromProject Include="@(WebConfigsToTransform->'%(TransformOutputFile)')" Condition="'@(WebConfigsToTransform)'!='' And !%(WebConfigsToTransform.Exclude) And Exists(%(WebConfigsToTransform.TransformOutputFile))"/>
+    </ItemGroup>
+
+    <GetPublishingLocalizedString
+       Importance="High"
+       Condition="'@(WebConfigsToTransform)'!='' And !%(WebConfigsToTransform.Exclude) And Exists(%(WebConfigsToTransform.TransformOutputFile))"
+       ID="PublishLocalizedString_TransformConfigUsingTransformFileToTransformOutputFile"
+       ArgumentCount="3"
+       Arguments="@(WebConfigsToTransform->'%(Identity)');%(TransformFile); %(TransformOutputFile)"
+       LogType="Message" />
+    <!-- "Transformed @(WebConfigsToTransform) using %(TransformFile) into %(TransformOutputFile)" />-->
+
+    <ImportParametersFile  Files="$(_WebConfigTransformOutputParametersFile)"
+                           DisableEscapeMSBuildVariable="$(ImportParametersFile_DisableEscapeMSBuildVariable)"
+                           Condition="$(UseParameterizeToTransformWebConfig) and Exists($(_WebConfigTransformOutputParametersFile))">
+      <Output TaskParameter="Result" ItemName="_ImportParameterizeTransformWebConfig"/>
+    </ImportParametersFile>
+
+    <ItemGroup>
+      <MsDeployDeclareParameters Include="@(_ImportParameterizeTransformWebConfig)"
+                                 Condition="!$(DisableAllVSGeneratedMSDeployParameter) And '%(_ImportParameterizeTransformWebConfig.Identity)' !=''">
+        <Value>%(_ImportParameterizeTransformWebConfig.DefaultValue)</Value>
+        <Priority>$(UserWebConfigParametersPriority)</Priority>
+      </MsDeployDeclareParameters>
+    </ItemGroup>
+
+    <MakeDir Condition="$(EnablePackageProcessLoggingAndAssert) And !Exists('$(PackageLogDir)')"
+             Directories="$(PackageLogDir)" />
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert)"
+                      Encoding="utf-8"
+                      File="$(PackageLogDir)\AfterTransformWebConfig.txt"
+                      Lines="@(FilesForPackagingFromProject->'
+                      From:%(Identity) 
+                      DestinationRelativePath:%(DestinationRelativePath) 
+                      Exclude:%(Exclude) 
+                      FromTarget:%(FromTarget) 
+                      Category:%(Category)
+                      ProjectFileType:%(ProjectFileType)')" Overwrite="True" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!--Target MarkWebConfigAssistFilesAsExclude -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <MarkWebConfigAssistFilesAsExcludeDependsOn>
+      $(OnBeforeMarkWebConfigAssistFilesAsExclude);
+      $(MarkWebConfigAssistFilesAsExcludeDependsOn);
+    </MarkWebConfigAssistFilesAsExcludeDependsOn>
+  </PropertyGroup>
+
+  <Target Name="MarkWebConfigAssistFilesAsExclude"
+          DependsOnTargets="$(MarkWebConfigAssistFilesAsExcludeDependsOn)"
+          Condition="'$(MarkWebConfigAssistFilesAsExclude)' != 'false'">
+
+    <ItemGroup Condition="'$(ProjectConfigFileName)' != '' ">
+      <_AllProjectConfigsInFiles Include="@(FilesForPackagingFromProject)"
+                             Condition="'%(FilesForPackagingFromProject.Filename)%(FilesForPackagingFromProject.Extension)'=='$(ProjectConfigFileName)'" />
+    </ItemGroup>
+
+
+      <!-- Mark all the assistent file whose DependsOn is web.config to Exclude -->
+    <FilterByItems PipelineItems="@(FilesForPackagingFromProject)"
+                   SourceMetadataName="DependentUpon"
+                   FilterMetadataName="DestinationRelativePath"
+                 Filter="@(_AllProjectConfigsInFiles)"
+                 Condition="$(ExcludeTransformAssistFilesFromPublish)"
+                   >
+      <Output TaskParameter="InFilter" ItemName="_NeedtoMarkasExclude_ConfigAssistFiles"/>
+    </FilterByItems>
+
+    <ItemGroup>
+      <!-- Mark all the assistent file whose DependsOn is web.config to Exclude -->
+      <FilesForPackagingFromProject Remove="@(_NeedtoMarkasExclude_ConfigAssistFiles)" Condition="$(ExcludeTransformAssistFilesFromPublish)">
+      </FilesForPackagingFromProject>
+      <FilesForPackagingFromProject Include="@(_NeedtoMarkasExclude_ConfigAssistFiles)" Condition="$(ExcludeTransformAssistFilesFromPublish)">
+        <Exclude>True</Exclude>
+      </FilesForPackagingFromProject>
+    </ItemGroup>
+    
+    <CallTarget Targets="$(OnAfterMarkWebConfigAssistFilesAsExclude)" RunEachTargetSeparately="False" />
+  </Target>
+
+  <!--********************************************************************-->
+  <!--Target ProfileTransformWebConfig -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <ProfileTransformWebConfigBeforeTargets>
+      $(ProfileTransformWebConfigBeforeTargets);
+      MarkWebConfigAssistFilesAsExclude;
+    </ProfileTransformWebConfigBeforeTargets>
+    <ProfileTransformWebConfigAfterTargets>
+      $(ProfileTransformWebConfigAfterTargets);
+      TransformWebConfig;
+    </ProfileTransformWebConfigAfterTargets>
+    <ProfileTransformWebConfigDependsOn>
+      $(OnBeforeProfileTransformWebConfig);
+      $(ProfileTransformWebConfigDependsOn);
+      PreProfileTransformWebConfig;
+      ProfileTransformWebConfigCore;
+      ParameterizeProfileTransformWebConfigCore;
+      PostProfileTransformWebConfig;
+    </ProfileTransformWebConfigDependsOn>
+  </PropertyGroup>
+
+  <Target Name="ProfileTransformWebConfig"
+          DependsOnTargets="$(ProfileTransformWebConfigDependsOn)"
+          Condition="'$(ProfileTransformWebConfig)' != 'false'  And '$(PublishProfileName)' != ''"
+          BeforeTargets="$(ProfileTransformWebConfigBeforeTargets)"
+          AfterTargets="$(ProfileTransformWebConfigAfterTargets)">
+
+    <CallTarget Targets="$(OnAfterProfileTransformWebConfig)" RunEachTargetSeparately="False" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!--Target CollectFilesForProfileTransformWebConfigs -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <CollectFilesForProfileTransformWebConfigsDependsOn>
+      $(OnBeforeCollectFilesForProfileTransformWebConfigs);
+      $(CollectFilesForProfileTransformWebConfigsDependsOn);
+      PipelineCollectFilesPhase;
+    </CollectFilesForProfileTransformWebConfigsDependsOn>
+  </PropertyGroup>
+
+  <Target Name="CollectFilesForProfileTransformWebConfigs" DependsOnTargets="$(CollectFilesForProfileTransformWebConfigsDependsOn)" Condition="'$(CollectFilesForProfileTransformWebConfigs)' != 'false' And '$(PublishProfileName)' != ''">
+
+    <!-- Gather Sources, Transforms, and Destinations for the TransformXml task -->
+    <ItemGroup Condition="'$(ProjectProfileTransformFileName)'!=''">
+      <ProfileWebConfigsToTransform Include="@(FilesForPackagingFromProject)"
+                             Condition="'%(FilesForPackagingFromProject.Filename)%(FilesForPackagingFromProject.Extension)'=='$(ProjectConfigFileName)'">
+        <TransformFile>$(WebPublishPipelineProjectDirectory)\$([System.IO.Path]::GetDirectoryName($([System.String]::new(%(DestinationRelativePath)))))\$(ProjectProfileTransformFileName)</TransformFile>
+        <TransformOriginalFolder>$(ProfileTransformWebConfigIntermediateLocation)\original</TransformOriginalFolder>
+        <TransformFileFolder>$(ProfileTransformWebConfigIntermediateLocation)\assist</TransformFileFolder>
+        <TransformOutputFile>$(ProfileTransformWebConfigIntermediateLocation)\transformed\%(DestinationRelativePath)</TransformOutputFile>
+        <TransformScope>$([System.IO.Path]::GetFullPath($(WPPAllFilesInSingleFolder)\%(DestinationRelativePath)))</TransformScope>
+      </ProfileWebConfigsToTransform>
+      <_ProfileWebConfigsToTransformOuputs Include="@(ProfileWebConfigsToTransform->'%(TransformOutputFile)')" />
+    </ItemGroup>
+    <CallTarget Targets="$(OnAfterCollectFilesForProfileTransformWebConfigs)" RunEachTargetSeparately="False" />
+  </Target>
+
+  <!--********************************************************************-->
+  <!--Target PreProfileTransformWebConfig -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <PreProfileTransformWebConfigDependsOn>
+      CollectFilesForProfileTransformWebConfigs;
+    </PreProfileTransformWebConfigDependsOn>
+  </PropertyGroup>
+
+  <Target Name="PreProfileTransformWebConfig"
+          DependsOnTargets="$(PreProfileTransformWebConfigDependsOn)">
+
+
+    <ItemGroup>
+      <!-- Gather all the web.config which doesn't have the transform file -->
+      <_TempNoTrnasformFileForProfileWebConfigsToTransform Include="@(ProfileWebConfigsToTransform)"
+                                            Condition="!Exists(%(TransformFile))" />
+
+      <!-- Remove all the web.config doesn't have transform file -->
+      <ProfileWebConfigsToTransform Remove="@(_TempNoTrnasformFileForProfileWebConfigsToTransform)"/>
+    </ItemGroup>
+
+    <PropertyGroup>
+      <_ProfileWebConfigsToTransformOuputsDirectories>@(_ProfileWebConfigsToTransformOuputs->'%(RootDir)%(Directory)')</_ProfileWebConfigsToTransformOuputsDirectories>
+    </PropertyGroup>
+
+    <ItemGroup>
+      <_ProfileWebConfigsToTransformOuputsDirectories Include="$(_ProfileWebConfigsToTransformOuputsDirectories)" />
+    </ItemGroup>
+
+    <!-- Debugging messages -->
+    <PropertyGroup>
+      <_MessageArguments>@(ProfileWebConfigsToTransform->'%(DestinationRelativePath)', ', ')</_MessageArguments>
+    </PropertyGroup>
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_FoundApplicationConfigForTransformation"
+      ArgumentCount="1"
+      Arguments="$(_MessageArguments)"
+      LogType="Message" 
+      Condition="'$(_MessageArguments)'!=''"/>
+
+    <!-- Make sure required directories exist -->
+    <MakeDir Directories="@(_ProfileWebConfigsToTransformOuputsDirectories)" Condition="!Exists(%(Identity))"/>
+
+    <PropertyGroup>
+      <_ProfileWebConfigTransformOutput>@(ProfileWebConfigsToTransform->'%(TransformOutputFile)')</_ProfileWebConfigTransformOutput>
+      <_ProfileWebConfigTransformOutput Condition="$(UseParameterizeToProfileTransformWebConfig)">$(_ProfileWebConfigTransformOutput);$(_ProfileWebConfigTransformOutputParametersFile)</_ProfileWebConfigTransformOutput>
+    </PropertyGroup>
+
+    <!-- Remove the output file if there is change on $(UseParameterizeToProfileTransformWebConfig)-->
+    <Delete Files="@(ProfileWebConfigsToTransform->'%(TransformOutputFile)');$(_ProfileWebConfigTransformOutputParametersFile)"
+            Condition="(!$(UseParameterizeToProfileTransformWebConfig) And Exists($(_ProfileWebConfigTransformOutputParametersFile))) 
+                       Or ($(UseParameterizeToProfileTransformWebConfig) And !Exists($(_ProfileWebConfigTransformOutputParametersFile)))"
+            ContinueOnError="true"/>
+
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert) And ('@(ProfileWebConfigsToTransform)'!='') And !%(Exclude)"
+                      Encoding="utf-8"
+                      Overwrite="True"
+                      File="$(PackageLogDir)\PreProfileTransformWebConfig.Log"
+                      Lines="@(ProfileWebConfigsToTransform->' 
+           Transforming  input: %(Identity) 
+                      with:  %(TransformFile)
+                      output: %(TransformOutputFile)
+                      ')" />
+
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert)"
+                      Encoding="utf-8"
+                      Overwrite="False"
+                      File="$(PackageLogDir)\PreProfileTransformWebConfig.Log"
+                      Lines="_ProfileWebConfigTransformOutput: $(_ProfileWebConfigTransformOutput)" />
+
+    <!-- Copy the original web.config -->
+    <CopyPipelineFiles PipelineItems="@(ProfileWebConfigsToTransform)"
+                           SourceDirectory="$(WebPublishPipelineProjectDirectory)"
+                           TargetDirectory="%(TransformOriginalFolder)"
+                           SkipMetadataExcludeTrueItems="True"
+                           UpdateItemSpec="False"
+                           DeleteItemsMarkAsExcludeTrue ="True"
+                           Condition="'@(ProfileWebConfigsToTransform)' != ''">
+      <Output TaskParameter="UpdatedPipelineItems" ItemName="_UpdatedProfileWebConfigsToTransform"/>
+    </CopyPipelineFiles>
+
+    <!-- Delete those web.config have been updated if existed-->
+    <Delete Files="@(_UpdatedProfileWebConfigsToTransform->'%(TransformOutputFile)')" />
+
+
+    <!--Copy the TransformFile-->
+    <CopyPipelineFiles PipelineItems="@(ProfileWebConfigsToTransform->'%(TransformFile)')"
+                           SourceDirectory="$(WebPublishPipelineProjectDirectory)"
+                           TargetDirectory="%(TransformFileFolder)"
+                           SkipMetadataExcludeTrueItems="True"
+                           UpdateItemSpec="False"
+                           DeleteItemsMarkAsExcludeTrue ="True"
+                           Condition="'@(ProfileWebConfigsToTransform)' != ''">
+      <Output TaskParameter="UpdatedPipelineItems" ItemName="_UpdatedProfileWebConfigsTransformFile"/>
+    </CopyPipelineFiles>
+
+    <!-- Delete those web.config have been updated if existed-->
+    <Delete Files="@(_UpdatedProfileWebConfigsTransformFile->'%(TransformOutputFile)')" />
+  </Target>
+
+  <!--Target ProfileTransformWebConfigCore -->
+  <PropertyGroup>
+    <ProfileTransformWebConfigCoreDependsOn>
+      PreProfileTransformWebConfig;
+    </ProfileTransformWebConfigCoreDependsOn>
+  </PropertyGroup>
+
+  <Target Name="ProfileTransformWebConfigCore"
+          DependsOnTargets="$(ProfileTransformWebConfigCoreDependsOn)"
+          Inputs="@(ProfileWebConfigsToTransform);%(TransformFile)"
+          Outputs="$(_ProfileWebConfigTransformOutput)"
+          Condition="'@(ProfileWebConfigsToTransform)' != '' And $(ProfileTransformWebConfigEnabled) And !$(UseParameterizeToProfileTransformWebConfig)">
+
+    <!-- Execute transformations -->
+    <TransformXml Source="@(ProfileWebConfigsToTransform)"
+                  Transform="%(TransformFile)"
+                  Destination="%(TransformOutputFile)"
+                  Condition="!%(Exclude)"
+                  StackTrace="$(ProfileTransformWebConfigStackTraceEnabled)"
+                  SourceRootPath="$(WebPublishPipelineSourceRootDirectory)"
+                  TransformRootPath="$(WebPublishPipelineTransformRootDirectory)"/>
+
+  </Target>
+
+  <!--Target ParameterizeProfileTransformWebConfigCore -->
+  <PropertyGroup>
+    <ParameterizeProfileTransformWebConfigCoreDependsOn>
+      PreProfileTransformWebConfig;
+    </ParameterizeProfileTransformWebConfigCoreDependsOn>
+  </PropertyGroup>
+  <Target Name="ParameterizeProfileTransformWebConfigCore"
+          DependsOnTargets="$(ProfileTransformWebConfigCoreDependsOn)"
+          Inputs="@(ProfileWebConfigsToTransform);%(TransformFile)"
+          Outputs="%(TransformOutputFile)"
+          Condition="$(ProfileTransformWebConfigEnabled) And $(UseParameterizeToProfileTransformWebConfig)">
+
+    <!-- Remove all the output file -->
+    <Delete Files="@(ProfileWebConfigsToTransform->'%(TransformOutputFile)');$(_ProfileWebConfigTransformOutputParametersFile)" />
+
+    <!-- Execute transformations -->
+    <ParameterizeTransformXml
+      Source="@(ProfileWebConfigsToTransform)"
+      IsSourceAFile="True"
+      Transform="%(TransformFile)"
+      IsTransformAFile="True"
+      Destination="%(TransformOutputFile)"
+      IsDestinationAFile="True"
+      Scope="%(TransformScope)"
+      EnableTokenizeParameters="True"
+      UseXpathToFormParameter="$(ParameterizeTransformXmlUseXPath)"
+      StackTrace="$(ProfileTransformWebConfigStackTraceEnabled)"
+      SourceRootPath="$(WebPublishPipelineSourceRootDirectory)"
+      TransformRootPath="$(WebPublishPipelineTransformRootDirectory)"
+      Condition="!%(Exclude)">
+      <!-- Created the DeclareParameters for later after DB import is included-->
+      <Output TaskParameter="DeclareParameters" ItemName="_ParameterizeProfileTransformWebConfig"/>
+    </ParameterizeTransformXml>
+
+
+    <!-- Set GenerateFileEvenIfEmpty to true to make sure incremental build works-->
+    <ExportParametersFile
+      Parameters="@(_ParameterizeProfileTransformWebConfig)"
+      DeclareParameterFile="$(_ProfileWebConfigTransformOutputParametersFile)"
+      GenerateFileEvenIfEmpty="True"
+      />
+  </Target>
+
+  <!--********************************************************************-->
+  <!--Target PostProfileTransformWebConfig -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <PostProfileTransformWebConfigDependsOn>
+      ProfileTransformWebConfigCore;
+      ParameterizeProfileTransformWebConfigCore;
+    </PostProfileTransformWebConfigDependsOn>
+  </PropertyGroup>
+
+  <Target Name="PostProfileTransformWebConfig"
+          DependsOnTargets="$(PostProfileTransformWebConfigDependsOn)">
+
+    <ItemGroup>
+      <!--Remove untransformed Web.configs from the pipeline-->
+      <FilesForPackagingFromProject Remove="@(ProfileWebConfigsToTransform)" Condition="'@(ProfileWebConfigsToTransform)'!='' And !%(ProfileWebConfigsToTransform.Exclude) And Exists(%(ProfileWebConfigsToTransform.TransformOutputFile))"/>
+      <!--Add the transformed Web.configs at the new loction to the pipeline-->
+      <FilesForPackagingFromProject Include="@(ProfileWebConfigsToTransform->'%(TransformOutputFile)')" Condition="'@(ProfileWebConfigsToTransform)'!='' And !%(ProfileWebConfigsToTransform.Exclude) And Exists(%(ProfileWebConfigsToTransform.TransformOutputFile))"/>
+    </ItemGroup>
+
+
+    <GetPublishingLocalizedString
+       Importance="High"
+       Condition="'@(ProfileWebConfigsToTransform)'!='' And !%(ProfileWebConfigsToTransform.Exclude) And Exists(%(ProfileWebConfigsToTransform.TransformOutputFile))"
+       ID="PublishLocalizedString_TransformConfigUsingTransformFileToTransformOutputFile"
+       ArgumentCount="3"
+       Arguments="@(ProfileWebConfigsToTransform->'%(Identity)');%(TransformFile); %(TransformOutputFile)"
+       LogType="Message" />
+    <!-- "Transformed @(ProfileWebConfigsToTransform) using %(TransformFile) into %(TransformOutputFile)" />-->
+
+    <ImportParametersFile  Files="$(_ProfileWebConfigTransformOutputParametersFile)" 
+                           DisableEscapeMSBuildVariable="$(ImportParametersFile_DisableEscapeMSBuildVariable)"
+                           Condition="$(UseParameterizeToProfileTransformWebConfig) and Exists($(_ProfileWebConfigTransformOutputParametersFile))">
+      <Output TaskParameter="Result" ItemName="_ImportParameterizeProfileTransformWebConfig"/>
+    </ImportParametersFile>
+
+    <ItemGroup>
+      <MsDeployDeclareParameters Include="@(_ImportParameterizeProfileTransformWebConfig)"
+                                 Condition="!$(DisableAllVSGeneratedMSDeployParameter) And '%(_ImportParameterizeProfileTransformWebConfig.Identity)' !=''">
+        <Value>%(_ImportParameterizeProfileTransformWebConfig.DefaultValue)</Value>
+        <Priority>$(UserWebConfigParametersPriority)</Priority>
+      </MsDeployDeclareParameters>
+    </ItemGroup>
+
+    <MakeDir Condition="$(EnablePackageProcessLoggingAndAssert) And !Exists('$(PackageLogDir)')"
+             Directories="$(PackageLogDir)" />
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert)"
+                      Encoding="utf-8"
+                      File="$(PackageLogDir)\AfterProfileTransformWebConfig.txt"
+                      Lines="@(FilesForPackagingFromProject->'
+                      From:%(Identity) 
+                      DestinationRelativePath:%(DestinationRelativePath) 
+                      Exclude:%(Exclude) 
+                      FromTarget:%(FromTarget) 
+                      Category:%(Category)
+                      ProjectFileType:%(ProjectFileType)')" Overwrite="True" />
+  </Target>
+
+  <!--********************************************************************-->
+  <!-- Target PreInsertAdditionalWebCofigConnectionStrings -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <PreInsertAdditionalWebCofigConnectionStringsDependsOn>
+      ProfileTransformWebConfig;
+    </PreInsertAdditionalWebCofigConnectionStringsDependsOn>
+  </PropertyGroup>
+
+  <Target Name="PreInsertAdditionalWebCofigConnectionStrings"
+          DependsOnTargets="$(PreInsertAdditionalWebCofigConnectionStringsDependsOn)">
+    <ItemGroup>
+      <_WebConfigsToInsertAdditionalCS Include="@(FilesForPackagingFromProject)"
+                             Condition="$(InsertAdditionalWebConfigConnectionStringOnlyInRoot) 
+                                         And '%(FilesForPackagingFromProject.Filename)%(FilesForPackagingFromProject.Extension)'=='$(ProjectConfigFileName)' 
+                                         And !%(FilesForPackagingFromProject.Exclude)
+                                         And '%(DestinationRelativePath)' == '$(ProjectConfigFileName)'">
+        <TransformOriginalFolder>$(InsertAdditionalWebCofigConnectionStringsLocation)\original</TransformOriginalFolder>
+        <TransformFileFolder>$(InsertAdditionalWebCofigConnectionStringsLocation)\assist</TransformFileFolder>
+        <TransformOutputFile>$(InsertAdditionalWebCofigConnectionStringsLocation)\transformed\%(DestinationRelativePath)</TransformOutputFile>
+        <TransformScope>$([System.IO.Path]::GetFullPath($(WPPAllFilesInSingleFolder)\%(DestinationRelativePath)))</TransformScope>
+      </_WebConfigsToInsertAdditionalCS>
+      <_WebConfigsToInsertAdditionalCS Include="@(FilesForPackagingFromProject)"
+                             Condition="!$(InsertAdditionalWebConfigConnectionStringOnlyInRoot) 
+                                         And '%(FilesForPackagingFromProject.Filename)%(FilesForPackagingFromProject.Extension)'=='$(ProjectConfigFileName)' 
+                                         And !%(FilesForPackagingFromProject.Exclude)">
+        <TransformOriginalFolder>$(InsertAdditionalWebCofigConnectionStringsLocation)\original</TransformOriginalFolder>
+        <TransformFileFolder>$(InsertAdditionalWebCofigConnectionStringsLocation)\assist</TransformFileFolder>
+        <TransformOutputFile>$(InsertAdditionalWebCofigConnectionStringsLocation)\transformed\%(DestinationRelativePath)</TransformOutputFile>
+        <TransformScope>$([System.IO.Path]::GetFullPath($(WPPAllFilesInSingleFolder)\%(DestinationRelativePath)))</TransformScope>
+      </_WebConfigsToInsertAdditionalCS>
+        <_WebConfigsToInsertAdditionalCSOuputFiles Include="@(_WebConfigsToInsertAdditionalCS->'%(TransformOutputFile)')">
+      </_WebConfigsToInsertAdditionalCSOuputFiles>
+    </ItemGroup>
+
+    <PropertyGroup>
+      <_WebConfigsToInsertAdditionalCSOuputDirectories>@(_WebConfigsToInsertAdditionalCSOuputFiles->'%(RootDir)%(Directory)')</_WebConfigsToInsertAdditionalCSOuputDirectories>
+      <_WebConfigsToInsertAdditionalCSOuput>@(_WebConfigsToInsertAdditionalCS->'%(TransformOutputFile)');</_WebConfigsToInsertAdditionalCSOuput>
+    </PropertyGroup>
+
+    <ItemGroup>
+      <_WebConfigsToInsertAdditionalCSOuputDirectories Include="$(_WebConfigsToInsertAdditionalCSOuputDirectories)" />
+    </ItemGroup>
+
+    <MakeDir Directories="@(_WebConfigsToInsertAdditionalCSOuputDirectories)" Condition="!Exists(%(Identity))"/>
+
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert) And ('@(_WebConfigsToInsertAdditionalCS)'!='') And !%(Exclude)"
+                      Encoding="utf-8"
+                      Overwrite="True"
+                      File="$(PackageLogDir)\PreInsertAdditionalWebCofigConnectionStrings.Log"
+                      Lines="@(_WebConfigsToInsertAdditionalCS->'
+    InsertAdditionalCSTransform   input: %(Identity) 
+                      output: %(TransformOutputFile)
+                      From:%(Identity) 
+                      DestinationRelativePath:%(DestinationRelativePath) 
+                      Exclude:%(Exclude) 
+                      FromTarget:%(FromTarget) 
+                      Category:%(Category)
+                      ProjectFileType:%(ProjectFileType)
+                      ')" />
+    
+    <!--Copy the original web.config-->
+    <CopyPipelineFiles PipelineItems="@(_WebConfigsToInsertAdditionalCS)"
+                           SourceDirectory="$(WebPublishPipelineProjectDirectory)"
+                           TargetDirectory="%(TransformOriginalFolder)"
+                           SkipMetadataExcludeTrueItems="True"
+                           UpdateItemSpec="False"
+                           DeleteItemsMarkAsExcludeTrue ="True"
+                       Condition="'@(_WebConfigsToInsertAdditionalCS)' != ''">
+      <Output TaskParameter="UpdatedPipelineItems" ItemName="_UpdatedWebConfigsToInsertAdditionalCS"/>
+    </CopyPipelineFiles>
+
+    <!-- Delete those web.config have been updated if existed-->
+    <Delete Files="@(_UpdatedWebConfigsToInsertAdditionalCS->'%(TransformOutputFile)')" />
+
+    <ItemGroup>
+      <_InsertAdditionalConnectionStringNamesPrepare Include="@(_ConnectionStringsToInsert)">
+        <ConnectionStringName>%(_ConnectionStringsToInsert.Identity)</ConnectionStringName>
+        <ConnectionString>%(_ConnectionStringsToInsert.Identity)_ConnectionString</ConnectionString>
+      </_InsertAdditionalConnectionStringNamesPrepare>
+      <_InsertAdditionalConnectionStringNames Include="@(_InsertAdditionalConnectionStringNamesPrepare)">
+        <TransformXMLFragement>
+          &lt;add
+          name=&quot;%(_InsertAdditionalConnectionStringNamesPrepare.ConnectionStringName)&quot;&#13;&#10;
+          connectionString=&quot;%(_InsertAdditionalConnectionStringNamesPrepare.ConnectionString)&quot;&#13;&#10;
+          providerName=&quot;$(InsertAdditionalWebConfigConnectionStringProviderName)&quot;&#13;&#10;
+          xdt:Transform=&quot;InsertIfMissing&quot; &#13;&#10;
+          xdt:Locator=&quot;Match(name)&quot;&#13;&#10;
+          xdt:SupressWarnings=&quot;True&quot;&#13;&#10;
+          /&gt;
+        </TransformXMLFragement>
+      </_InsertAdditionalConnectionStringNames>
+    </ItemGroup>
+
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert) And ('@(_InsertAdditionalConnectionStringNames)'!='') "
+                  Encoding="utf-8"
+                  Overwrite="True"
+                  File="$(PackageLogDir)\InsertAdditionalConnectionStringName.Log"
+                  Lines="@(_InsertAdditionalConnectionStringNames->'
+    _InsertAdditionalConnectionStringNames   
+                      TransformXML: %(TransformXML) 
+                      ConnectionString: %(ConnectionString)
+                      TransformXMLFragement: %(TransformXMLFragement)
+                      ')" />
+
+    <PropertyGroup>
+      <_WebConfigsToInsertAdditionalCS_Transform>&lt;?xml version=&quot;1.0&quot;?&gt;
+        &lt;configuration xmlns:xdt=&quot;http://schemas.microsoft.com/XML-Document-Transform&quot;&gt;
+        &lt;connectionStrings xdt:Transform=&quot;InsertIfMissing&quot; xdt:SupressWarnings=&quot;True&quot;&gt;
+        @(_InsertAdditionalConnectionStringNames->'%(TransformXMLFragement)', '')
+        &lt;/connectionStrings&gt;
+        &lt;/configuration&gt;
+      </_WebConfigsToInsertAdditionalCS_Transform>
+    </PropertyGroup>
+    
+  </Target>
+
+  <!--********************************************************************-->
+  <!--Target InsertAdditionalWebCofigConnectionStringsCore -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <InsertAdditionalWebCofigConnectionStringsCoreDependsOn>
+    </InsertAdditionalWebCofigConnectionStringsCoreDependsOn>
+  </PropertyGroup>
+
+  <Target Name="InsertAdditionalWebCofigConnectionStringsCore"
+          Inputs="@(_WebConfigsToInsertAdditionalCS)"
+          Outputs="%(TransformOutputFile)"
+          DependsOnTargets="$(InsertAdditionalWebCofigConnectionStringsCoreDependsOn)">
+
+    <!-- First Delete the output parameter file-->
+    <!-- Remove the output file if there is change on $(UseParameterizeToTransformWebConfig)-->
+    <Delete Files="@(_WebConfigsToInsertAdditionalCS->'%(TransformOutputFile)')"/>
+
+    
+    <PropertyGroup>
+      <_WebConfigToInsertAdditionalCS_Identity>%(_WebConfigsToInsertAdditionalCS.Identity)</_WebConfigToInsertAdditionalCS_Identity>
+      <_WebConfigToInsertAdditionalCS_TransformOutputFile>%(_WebConfigsToInsertAdditionalCS.TransformOutputFile)</_WebConfigToInsertAdditionalCS_TransformOutputFile>
+      <_WebConfigsToInsertAdditionalCS_TransformScope>%(_WebConfigsToInsertAdditionalCS.TransformScope)</_WebConfigsToInsertAdditionalCS_TransformScope>
+    </PropertyGroup>
+
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert)"
+                  Encoding="utf-8"
+                  Overwrite="False"
+                  File="$(PackageLogDir)\InsertAdditionalConnectionStringName.Log"
+                  Lines="_WebConfigToInsertAdditionalCS_Identity: $(_WebConfigToInsertAdditionalCS_Identity) 
+                      _WebConfigToInsertAdditionalCS_TransformOutputFile: $(_WebConfigToInsertAdditionalCS_TransformOutputFile)
+                      _WebConfigsToInsertAdditionalCS_TransformScope: $(_WebConfigsToInsertAdditionalCS_TransformScope)
+                      _WebConfigsToInsertAdditionalCS_Transform: $(_WebConfigsToInsertAdditionalCS_Transform)
+                      " />
+    
+    <!-- Now we use the tokenize transform to auto parameterize the web.config-->
+    <ParameterizeTransformXml
+      Source="$(_WebConfigToInsertAdditionalCS_Identity)"
+      IsSourceAFile="True"
+      Transform="$(_WebConfigsToInsertAdditionalCS_Transform)"
+      IsTransformAFile="False"
+      Destination="$(_WebConfigToInsertAdditionalCS_TransformOutputFile)"
+      IsDestinationAFile="True"
+      Scope="$(_WebConfigsToInsertAdditionalCS_TransformScope)"
+      StackTrace="$(TransformWebConfigStackTraceEnabled)"
+      SourceRootPath="$(WebPublishPipelineSourceRootDirectory)">
+    </ParameterizeTransformXml>
+  </Target>
+
+  <!--********************************************************************-->
+  <!--Target PostInsertAdditionalWebCofigConnectionStrings -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <PostInsertAdditionalWebCofigConnectionStringsDependsOn>
+    </PostInsertAdditionalWebCofigConnectionStringsDependsOn>
+  </PropertyGroup>
+
+  <Target Name="PostInsertAdditionalWebCofigConnectionStrings"
+          DependsOnTargets="$(PostInsertAdditionalWebCofigConnectionStringsDependsOn)">
+
+    <ItemGroup>
+      <!-- Remove untransformed Web.configs from the pipeline -->
+      <FilesForPackagingFromProject Remove="@(_WebConfigsToInsertAdditionalCS)" Condition="'@(_WebConfigsToInsertAdditionalCS)'!='' And !%(_WebConfigsToInsertAdditionalCS.Exclude) And Exists(%(_WebConfigsToInsertAdditionalCS.TransformOutputFile))"/>
+      <!-- Add the transformed Web.configs at the new loction to the pipeline -->
+      <FilesForPackagingFromProject Include="@(_WebConfigsToInsertAdditionalCS->'%(TransformOutputFile)')" Condition="'@(_WebConfigsToInsertAdditionalCS)'!='' And !%(_WebConfigsToInsertAdditionalCS.Exclude) And Exists(%(_WebConfigsToInsertAdditionalCS.TransformOutputFile))"/>
+    </ItemGroup>
+
+    <GetPublishingLocalizedString
+       Importance="High"
+       Condition="'@(_WebConfigsToInsertAdditionalCS)'!='' And !%(_WebConfigsToInsertAdditionalCS.Exclude) And Exists(%(_WebConfigsToInsertAdditionalCS.TransformOutputFile))"
+       ID="PublishLocalizedString_InsertAdditionalConnectionStringTransformConfigToTransformOutputFile"
+       ArgumentCount="2"
+       Arguments="@(_WebConfigsToInsertAdditionalCS->'%(Identity)');%(TransformOutputFile)"
+       LogType="Message" />
+    <!-- "Auto ConnectionString Transformed @(_WebConfigsToInsertAdditionalCS) into %(TransformOutputFile)" />-->
+
+    
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert)"
+                      Encoding="utf-8"
+                      File="$(PackageLogDir)\PostInsertAdditionalWebCofigConnectionStrings.txt"
+                      Lines="@(FilesForPackagingFromProject->'
+                      From:%(Identity) 
+                      DestinationRelativePath:%(DestinationRelativePath) 
+                      Exclude:%(Exclude) 
+                      FromTarget:%(FromTarget) 
+                      Category:%(Category)
+                      ProjectFileType:%(ProjectFileType)')" Overwrite="True" />
+  </Target>
+
+  <!--********************************************************************-->
+  <!--Target InsertAdditionalWebCofigConnectionStrings-->
+  <!--**********************************************************************-->
+  <PropertyGroup>
+    <InsertAdditionalWebCofigConnectionStringsDependsOn>
+      $(OnBeforeInsertAdditionalWebCofigConnectionStrings);
+      $(InsertAdditionalWebCofigConnectionStringsDependsOn);
+      TransformWebConfig;
+      ProfileTransformWebConfig;
+      PreInsertAdditionalWebCofigConnectionStrings;
+      InsertAdditionalWebCofigConnectionStringsCore;
+      PostInsertAdditionalWebCofigConnectionStrings;
+    </InsertAdditionalWebCofigConnectionStringsDependsOn>
+    <InsertAdditionalWebCofigConnectionStringsBeforeTargets>
+      $(InsertAdditionalWebCofigConnectionStringsBeforeTargets);
+      PreAutoParameterizationWebConfigConnectionStrings;
+      AutoParameterizationWebConfigConnectionStrings;
+    </InsertAdditionalWebCofigConnectionStringsBeforeTargets>
+  </PropertyGroup>
+  <Target Name="InsertAdditionalWebCofigConnectionStrings" 
+          DependsOnTargets="$(InsertAdditionalWebCofigConnectionStringsDependsOn)"
+          BeforeTargets="$(InsertAdditionalWebCofigConnectionStringsBeforeTargets)"
+          Condition="$(InsertAdditionalWebCofigConnectionStrings) And '@(_ConnectionStringsToInsert)' != ''">
+
+  </Target>
+
+  <!--********************************************************************-->
+  <!--Target PreAutoParameterizationWebConfigConnectionStrings -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <PreAutoParameterizationWebConfigConnectionStringsDependsOn>
+      PipelineTransformPhase;
+    </PreAutoParameterizationWebConfigConnectionStringsDependsOn>
+  </PropertyGroup>
+
+  <Target Name="PreAutoParameterizationWebConfigConnectionStrings"
+          DependsOnTargets="$(PreAutoParameterizationWebConfigConnectionStringsDependsOn)">
+    <ItemGroup>
+      <_WebConfigsToAutoParmeterizeCS Include="@(FilesForPackagingFromProject)"
+                             Condition="'%(FilesForPackagingFromProject.Filename)%(FilesForPackagingFromProject.Extension)'=='$(ProjectConfigFileName)' And !%(FilesForPackagingFromProject.Exclude)">
+        <TransformOriginalFolder>$(AutoParameterizationWebConfigConnectionStringsLocation)\original</TransformOriginalFolder>
+        <TransformFileFolder>$(AutoParameterizationWebConfigConnectionStringsLocation)\assist</TransformFileFolder>
+        <TransformOutputFile>$(AutoParameterizationWebConfigConnectionStringsLocation)\transformed\%(DestinationRelativePath)</TransformOutputFile>
+        <TransformScope>$([System.IO.Path]::GetFullPath($(WPPAllFilesInSingleFolder)\%(DestinationRelativePath)))</TransformScope>
+      </_WebConfigsToAutoParmeterizeCS>
+      <_WebConfigsToAutoParmeterizeCSOuputFiles Include="@(_WebConfigsToAutoParmeterizeCS->'%(TransformOutputFile)')">
+      </_WebConfigsToAutoParmeterizeCSOuputFiles>
+    </ItemGroup>
+
+    <PropertyGroup>
+      <_WebConfigsToAutoParmeterizeCSOuputDirectories>@(_WebConfigsToAutoParmeterizeCSOuputFiles->'%(RootDir)%(Directory)')</_WebConfigsToAutoParmeterizeCSOuputDirectories>
+      <_WebConfigsToAutoParmeterizeCSOuput>@(_WebConfigsToAutoParmeterizeCS->'%(TransformOutputFile)');$(_WebConfigsToAutoParmeterizeCsTransformOutputParametersFile)</_WebConfigsToAutoParmeterizeCSOuput>
+    </PropertyGroup>
+
+    <ItemGroup>
+      <_WebConfigsToAutoParmeterizeCSOuputDirectories Include="$(_WebConfigsToAutoParmeterizeCSOuputDirectories)" />
+    </ItemGroup>
+
+    <!-- Remove the output file if there is change on $(UseParameterizeToTransformWebConfig)-->
+    <Delete Files="@(_WebConfigsToAutoParmeterizeCS->'%(TransformOutputFile)');$(_WebConfigsToAutoParmeterizeCsTransformOutputParametersFile)"
+            Condition="!Exists($(_WebConfigsToAutoParmeterizeCsTransformOutputParametersFile))"
+            ContinueOnError="true"/>
+
+    <MakeDir Directories="@(_WebConfigsToAutoParmeterizeCSOuputDirectories)" Condition="!Exists(%(Identity))"/>
+
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert) And ('@(_WebConfigsToAutoParmeterizeCS)'!='') And !%(Exclude)"
+                      Encoding="utf-8"
+                      Overwrite="True"
+                      File="$(PackageLogDir)\PreAutoParameterizationWebConfigConnectionStrings.Log"
+                      Lines="@(_WebConfigsToAutoParmeterizeCS->'
+    AutoCSTransform   input: %(Identity) 
+                      output: %(TransformOutputFile)
+                      ')" />
+
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert)"
+                      Encoding="utf-8"
+                      Overwrite="False"
+                      File="$(PackageLogDir)\PreAutoParameterizationWebConfigConnectionStrings.Log"
+                      Lines="_WebConfigsToAutoParmeterizeCsTransformOutputParametersFile: $(_WebConfigsToAutoParmeterizeCsTransformOutputParametersFile)" />
+
+
+    <!--Copy the original web.config-->
+    <CopyPipelineFiles PipelineItems="@(_WebConfigsToAutoParmeterizeCS)"
+                           SourceDirectory="$(WebPublishPipelineProjectDirectory)"
+                           TargetDirectory="%(TransformOriginalFolder)"
+                           SkipMetadataExcludeTrueItems="True"
+                           UpdateItemSpec="False"
+                           DeleteItemsMarkAsExcludeTrue ="True"
+                       Condition="'@(_WebConfigsToAutoParmeterizeCS)' != ''">
+      <Output TaskParameter="UpdatedPipelineItems" ItemName="_UpdatedWebConfigsToAutoParmeterizeCS"/>
+    </CopyPipelineFiles>
+
+    <!-- Delete those web.config have been updated if existed-->
+    <Delete Files="@(_UpdatedWebConfigsToAutoParmeterizeCS->'%(TransformOutputFile)')" />
+
+  </Target>
+
+  <!--********************************************************************-->
+  <!--Target AutoParameterizationWebConfigConnectionStringsCore -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <AutoParameterizationWebConfigConnectionStringsCoreDependsOn>
+    </AutoParameterizationWebConfigConnectionStringsCoreDependsOn>
+  </PropertyGroup>
+
+  <Target Name="AutoParameterizationWebConfigConnectionStringsCore"
+          Inputs="@(_WebConfigsToAutoParmeterizeCS)"
+          Outputs="$(_WebConfigsToAutoParmeterizeCSOuput)"
+          DependsOnTargets="$(AutoParameterizationWebConfigConnectionStringsCoreDependsOn)">
+
+    <!-- First Delete the output parameter file-->
+    <!-- Remove the output file if there is change on $(UseParameterizeToTransformWebConfig)-->
+    <Delete Files="@(_WebConfigsToAutoParmeterizeCS->'%(TransformOutputFile)');$(_WebConfigsToAutoParmeterizeCsTransformOutputParametersFile)"/>
+
+    <GetPublishingLocalizedString
+      ID="PublishLocalizedString_WebConfigConnectionStringParameterDescription">
+      <Output TaskParameter="Result" PropertyName="_PublishLocalizedString_WebConfigConnectionStringParameterDescription" />
+    </GetPublishingLocalizedString>
+
+    <PropertyGroup>
+      <DeployParameterWebConfigConnectionStringName Condition="'$(DeployParameterWebConfigConnectionStringName)'==''">$(DeployParameterPrefix)%24(name)-$(ProjectConfigFileName) Connection String</DeployParameterWebConfigConnectionStringName>
+      <DeployParameterWebConfigConnectionStringDescription Condition="'$(DeployParameterWebConfigConnectionStringDescription)'==''">%24(name) $(_PublishLocalizedString_WebConfigConnectionStringParameterDescription)</DeployParameterWebConfigConnectionStringDescription>
+    </PropertyGroup>
+
+    <!-- Description might have the xml special character, we need to escape it. -->
+    <EscapeXMLString
+      Source="$(DeployParameterWebConfigConnectionStringDescription)" >
+      <Output TaskParameter="Result" PropertyName="_EscapedDeployParameterWebConfigConnectionStringDescription" />
+    </EscapeXMLString>
+
+    <!-- We need another escape otherwise, the following CreateProperty for the transformation  will evaluate it to lost the escape-->
+    <EscapeXMLString
+      Source="$(_EscapedDeployParameterWebConfigConnectionStringDescription)" >
+      <Output TaskParameter="Result" PropertyName="_EscapedDeployParameterWebConfigConnectionStringDescription2" />
+    </EscapeXMLString>
+
+    <!-- First create the Tokenized Transformation in line -->
+    <CreateProperty Value="
+      &lt;?xml version=&quot;1.0&quot;?&gt;
+        &lt;configuration xmlns:xdt=&quot;http://schemas.microsoft.com/XML-Document-Transform&quot;&gt;
+          &lt;connectionStrings&gt;
+            &lt;add
+              connectionString=&quot;{% token='%24(ReplacableToken_%23(parameter)_%23(tokennumber))' xpathlocator='name' parameter='$(DeployParameterWebConfigConnectionStringName)' description='$(_EscapedDeployParameterWebConfigConnectionStringDescription2)' defaultValue='%24(connectionString)' tags='$(MsDeployDatabaseTag)' %}&quot;
+              xdt:Transform=&quot;SetTokenizedAttributes(connectionString)&quot; xdt:SupressWarnings=&quot;True&quot; /&gt;
+          &lt;/connectionStrings&gt;
+        &lt;/configuration&gt;
+        " >
+      <Output TaskParameter="Value" PropertyName="_AutoParameterizeCSTransformWithDefaultValue"/>
+    </CreateProperty>
+
+    <!-- First create the Tokenized Transformation in line without Default Value -->
+    <CreateProperty Value="
+      &lt;?xml version=&quot;1.0&quot;?&gt;
+        &lt;configuration xmlns:xdt=&quot;http://schemas.microsoft.com/XML-Document-Transform&quot;&gt;
+          &lt;connectionStrings&gt;
+            &lt;add
+              connectionString=&quot;{% token='%24(ReplacableToken_%23(parameter)_%23(tokennumber))' xpathlocator='name' parameter='$(DeployParameterWebConfigConnectionStringName)' description='$(_EscapedDeployParameterWebConfigConnectionStringDescription2)'  tags='$(MsDeployDatabaseTag)' %}&quot;
+              xdt:Transform=&quot;SetTokenizedAttributes(connectionString)&quot; xdt:SupressWarnings=&quot;True&quot; /&gt;
+          &lt;/connectionStrings&gt;
+        &lt;/configuration&gt;
+        " >
+      <Output TaskParameter="Value" PropertyName="_AutoParameterizeCSTransformNoDefaultValue"/>
+    </CreateProperty>
+
+
+    <PropertyGroup>
+      <_AutoParameterizeCSTransform>$(_AutoParameterizeCSTransformWithDefaultValue)</_AutoParameterizeCSTransform>
+      <_AutoParameterizeCSTransform Condition="$(AutoParameterizationWebConfigCSNoDefaultValue)">$(_AutoParameterizeCSTransformNoDefaultValue)</_AutoParameterizeCSTransform>
+      <_AutoParameterizeCSUseXPath Condition="'$(_AutoParameterizeCSUseXPath)'==''">True</_AutoParameterizeCSUseXPath>
+    </PropertyGroup>
+
+    <!-- Now we use the tokenize transform to auto parameterize the web.config-->
+    <ParameterizeTransformXml
+      Source="@(_WebConfigsToAutoParmeterizeCS)"
+      IsSourceAFile="True"
+      Transform="$(_AutoParameterizeCSTransform)"
+      IsTransformAFile="False"
+      Destination="%(TransformOutputFile)"
+      IsDestinationAFile="True"
+      Scope="%(TransformScope)"
+      EnableTokenizeParameters="True"
+      UseXpathToFormParameter="$(_AutoParameterizeCSUseXPath)" 
+      StackTrace="$(TransformWebConfigStackTraceEnabled)"
+      SourceRootPath="$(WebPublishPipelineSourceRootDirectory)"
+      Condition="!%(Exclude)">
+      <!-- Created the DeclareParameters for later after DB import is included-->
+      <Output TaskParameter="DeclareParameters" ItemName="_ParamsFromWebConfigsToAutoParmeterizeCS"/>
+    </ParameterizeTransformXml>
+
+
+    <!-- Set GenerateFileEvenIfEmpty to true to make sure incremental build works-->
+    <ExportParametersFile
+      Parameters="@(_ParamsFromWebConfigsToAutoParmeterizeCS)"
+      DeclareParameterFile="$(_WebConfigsToAutoParmeterizeCsTransformOutputParametersFile)"
+      GenerateFileEvenIfEmpty="True"
+      />
+
+  </Target>
+
+  <!--********************************************************************-->
+  <!--Target PostAutoParameterizationWebConfigConnectionStrings -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <PostAutoParameterizationWebConfigConnectionStringsDependsOn>
+    </PostAutoParameterizationWebConfigConnectionStringsDependsOn>
+  </PropertyGroup>
+
+  <Target Name="PostAutoParameterizationWebConfigConnectionStrings"
+          DependsOnTargets="$(PostAutoParameterizationWebConfigConnectionStringsDependsOn)">
+
+    <ItemGroup>
+      <!-- Remove untransformed Web.configs from the pipeline-->
+      <FilesForPackagingFromProject Remove="@(_WebConfigsToAutoParmeterizeCS)" Condition="'@(_WebConfigsToAutoParmeterizeCS)'!='' And !%(_WebConfigsToAutoParmeterizeCS.Exclude) And Exists(%(_WebConfigsToAutoParmeterizeCS.TransformOutputFile))"/>
+      <!-- Add the transformed Web.configs at the new loction to the pipeline-->
+      <FilesForPackagingFromProject Include="@(_WebConfigsToAutoParmeterizeCS->'%(TransformOutputFile)')" Condition="'@(_WebConfigsToAutoParmeterizeCS)'!='' And !%(_WebConfigsToAutoParmeterizeCS.Exclude) And Exists(%(_WebConfigsToAutoParmeterizeCS.TransformOutputFile))"/>
+    </ItemGroup>
+
+    <GetPublishingLocalizedString
+       Importance="High"
+       Condition="'@(_WebConfigsToAutoParmeterizeCS)'!='' And !%(_WebConfigsToAutoParmeterizeCS.Exclude) And Exists(%(_WebConfigsToAutoParmeterizeCS.TransformOutputFile))"
+       ID="PublishLocalizedString_AutoConnectionStringTransformConfigToTransformOutputFile"
+       ArgumentCount="2"
+       Arguments="@(_WebConfigsToAutoParmeterizeCS->'%(Identity)');%(TransformOutputFile)"
+       LogType="Message" />
+    <!-- "Auto ConnectionString Transformed @(_WebConfigsToAutoParmeterizeCS) into %(TransformOutputFile)" />-->
+
+    <ImportParametersFile  Files="$(_WebConfigsToAutoParmeterizeCsTransformOutputParametersFile)"
+                           DisableEscapeMSBuildVariable="$(ImportParametersFile_DisableEscapeMSBuildVariable)"
+                           Condition="!$(DisableAllVSGeneratedMSDeployParameter) And Exists($(_WebConfigsToAutoParmeterizeCsTransformOutputParametersFile))" >
+      <Output TaskParameter="Result" ItemName="_ImportAutoParameterizeCSTransformWebConfig"/>
+    </ImportParametersFile>
+
+    <ItemGroup>
+      <MsDeployDeclareParameters Include="@(_ImportAutoParameterizeCSTransformWebConfig)"  Condition="'%(_ImportAutoParameterizeCSTransformWebConfig.Identity)' !=''">
+        <Value>%(_ImportAutoParameterizeCSTransformWebConfig.DefaultValue)</Value>
+        <Priority>$(VsWebConfigAutoCsParametersPriority)</Priority>
+      </MsDeployDeclareParameters>
+    </ItemGroup>
+
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert)"
+                      Encoding="utf-8"
+                      File="$(PackageLogDir)\PostAutoParameterizationWebConfigConnectionStrings.txt"
+                      Lines="@(FilesForPackagingFromProject->'
+                      From:%(Identity) 
+                      DestinationRelativePath:%(DestinationRelativePath) 
+                      Exclude:%(Exclude) 
+                      FromTarget:%(FromTarget) 
+                      Category:%(Category)
+                      ProjectFileType:%(ProjectFileType)')" Overwrite="True" />
+  </Target>
+
+  <!--********************************************************************-->
+  <!--Target AutoParameterizationWebConfigConnectionStrings-->
+  <!--**********************************************************************-->
+  <PropertyGroup>
+    <AutoParameterizationWebConfigConnectionStringsDependsOn>
+      $(OnBeforeAutoParameterizationWebConfigConnectionStrings);
+      $(AutoParameterizationWebConfigConnectionStringsDependsOn);
+      PipelineTransformPhase;
+      PreAutoParameterizationWebConfigConnectionStrings;
+      AutoParameterizationWebConfigConnectionStringsCore;
+      PostAutoParameterizationWebConfigConnectionStrings;
+    </AutoParameterizationWebConfigConnectionStringsDependsOn>
+  </PropertyGroup>
+  <Target Name="AutoParameterizationWebConfigConnectionStrings" DependsOnTargets="$(AutoParameterizationWebConfigConnectionStringsDependsOn)"
+          Condition="$(AutoParameterizationWebConfigConnectionStrings)">
+
+  </Target>
+
+  <!--********************************************************************-->
+  <!--Target PipelineTransformPhase -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <!-- Default global ExcludeTransformAssistFilesFromPublish to True. By default remove web.debug.config, web.release.config-->
+    <ExcludeTransformAssistFilesFromPublish Condition="'$(ExcludeTransformAssistFilesFromPublish)'==''">True</ExcludeTransformAssistFilesFromPublish>
+    <!-- Targets get execute before this Target-->
+    <PipelineTransformPhaseDependsOn>
+      $(OnBeforePipelineTransformPhase);
+      $(PipelineTransformPhaseDependsOn);
+      PipeLineCollectFilesPhase;
+      TransformWebConfig;
+      ProfileTransformWebConfig;
+      InsertAdditionalWebCofigConnectionStrings;
+      MarkWebConfigAssistFilesAsExclude;
+    </PipelineTransformPhaseDependsOn>
+  </PropertyGroup>
+
+  <Target Name="PipelineTransformPhase"
+          Outputs="@(FilesForPackagingFromProject)"
+          DependsOnTargets="$(PipelineTransformPhaseDependsOn)">
+    <!-- This is a phase separation point-->
+
+    <GetPublishingLocalizedString
+       ID="PublishLocalizedString_WebPublishPipelineTransformPhase"
+       LogType="Message" />
+    <!--<Message Text="Pipeline Transform Phase" />-->
+    
+    <CallTarget Targets="$(OnAfterPipelineTransformPhase)" RunEachTargetSeparately="False" />
+  </Target>
+
+
+
+
+
+  <!--********************************************************************-->
+  <!--Target PipelineMsdeploySpecificTransformPhase -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <PipelineMsdeploySpecificTransformPhaseBeforeTargets>
+      $(PipelineMsdeploySpecificTransformPhaseBeforeTargets);
+      CopyAllFilesToSingleFolderForMsdeploy;
+      PipelineCopyAllFilesToOneFolderForMsdeploy;
+      PipelineDeployPhase;
+    </PipelineMsdeploySpecificTransformPhaseBeforeTargets>
+    <PipelineMsdeploySpecificTransformPhaseDependsOn>
+      $(OnBeforePipelineMsdeploySpecificTransformPhase);
+      $(PipelineMsdeploySpecificTransformPhaseDependsOn);
+      InsertAdditionalWebCofigConnectionStrings;
+      PreAutoParameterizationWebConfigConnectionStrings;
+      AutoParameterizationWebConfigConnectionStrings;
+    </PipelineMsdeploySpecificTransformPhaseDependsOn>
+  </PropertyGroup>
+
+  <Target Name="PipelineMsdeploySpecificTransformPhase"
+          Outputs="@(FilesForPackagingFromProject)"
+          DependsOnTargets="$(PipelineMsdeploySpecificTransformPhaseDependsOn)"
+          BeforeTargets="$(PipelineMsdeploySpecificTransformPhaseBeforeTargets)"
+          AfterTargets="$(PipelineMsdeploySpecificTransformPhaseAfterTargets)">
+    <!--This is a phase separation point-->
+
+    <!--This is a phase separation point. Some deploy doesn't need to copy all file to a folder, But for MSDeploy, it required to have all file in a single folder-->
+    <GetPublishingLocalizedString
+       ID="PublishLocalizedString_WebPublishPipelineDeployPhaseStage1"
+       ArgumentCount="1"
+       Arguments="PipelineMsdeploySpecificTransformPhase"
+       LogType="Message" />
+    
+    <CallTarget Targets="$(OnAfterPipelineMsdeploySpecificTransformPhase)" RunEachTargetSeparately="False" />
+  </Target>
+
+
+
+  <!--********************************************************************    -->
+  <!-- _WPPCopyWebApplication  Target                             -->
+  <!-- This will materialize all the in-memory files list which is not mark   -->
+  <!-- as excluded from packaging into the package temp folder.               -->
+  <!--ToDo: remove the condition on ContentPath Package (we are doing it now because IIS team is not support it yet-->
+  <!-- ********************************************************************   -->
+  <PropertyGroup>
+    <_WPPCopyWebApplicationDependsOn>
+      $(OnBefore_WPPCopyWebApplication);
+      $(_WPPCopyWebApplicationDependsOn);
+      CleanWebProjectOutputDir;
+      PipelineTransformPhase;
+    </_WPPCopyWebApplicationDependsOn>
+  </PropertyGroup>
+  <Target Name="_WPPCopyWebApplication"
+          DependsOnTargets="$(_WPPCopyWebApplicationDependsOn)"
+          >
+    <!-- In the case of the incremental Packaging/Publish, we need to find out the extra files and delete them-->
+    <ItemGroup>
+      <_AllExtraFilesUnderProjectOuputFolder Include="$(WebProjectOutputDir)\**" />
+      <_AllExtraFilesUnderProjectOuputFolder
+        Remove="@(FilesForPackagingFromProject->'$(WebProjectOutputDir)\%(DestinationRelativePath)')" />
+    </ItemGroup>
+    <!--Remove all extra files in the temp folder that's not in the @(FilesForPackagingFromProject-->
+    <Delete Files="@(_AllExtraFilesUnderProjectOuputFolder)" />
+
+    <!-- Make sure the folder exist -->
+    <MakeDir Directories="$(WebProjectOutputDir)" Condition="!Exists('$(WebProjectOutputDir)')"/>
+
+    <GetPublishingLocalizedString
+       Importance="High"
+       ID="PublishLocalizedString_WebPublishPipelineCopyWebApplication"
+       ArgumentCount="2"
+       Arguments="$(WebPublishPipelineProjectName);$(WebProjectOutputDir)"
+       LogType="Message" />
+    <!-- <Message Importance="high"
+         Text="Copying Web Application Project Files for $(WebPublishPipelineProjectName) to $(WebProjectOutputDir)" />-->
+
+    <!-- Copy the files to WebProjectOutputDir if needed-->
+    <CopyPipelineFiles PipelineItems="@(FilesForPackagingFromProject)"
+                           SourceDirectory="$(WebPublishPipelineProjectDirectory)"
+                           TargetDirectory="$(WebProjectOutputDir)"
+                           SkipMetadataExcludeTrueItems="True"
+                           UpdateItemSpec="True"
+                           DeleteItemsMarkAsExcludeTrue ="True"
+                       Condition="'@(FilesForPackagingFromProject)' != ''">
+    </CopyPipelineFiles>
+
+
+    <!--Remove all empty folder that's left. Since it is not critical, we only log warning if we failed to delete empty folder.-->
+    <RemoveEmptyDirectories Directories="$(WebProjectOutputDir)"  LogErrorAsWarning="True" />
+    <MakeDir Directories="$(WebProjectOutputDir)" Condition="!Exists('$(WebProjectOutputDir)')"/>
+
+    <CallTarget Targets="$(OnAfter_WPPCopyWebApplication)" RunEachTargetSeparately="False" />
+
+  </Target>
+
+  <!--********************************************************************-->
+  <!--Target PipelinePreDeployCopyAllFilesToOneFolder -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <PipelinePreDeployCopyAllFilesToOneFolderDependsOn>
+      $(OnBeforePipelinePreDeployCopyAllFilesToOneFolder);
+      $(PipelinePreDeployCopyAllFilesToOneFolderDependsOn);
+      PipelineTransformPhase;
+      CopyAllFilesToSingleFolderForPackage;
+    </PipelinePreDeployCopyAllFilesToOneFolderDependsOn>
+  </PropertyGroup>
+
+  <Target Name="PipelinePreDeployCopyAllFilesToOneFolder"
+          DependsOnTargets="$(PipelinePreDeployCopyAllFilesToOneFolderDependsOn)">
+
+    <!--This is a phase separation point.
+        Some publish methods do not require copying all the files, but for MSDeploy
+        we need to copy all the files to one location -->
+    <GetPublishingLocalizedString
+       ID="PublishLocalizedString_WebPublishPipelineDeployPhaseStage1"
+       ArgumentCount="1"
+       Arguments="PipelinePreDeployCopyAllFilesToOneFolder"
+       LogType="Message" />
+    
+    <CallTarget Targets="$(OnAfterPipelinePreDeployCopyAllFilesToOneFolder)" RunEachTargetSeparately="False" />
+  </Target>
+
+  <!--
+  CopyAllFilesToSingleFolderForMsdeploy target.
+    This will copy all the files which are not marked to be excluded into the 
+    package temp folder.
+  -->
+  <PropertyGroup>
+    <OnBeforeCopyAllFilesToSingleFolderForMsdeploy Condition="$(CleanWPPAllFilesInSingleFolder)">
+      $(OnBeforeCopyAllFilesToSingleFolderForMsdeploy);
+      CleanWebsitesWPPAllFilesInSingleFolder;
+    </OnBeforeCopyAllFilesToSingleFolderForMsdeploy>
+    <CopyAllFilesToSingleFolderForMsdeployDependsOn>
+      $(OnBeforeCopyAllFilesToSingleFolderForMsdeploy);
+      $(CopyAllFilesToSingleFolderForMsdeployDependsOn);
+    </CopyAllFilesToSingleFolderForMsdeployDependsOn>
+  </PropertyGroup>
+  <Target Name="CopyAllFilesToSingleFolderForMsdeploy"
+          DependsOnTargets="$(CopyAllFilesToSingleFolderForMsdeployDependsOn)">
+
+    <!--  In the case of the incremental Packaging/Publish, we need to find out the extra file and delete them -->
+    <ItemGroup>
+      <_AllExtraFilesUnderTempFolder Include="$(WPPAllFilesInSingleFolder)\**" />
+      <_AllExtraFilesUnderTempFolder
+        Remove="@(FilesForPackagingFromProject->'$(WPPAllFilesInSingleFolder)\%(DestinationRelativePath)')" />
+    </ItemGroup>
+    <!--Remove all extra files in the temp folder that are not in the @(FilesForPackagingFromProject-->
+    <Delete Files="@(_AllExtraFilesUnderTempFolder)" />
+
+    <!-- Make sure the folder exist -->
+    <MakeDir Directories="$(WPPAllFilesInSingleFolder)" Condition="!Exists('$(WPPAllFilesInSingleFolder)')"/>
+
+    <GetPublishingLocalizedString
+       Importance="High"
+       ID="PublishLocalizedString_WebPublishPipelineMaterializeAllFilesToTempDir"
+       ArgumentCount="1"
+       Arguments="$(WPPAllFilesInSingleFolder)"
+       LogType="Message" />
+
+    <!--Force Copy Of all file to the $(WPPAllFilesInSingleFolder) if needed-->
+    <CopyPipelineFiles PipelineItems="@(FilesForPackagingFromProject)"
+                           SourceDirectory="$(WebPublishPipelineProjectDirectory)"
+                           TargetDirectory="$(WPPAllFilesInSingleFolder)"
+                           SkipMetadataExcludeTrueItems="True"
+                           UpdateItemSpec="True"
+                           DeleteItemsMarkAsExcludeTrue ="True"
+                       Condition="'@(FilesForPackagingFromProject)' != ''">
+      <Output TaskParameter="ResultPipelineItems" ItemName="_FilesForPackagingFromProjectTempory"/>
+    </CopyPipelineFiles>
+
+    <ItemGroup>
+      <FileWrites Include="@(_FilesForPackagingFromProjectTempory)" />
+    </ItemGroup>
+
+    <!--Workaround the MSBuild 2.0 limitation-->
+    <ItemGroup>
+      <FilesForPackagingFromProject Remove="@(FilesForPackagingFromProject)" />
+      <FilesForPackagingFromProject Include="@(_FilesForPackagingFromProjectTempory)" />
+    </ItemGroup>
+
+    <!--Remove all Empty folder that's left. Since it is not critical, we only log warning if we failed to delete empty folder.-->
+    <RemoveEmptyDirectories Directories="$(WPPAllFilesInSingleFolder)"  LogErrorAsWarning="True" />
+    <MakeDir Directories="$(WPPAllFilesInSingleFolder)" Condition="!Exists('$(WPPAllFilesInSingleFolder)')"/>
+
+    <!--Now we are all file in the single folder-->
+    <PropertyGroup>
+      <IsWPPAllFilesInSingleFolder>True</IsWPPAllFilesInSingleFolder>
+    </PropertyGroup>
+
+    <CallTarget Targets="$(OnAfterCopyAllFilesToSingleFolderForMsdeploy)" RunEachTargetSeparately="False" />
+
+  </Target>
+
+  <!--Target PipelineCopyAllFilesToOneFolderForMsdeploy -->
+  <PropertyGroup>
+    <PipelineCopyAllFilesToOneFolderForMsdeployDependsOn>
+      $(OnBeforePipelineCopyAllFilesToOneFolderForMsdeploy);
+      $(PipelineCopyAllFilesToOneFolderForMsdeployDependsOn);
+      PipelineTransformPhase;
+      CopyAllFilesToSingleFolderForMsdeploy;
+    </PipelineCopyAllFilesToOneFolderForMsdeployDependsOn>
+  </PropertyGroup>
+
+  <Target Name="PipelineCopyAllFilesToOneFolderForMsdeploy"
+          DependsOnTargets="$(PipelineCopyAllFilesToOneFolderForMsdeployDependsOn)">
+
+    <!-- This is a phase separation point. -->
+    <GetPublishingLocalizedString
+       ID="PublishLocalizedString_WebPublishPipelineDeployPhaseStage1"
+       ArgumentCount="1"
+       Arguments="PipelineCopyAllFilesToOneFolderForMsdeploy"
+       LogType="Message" />
+    
+    <CallTarget Targets="$(OnAfterPipelineCopyAllFilesToOneFolderForMsdeploy)" RunEachTargetSeparately="False" />
+  </Target>
+  
+  
+  <Target Name="GatherAllFilesToPublish" DependsOnTargets="PipelineTransformPhase;CopyAllFilesToSingleFolderForPackage;" />
+
+  <Target Name="_CheckPublishToolsUpToDate" Condition="'$(_WebPublishProfileFileWillBeImported)'=='true'">
+    <PublishToolsVersionCheck VersionInPublishProfile="$(_MinWebPublishToolsVersion)" />
+  </Target>  
+  
+  <!--GetProjectProperties Task-->
+  <PropertyGroup>
+    <GetProjectWebPropertiesDependsOn Condition="'$(GetProjectWebPropertiesDependsOn)'==''">
+      _CheckPublishToolsUpToDate
+    </GetProjectWebPropertiesDependsOn>
+  </PropertyGroup>
+
+  <Target Name="GetProjectWebProperties"
+          Condition="'$(UseIis)' == '' Or '$(IisUrl)' == '' Or '$(LocalIisVersion)' == '' Or '$(DestinationIisVersion)' ==''"
+          DependsOnTargets="$(GetProjectWebPropertiesDependsOn)">
+
+    <PropertyGroup>
+      <LocalIisVersion>$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Inetstp@MajorVersion)</LocalIisVersion>
+      <LocalIisVersion Condition="'$(LocalIisVersion)'==''">0</LocalIisVersion>
+    </PropertyGroup>
+
+    <GetProjectProperties ProjectFileFullPath="$(WebPublishPipelineWAPProjectSettings)">
+      <Output TaskParameter="UseIis"  PropertyName="UseIis" Condition="'$(UseIis)' == ''" />
+      <Output TaskParameter="IisUrl"  PropertyName="IisUrl" Condition="'$(IisUrl)' == ''"/>
+    </GetProjectProperties>
+
+    <PropertyGroup>
+      <_DeploymentUseIis Condition="'$(_DeploymentUseIis)'=='' And $(IncludeIisSettings)">$(UseIis)</_DeploymentUseIis>
+      <_DeploymentUseIis Condition="'$(_DeploymentUseIis)'==''">False</_DeploymentUseIis>
+      <_DeploymentAsIisApp>$(DeployAsIisApp)</_DeploymentAsIisApp>
+      <_DeploymentAsIisApp Condition="$(_DeploymentUseIis)">False</_DeploymentAsIisApp>
+      <DestinationUseIis Condition="'$(DestinationUseIis)'=='' And $(IncludeIisSettings)">$(UseIis)</DestinationUseIis>
+      <DestinationUseIis Condition="'$(DestinationUseIis)'==''">False</DestinationUseIis>
+      <_DeploymentUseIISExpressHint>$(UseIISExpress)</_DeploymentUseIISExpressHint>
+      <_DeploymentUseIISExpressHint Condition="'$(_DeploymentUseIISExpressHint)'==''">False</_DeploymentUseIISExpressHint>
+    </PropertyGroup>
+
+    <!--We should only get IIS relative information when $(IncludeIisSettings) is true-->
+    <MapUriToIisWebServer Condition="$(UseIis) And ('$(IisUrl)' != '') And $(IncludeIisSettings)"
+      ProjectIisUrl="$(IisUrl)"
+      UseIISExpressHintFlag="$(_DeploymentUseIISExpressHint)">
+      <Output TaskParameter="MetakeyPath" PropertyName="_MSDeployIisUrlSource_MetakeyPathSearchPath"  />
+      <Output TaskParameter="MetakeyPathUsingSiteName" PropertyName="_MSDeployIisUrlSource_MetakeyPath"  />
+      <Output TaskParameter="AppHostConfigPath" PropertyName="_MSDeployIisUrlSource_AppHostConfigPath"  />
+      <Output TaskParameter="IisWebsiteId" PropertyName="IisUrl_SiteID"  />
+      <Output TaskParameter="IisWebsiteFriendlyName" PropertyName="IisUrl_SiteFriendlyName"  />
+      <Output TaskParameter="SiteRelativePath" PropertyName="IisUrl_SiteRelativePath"  />
+      <Output TaskParameter="WebServerAppHostConfigDirectory" PropertyName="IisServer_WebServerAppHostConfigDirectory"  />
+      <Output TaskParameter="WebServerDirectory" PropertyName="IisServer_WebServerDirectory"  />
+      <Output TaskParameter="WebServerManifest" PropertyName="IisServer_WebServerManifest"  />
+      <Output TaskParameter="IisMajorVersion" PropertyName="IisServer_IisMajorVersion"  />
+      <Output TaskParameter="ApplicationPoolName" PropertyName="IisServer_IisAppPoolName"  />
+    </MapUriToIisWebServer>
+
+    <FilterByItems PipelineItems="@(_IISApplicationPool)"
+                   Filter="$(IisServer_IisAppPoolName)">
+      <Output TaskParameter="InFilter" ItemName="_IISApplicationPoolFound"/>
+    </FilterByItems>
+
+    <PropertyGroup>
+      <_Destination_IisServer_IisAppPoolName Condition="'@(_IISApplicationPoolFound)'!=''">%(_IISApplicationPoolFound.DestinationIISApplicationPool)</_Destination_IisServer_IisAppPoolName>
+      <_Destination_IisServer_IisAppPoolName Condition="'$(_Destination_IisServer_IisAppPoolName)'==''">$(IisServer_IisAppPoolName)</_Destination_IisServer_IisAppPoolName>
+    </PropertyGroup>
+    
+    <PropertyGroup>
+      <_IsRootWebsite>False</_IsRootWebsite>
+      <_IsRootWebsite Condition="('$(IisUrl_SiteRelativePath)' == '/')">True</_IsRootWebsite>
+      <DefaultDeployIisAppPath Condition="$(_IsRootWebsite)">$(DefaultDeployIisRootAppPath)</DefaultDeployIisAppPath>
+      <LocalIisVersion Condition="'$(IisServer_IisMajorVersion)' != '0' And '$(IisServer_IisMajorVersion)' != '' ">$(IisServer_IisMajorVersion)</LocalIisVersion>
+      <DestinationIisVersion Condition="'$(DestinationIisVersion)'==''">$(LocalIisVersion)</DestinationIisVersion>
+    </PropertyGroup>
+
+    <!-- elevate this property out to global scope to be used by transport target-->
+    <CreateProperty Value="$(_DeploymentUseIis)">
+      <Output TaskParameter="Value" PropertyName="IncludeIisSettingsOnPublish"/>
+    </CreateProperty>
+  </Target>
+
+  <!-- 
+  GetMSDeployInstalledVersionPath 
+    This target will determine where msdeploy.exe has been installed
+  -->
+  <PropertyGroup>
+    <GetMSDeployInstalledVersionPathDependsOn Condition="'$(GetMSDeployInstalledVersionPathDependsOn)'==''">
+    </GetMSDeployInstalledVersionPathDependsOn>
+  </PropertyGroup>
+
+  <Target Name="GetMSDeployInstalledVersionPath"
+          Condition="'$(_MSDeployVersionsToTry)' == '' Or '$(MSDeployPath)' == '' "
+          DependsOnTargets="$(GetMSDeployInstalledVersionPathDependsOn)">
+
+    <!--get a list of subkeyNames from the registry-->
+    <GetLocalMachineRegistrySubKeyNames Key="SOFTWARE\Microsoft\IIS Extensions\MSDeploy">
+      <Output TaskParameter="Result" ItemName="_MSDeployInstalledVersionPathFromRegistry"/>
+    </GetLocalMachineRegistrySubKeyNames>
+
+    <ItemGroup>
+      <_MSDeployInstalledVersionPath Include="@(_MSDeployInstalledVersionPathFromRegistry)">
+        <InstallPath>$([MSBuild]::GetRegistryValue('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\%(_MSDeployInstalledVersionPathFromRegistry.Identity)', 'InstallPath'))</InstallPath>
+        <DllVersionString>$([MSBuild]::GetRegistryValue('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\%(_MSDeployInstalledVersionPathFromRegistry.Identity)', 'Version'))</DllVersionString>
+      </_MSDeployInstalledVersionPath>
+      <_MSDeployInstalledVersions Include="@(_MSDeployInstalledVersionPath)" Condition="'%(_MSDeployInstalledVersionPath.InstallPath)'!='' And  '%(_MSDeployInstalledVersionPath.DllVersionString)'!=''" >
+        <DllVersion>$([System.Version]::New(%(_MSDeployInstalledVersionPath.DllVersionString)).Major).$([System.Version]::New(%(_MSDeployInstalledVersionPath.DllVersionString)).Minor)</DllVersion>
+      </_MSDeployInstalledVersions>
+    </ItemGroup>
+
+    <FilterByItems PipelineItems="@(_MSDeployInstalledVersions)"
+                   SourceMetadataName="DllVersion"
+                   Condition="'$(_MSDeployVersionsToTry)' != ''"
+                   Filter="$(_MSDeployVersionsToTry)">
+      <Output TaskParameter="OutFilter" ItemName="_NeedtoRemove_MSDeployInstalledVersions"/>
+    </FilterByItems>
+
+    <ItemGroup>
+      <_MSDeployInstalledVersions Remove="@(_NeedtoRemove_MSDeployInstalledVersions)" />
+    </ItemGroup>
+
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert)"
+                      Encoding="utf-8"
+                      File="$(PackageLogDir)\MSDeployInstalledVersions.txt"
+                      Lines="@(_MSDeployInstalledVersions->'
+                      Identity:%(Identity)
+                      InstallPath:%(InstallPath) 
+                      DllVersionString:%(DllVersionString) 
+                      DllVersion:%(DllVersion)')" Overwrite="True" />
+
+
+    
+    <PropertyGroup>
+      <_DefaultMSDeployMaxVersion>0</_DefaultMSDeployMaxVersion>
+      <_DefaultMSDeployMaxVersion Condition="'%(_MSDeployInstalledVersions.Identity)' != ''">$([System.Math]::Max($([System.Convert]::ToUInt32('$(_DefaultMSDeployMaxVersion)')),$([System.Convert]::ToUInt32('%(_MSDeployInstalledVersions.Identity)'))))</_DefaultMSDeployMaxVersion>
+    </PropertyGroup>
+
+    <GetPublishingLocalizedString
+     Condition="'$(_DefaultMSDeployMaxVersion)' != ''"
+     ID="PublishLocalizedString_MsBuildPropertySettingValue"
+     ArgumentCount="2"
+     Arguments="_DefaultMSDeployMaxVersion;$(_DefaultMSDeployMaxVersion)"
+     LogType="Message" />
+
+    <ItemGroup>
+      <_SelectedMSDeployMaxVersion Include="@(_MSDeployInstalledVersions)"
+                               Condition="'%(_MSDeployInstalledVersions.Identity)' =='$(_DefaultMSDeployMaxVersion)' " />
+    </ItemGroup>
+
+    <!--If $(MSDeployPath) is specified, we try the best to match the matching msdeploy dll version-->
+    <ItemGroup Condition="'$(_MSDeployVersionsToTry)' == '' And '$(MSDeployPath)' != '' ">
+      <_SelectedMSDeployPath Include="@(_MSDeployInstalledVersions)"
+                             Condition="'%(_MSDeployInstalledVersions.InstallPath)' =='$(MSDeployPath)' " />
+    </ItemGroup>
+    <PropertyGroup Condition="'$(_MSDeployVersionsToTry)' == '' And '$(MSDeployPath)' != '' " >
+      <_MSDeployVersionsToTry>@(_SelectedMSDeployPath->'%(DllVersion)')</_MSDeployVersionsToTry>
+    </PropertyGroup>
+
+    <!--
+    If $(MSDeployPath) is not specified and $(_MSDeployVersionToTry) is not specified.  
+    We use the Higest version of the MSDeploy Version that's currently installed--> 
+    <PropertyGroup>
+      <_MSDeployVersionsToTry  Condition="'$(_MSDeployVersionsToTry)' == ''">@(_SelectedMSDeployMaxVersion->'%(DllVersion)')</_MSDeployVersionsToTry>
+      <MSDeployPath Condition="'$(MSDeployPath)' == ''">@(_SelectedMSDeployMaxVersion->'%(InstallPath)')</MSDeployPath>
+    </PropertyGroup>
+
+    <GetPublishingLocalizedString
+     Condition="'$(_MSDeployVersionsToTry)' != ''"
+     ID="PublishLocalizedString_MsBuildPropertySettingValue"
+     ArgumentCount="2"
+     Arguments="_MSDeployVersionsToTry;$(_MSDeployVersionsToTry)"
+     LogType="Message" />
+    
+    <GetPublishingLocalizedString
+     Condition="'$(MSDeployPath)' != ''"
+     ID="PublishLocalizedString_MsBuildPropertySettingValue"
+     ArgumentCount="2"
+     Arguments="MSDeployPath;$(MSDeployPath)"
+     LogType="Message" />
+
+  </Target>
+
+  <!--********************************************************************-->
+  <!-- Package target -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <PackageDependsOn Condition="'$(PackageDependsOn)'==''">
+      PipelineCopyAllFilesToOneFolderForMsdeploy;
+      ImportPublishingParameterValues;
+      PipelineMsdeploySpecificTransformPhase;
+    </PackageDependsOn>
+  </PropertyGroup>
+  <Target Name="Package"
+          Condition="$(_CreatePackage)"
+          DependsOnTargets="$(PackageDependsOn)">
+
+    <MakeDir Condition="$(EnablePackageProcessLoggingAndAssert) And !Exists('$(PackageLogDir)')"
+             Directories="$(PackageLogDir)" />
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert)"
+                      Encoding="utf-8"
+                      File="$(PackageLogDir)\Prepackage.txt"
+                      Lines="@(FilesForPackagingFromProject->'
+                      From:%(Identity) 
+                      DestinationRelativePath:%(DestinationRelativePath) 
+                      Exclude:%(Exclude) 
+                      FromTarget:%(FromTarget) 
+                      Category:%(Category)
+                      ProjectFileType:%(ProjectFileType)')" Overwrite="True" />
+
+
+    <GetPublishingLocalizedString
+       ID="PublishLocalizedString_WebPublishPipelineMSDeploySettings"
+       LogType="Message" />
+
+    <GetPublishingLocalizedString
+          Condition="'$(LocalIisVersion)' != ''"
+          ID="PublishLocalizedString_MsBuildPropertySettingValue"
+          ArgumentCount="2"
+          Arguments="LocalIisVersion;$(LocalIisVersion)"
+          LogType="Message" />
+    <GetPublishingLocalizedString
+          Condition="'$(DestinationIisVersion)' != ''"
+          ID="PublishLocalizedString_MsBuildPropertySettingValue"
+          ArgumentCount="2"
+          Arguments="DestinationIisVersion;$(DestinationIisVersion)"
+          LogType="Message" />
+    <GetPublishingLocalizedString
+          Condition="'$(UseIis)' != ''"
+          ID="PublishLocalizedString_MsBuildPropertySettingValue"
+          ArgumentCount="2"
+          Arguments="UseIis;$(UseIis)"
+          LogType="Message" />
+    <GetPublishingLocalizedString
+      Condition="'$(IisUrl)' != ''"
+      ID="PublishLocalizedString_MsBuildPropertySettingValue"
+      ArgumentCount="2"
+      Arguments="IisUrl;$(IisUrl)"
+      LogType="Message" />
+    <GetPublishingLocalizedString
+          Condition="'$(IncludeIisSettings)' != ''"
+          ID="PublishLocalizedString_MsBuildPropertySettingValue"
+          ArgumentCount="2"
+          Arguments="IncludeIisSettings;$(IncludeIisSettings)"
+          LogType="Message" />
+    <GetPublishingLocalizedString
+          Condition="'$(_DeploymentUseIis)' != ''"
+          ID="PublishLocalizedString_MsBuildPropertySettingValue"
+          ArgumentCount="2"
+          Arguments="_DeploymentUseIis;$(_DeploymentUseIis)"
+          LogType="Message" />
+    <GetPublishingLocalizedString
+          Condition="'$(DestinationUseIis)' != ''"
+          ID="PublishLocalizedString_MsBuildPropertySettingValue"
+          ArgumentCount="2"
+          Arguments="DestinationUseIis;$(DestinationUseIis)"
+          LogType="Message" />
+    <GetPublishingLocalizedString
+          Condition="'$(IisUrl_SiteID)' != ''"
+          ID="PublishLocalizedString_MsBuildPropertySettingValue"
+          ArgumentCount="2"
+          Arguments="IisUrl_SiteID;$(IisUrl_SiteID)"
+          LogType="Message" />
+    <GetPublishingLocalizedString
+          Condition="'$(IisUrl_SiteFriendlyName)' != ''"
+          ID="PublishLocalizedString_MsBuildPropertySettingValue"
+          ArgumentCount="2"
+          Arguments="IisUrl_SiteFriendlyName;$(IisUrl_SiteFriendlyName)"
+          LogType="Message" />
+    <GetPublishingLocalizedString
+          Condition="'$(IisUrl_SiteRelativePath)' != ''"
+          ID="PublishLocalizedString_MsBuildPropertySettingValue"
+          ArgumentCount="2"
+          Arguments="IisUrl_SiteRelativePath;$(IisUrl_SiteRelativePath)"
+          LogType="Message" />
+
+
+    <GetPublishingLocalizedString
+          Condition="'$(IisServer_IisAppPoolName)' != ''"
+          ID="PublishLocalizedString_MsBuildPropertySettingValue"
+          ArgumentCount="2"
+          Arguments="IisServer_IisAppPoolName;$(IisServer_IisAppPoolName)"
+          LogType="Message" />
+
+    
+    <GetPublishingLocalizedString
+          Condition="'$(_Destination_IisServer_IisAppPoolName)' != ''"
+          ID="PublishLocalizedString_MsBuildPropertySettingValue"
+          ArgumentCount="2"
+          Arguments="_Destination_IisServer_IisAppPoolName;$(_Destination_IisServer_IisAppPoolName)"
+          LogType="Message" />
+
+
+    <!--"Invoking MSDeploy to generate the package 
+             Machine IIS Version is $(LocalIisVersion)
+             Deploy IIS Version is $(DestinationIisVersion)
+             UseIis is $(UseIis)
+             IisUrl is $(IisUrl)
+             IncludeIisSettings is $(IncludeIisSettings)
+             _DeploymentUseIis is $(_DeploymentUseIis)
+             DestinationUseIis is $(DestinationUseIis)
+             IisUrl_SiteID is $(IisUrl_SiteID)
+             IisUrl_SiteFriendlyName is $(IisUrl_SiteFriendlyName)
+             IisUrl_SiteRelativePath is $(IisUrl_SiteRelativePath)"
+             />-->
+    <ItemGroup>
+      <_PackageFileLocation Include="$(PackageFileName)" />
+    </ItemGroup>
+
+    <PropertyGroup>
+      <_PackageRoot Condition="$(PackageAsSingleFile)">@(_PackageFileLocation->'%(RootDir)%(Directory)')</_PackageRoot>
+      <_PackageRoot Condition="!$(PackageAsSingleFile)">$(PackageArchiveRootDir)</_PackageRoot>
+    </PropertyGroup>
+
+    <MakeDir Condition="!Exists($(_PackageRoot))"  Directories="$(_PackageRoot)" />
+    <CallTarget Targets="PackageUsingManifest"/>
+  </Target>
+
+  <PropertyGroup>
+    <OnBeforeCopyAllFilesToSingleFolderForPackage Condition="$(CleanWPPAllFilesInSingleFolder)">
+      $(OnBeforeCopyAllFilesToSingleFolderForPackage);
+      CleanWebsitesWPPAllFilesInSingleFolder;
+    </OnBeforeCopyAllFilesToSingleFolderForPackage>
+    <CopyAllFilesToSingleFolderForPackageDependsOn>
+      $(OnBeforeCopyAllFilesToSingleFolderForPackage);
+      $(CopyAllFilesToSingleFolderForPackageDependsOn);
+    </CopyAllFilesToSingleFolderForPackageDependsOn>
+  </PropertyGroup>
+  <Target Name="CopyAllFilesToSingleFolderForPackage"
+          DependsOnTargets="$(CopyAllFilesToSingleFolderForPackageDependsOn)"
+          >
+
+    <!-- In the case of the incremental Packaging/Publish, we need to find out the extra file and delete them-->
+    <ItemGroup>
+      <_AllExtraFilesUnderTempFolder Include="$(WPPAllFilesInSingleFolder)\**" />
+      <_AllExtraFilesUnderTempFolder
+        Remove="@(FilesForPackagingFromProject->'$(WPPAllFilesInSingleFolder)\%(DestinationRelativePath)')" />
+    </ItemGroup>
+    <!--Remove all extra files in the temp folder that's not in the @(FilesForPackagingFromProject-->
+    <Delete Files="@(_AllExtraFilesUnderTempFolder)" />
+
+    <MakeDir Directories="$(WPPAllFilesInSingleFolder)" Condition="!Exists('$(WPPAllFilesInSingleFolder)')"/>
+
+    <GetPublishingLocalizedString
+       Importance="High"
+       ID="PublishLocalizedString_WebPublishPipelineMaterializeAllFilesToTempDir"
+       ArgumentCount="1"
+       Arguments="$(WPPAllFilesInSingleFolder)"
+       LogType="Message" />
+    
+    <!--Force Copy Of all file to the $(WPPAllFilesInSingleFolder) if needed-->
+    <CopyPipelineFiles PipelineItems="@(FilesForPackagingFromProject)"
+                           SourceDirectory="$(WebPublishPipelineProjectDirectory)"
+                           TargetDirectory="$(WPPAllFilesInSingleFolder)"
+                           SkipMetadataExcludeTrueItems="True"
+                           UpdateItemSpec="True"
+                           DeleteItemsMarkAsExcludeTrue ="True"
+                       Condition="'@(FilesForPackagingFromProject)' != ''">
+      <Output TaskParameter="ResultPipelineItems" ItemName="_FilesForPackagingFromProjectTempory"/>
+    </CopyPipelineFiles>
+
+    <ItemGroup>
+      <FileWrites Include="@(_FilesForPackagingFromProjectTempory)" />
+    </ItemGroup>
+    
+    <!--Workaround the MSBuild 2.0 limitation-->
+    <ItemGroup>
+      <FilesForPackagingFromProject Remove="@(FilesForPackagingFromProject)" />
+      <FilesForPackagingFromProject Include="@(_FilesForPackagingFromProjectTempory)" />
+    </ItemGroup>
+
+    <!--Remove all Empty folder that's left. Since it is not critical, we only log warning if we failed to delete empty folder.-->
+    <RemoveEmptyDirectories Directories="$(WPPAllFilesInSingleFolder)"  LogErrorAsWarning="True" />
+    <MakeDir Directories="$(WPPAllFilesInSingleFolder)" Condition="!Exists('$(WPPAllFilesInSingleFolder)')"/>
+
+    <!--Now we are all file in the single folder-->
+    <PropertyGroup>
+      <IsWPPAllFilesInSingleFolder>True</IsWPPAllFilesInSingleFolder>
+    </PropertyGroup>
+
+    <CallTarget Targets="$(OnAfterCopyAllFilesToSingleFolderForPackage)" RunEachTargetSeparately="False" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!-- AddIis7ToSourceManifest  -->
+  <!-- ********************************************************************-->
+  <PropertyGroup>
+    <BeforeAddIis7ToSourceManifest Condition="'$(BeforeAddIis7ToSourceManifest)'==''">
+    </BeforeAddIis7ToSourceManifest>
+    <AfterAddIis7ToSourceManifest Condition="'$(AfterAddIis7ToSourceManifest)'==''">
+    </AfterAddIis7ToSourceManifest>
+    <AddIis7ToSourceManifestDependsOn Condition="'$(AddIis7ToSourceManifestDependsOn)' == ''">
+      $(BeforeAddIis7ToSourceManifest);
+      PipelineCopyAllFilesToOneFolderForMsdeploy;
+      GenerateMsDeployManifestSettings;
+    </AddIis7ToSourceManifestDependsOn>
+  </PropertyGroup>
+  <Target Name="AddIis7ToSourceManifest"
+          Condition="$(_DeploymentUseIis) And ($(LocalIisVersion) &gt;= '7')"
+          DependsOnTargets="$(AddIis7ToSourceManifestDependsOn)">
+    <GetPublishingLocalizedString
+       Condition="'$(IisUrl)'==''"
+       ID="PublishLocalizedString_ErrorUseIisIsTrueButIisUrlIsEmpty"
+       LogType="Error" />
+    
+    <Error Text="Target AddIis7ToSourceManifest failed"
+           Condition="'$(IisUrl)'==''" />
+      
+    <ItemGroup>
+      <MsDeploySourceManifest Include="appHostConfig">
+        <Path>$(_MSDeployIisUrlSource_AppHostConfigPath)</Path>
+      </MsDeploySourceManifest>
+    </ItemGroup>
+
+    <CallTarget Condition="'$(AfterAddIis7ToSourceManifest)' != ''"
+                Targets="$(AfterAddIis7ToSourceManifest)"
+                RunEachTargetSeparately="False" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!-- AddDeclareParametersItemsForIis7  -->
+  <!-- ********************************************************************-->
+  <PropertyGroup>
+    <BeforeAddDeclareParametersItemsForIis7 Condition="'$(BeforeAddDeclareParametersItemsForIis7)'==''">
+    </BeforeAddDeclareParametersItemsForIis7>
+    <AfterAddDeclareParametersItemsForIis7 Condition="'$(AfterAddDeclareParametersItemsForIis7)'==''">
+    </AfterAddDeclareParametersItemsForIis7>
+    <AddDeclareParametersItemsForIis7DependsOn Condition="'$(AddDeclareParametersItemsForIis7DependsOn)' == ''">
+      $(BeforeAddDeclareParametersItemsForIis7);
+      PipelineCopyAllFilesToOneFolderForMsdeploy;
+      GenerateMsDeployManifestSettings;
+    </AddDeclareParametersItemsForIis7DependsOn>
+  </PropertyGroup>
+  <Target Name="AddDeclareParametersItemsForIis7"
+          Condition="$(_DeploymentUseIis) And ($(LocalIisVersion) &gt;= '7')"
+          DependsOnTargets="$(AddDeclareParametersItemsForIis7DependsOn)">
+    <!--Parameterize the default value of the Path-->
+    <EscapeTextForRegularExpressions Text="$(_MSDeployIisUrlSource_AppHostConfigPath)">
+      <Output TaskParameter="Result" PropertyName="_EscapeRegEx_MSDeployIisUrlSource_AppHostConfigPath" />
+    </EscapeTextForRegularExpressions>
+    <ItemGroup Condition="!$(DisableAllVSGeneratedMSDeployParameter) And $(_DeploymentUseIis) And ($(LocalIisVersion) &gt;= '7')" >
+      <MsDeployDeclareParameters Include="$(DeployParameterIISAppName)">
+        <Kind>ProviderPath</Kind>
+        <Scope>AppHostConfig</Scope>
+        <Match>^$(_EscapeRegEx_MSDeployIisUrlSource_AppHostConfigPath)$</Match>
+        <Description>$(DeployParameterIISAppNameDescription)</Description>
+        <DefaultValue>$(_MSDeployIisAppPathIIS7)</DefaultValue>
+        <Value>$(_MSDeployIisAppPathIIS7)</Value>
+        <Tags>IisApp</Tags>
+        <Priority>$(VsIisAppParametersPriority)</Priority>
+      </MsDeployDeclareParameters>
+
+      <MsDeployDeclareParameters Include="$(DeployParameterIISAppPoolName)"
+                                Condition="'$(IisServer_IisAppPoolName)' != '' And '$(ParameterApplicationPool)' == 'True'">
+        <Kind>DeploymentObjectAttribute</Kind>
+        <Scope>application</Scope>
+        <Match>application[@applicationPool='$(IisServer_IisAppPoolName)']/@applicationPool</Match>
+        <Description>$(DeployParameterIISAppPoolNameDescription)</Description>
+        <DefaultValue>$(_Destination_IisServer_IisAppPoolName)</DefaultValue>
+        <Value>$(_Destination_IisServer_IisAppPoolName)</Value>
+        <Tags></Tags>
+        <Priority>$(VsIisAppParametersPriority)</Priority>
+      </MsDeployDeclareParameters>
+     
+    </ItemGroup>
+
+
+    <CallTarget Condition="'$(AfterAddDeclareParametersItemsForIis7)' != ''"
+                Targets="$(AfterAddDeclareParametersItemsForIis7)"
+                RunEachTargetSeparately="false" />
+  </Target>
+
+  <!--********************************************************************-->
+  <!-- AddIis6ToSourceManifest  -->
+  <!-- ********************************************************************-->
+  <PropertyGroup>
+    <BeforeAddIis6ToSourceManifest Condition="'$(BeforeAddIis6ToSourceManifest)'==''">
+    </BeforeAddIis6ToSourceManifest>
+    <AfterAddIis6ToSourceManifest Condition="'$(AfterAddIis6ToSourceManifest)'==''">
+    </AfterAddIis6ToSourceManifest>
+    <AddIis6ToSourceManifestDependsOn Condition="'$(AddIis6ToSourceManifestDependsOn)' == ''">
+      $(BeforeAddIis6ToSourceManifest);
+      PipelineCopyAllFilesToOneFolderForMsdeploy;
+      GenerateMsDeployManifestSettings;
+    </AddIis6ToSourceManifestDependsOn>
+  </PropertyGroup>
+  <Target Name="AddIis6ToSourceManifest"
+          Condition="$(_DeploymentUseIis) And ($(LocalIisVersion) &lt; '7') "
+          DependsOnTargets="$(AddIis6ToSourceManifestDependsOn)">
+
+    <GetPublishingLocalizedString
+       Condition="'$(IisUrl)'==''"
+       ID="PublishLocalizedString_ErrorUseIisIsTrueButIisUrlIsEmpty"
+       LogType="Error" />
+
+    <Error Text="Target AddIis6ToSourceManifest failed"
+          Condition="'$(IisUrl)'==''" />
+    
+    <ItemGroup>
+      <MsDeploySourceManifest Include="MetaKey">
+        <Path>$(_MSDeployIisUrlSource_MetakeyPath)</Path>
+      </MsDeploySourceManifest>
+    </ItemGroup>
+    <CallTarget Condition="'$(AfterAddIis6ToSourceManifest)' != ''"
+                Targets="$(AfterAddIis6ToSourceManifest)"
+                RunEachTargetSeparately="False" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!-- AddDeclareParametersItemsForIis6  -->
+  <!-- ********************************************************************-->
+  <PropertyGroup>
+    <BeforeAddDeclareParametersItemsForIis6 Condition="'$(BeforeAddDeclareParametersItemsForIis6)'==''">
+    </BeforeAddDeclareParametersItemsForIis6>
+    <AfterAddDeclareParametersItemsForIis6 Condition="'$(AfterAddDeclareParametersItemsForIis6)'==''">
+    </AfterAddDeclareParametersItemsForIis6>
+    <AddDeclareParametersItemsForIis6DependsOn Condition="'$(AddDeclareParametersItemsForIis6DependsOn)' == ''">
+      $(BeforeAddDeclareParametersItemsForIis6);
+      PipelineCopyAllFilesToOneFolderForMsdeploy;
+      GenerateMsDeployManifestSettings;
+    </AddDeclareParametersItemsForIis6DependsOn>
+  </PropertyGroup>
+  <Target Name="AddDeclareParametersItemsForIis6"
+          Condition="$(_DeploymentUseIis) And ($(LocalIisVersion) &lt; '7') "
+          DependsOnTargets="$(AddDeclareParametersItemsForIis6DependsOn)">
+    <GetPublishingLocalizedString
+       Condition="'$(IisUrl)'==''"
+       ID="PublishLocalizedString_ErrorUseIisIsTrueButIisUrlIsEmpty"
+       LogType="Error" />
+    
+    <Error Text="Target AddDeclareParametersItemsForIis6 failed"
+          Condition="'$(IisUrl)'==''" />
+
+    <!--Parameterize the default value of the Path  Note that IIS6 have to use the /lm/w3svc/1/xxxx-->
+    <EscapeTextForRegularExpressions Text="$(_MSDeployIisUrlSource_MetakeyPath)">
+      <Output TaskParameter="Result" PropertyName="_EscapeRegEx_MSDeployIisUrlSource_MetakeyPathSearchPath" />
+    </EscapeTextForRegularExpressions>
+
+    <ItemGroup
+      Condition="!$(DisableAllVSGeneratedMSDeployParameter) And $(_DeploymentUseIis) And ($(LocalIisVersion) &lt; '7') ">
+      <MsDeployDeclareParameters Include="$(DeployParameterIISAppName)" >
+        <Kind>ProviderPath</Kind>
+        <Scope>MetaKey</Scope>
+        <Match>^$(_EscapeRegEx_MSDeployIisUrlSource_MetakeyPathSearchPath)$</Match>
+        <Description>$(DeployParameterIISAppNameDescription)</Description>
+        <DefaultValue>$(_MSDeployIisAppPathIIS6)</DefaultValue>
+        <Value>$(_MSDeployIisAppPathIIS6)</Value>
+        <Tags>IisApp</Tags>
+        <Priority>$(VsIisAppParametersPriority)</Priority>
+      </MsDeployDeclareParameters>
+
+      <MsDeployDeclareParameters Include="$(DeployParameterIISAppPoolName)"
+                              Condition="'$(IisServer_IisAppPoolName)' != '' And '$(ParameterApplicationPool)' == 'True' And '$(IIS6ParameterApplicationPool)' == 'True'" >
+        <Kind>DeploymentObjectAttribute</Kind>
+        <Scope>metaProperty</Scope>
+        <Match>metaProperty[@name='AppPoolId' and @value='$(IisServer_IisAppPoolName)']/@value</Match>
+        <Description>$(DeployParameterIISAppPoolNameDescription)</Description>
+        <DefaultValue>$(_Destination_IisServer_IisAppPoolName)</DefaultValue>
+        <Value>$(_Destination_IisServer_IisAppPoolName)</Value>
+        <Tags></Tags>
+        <Priority>$(VsIisAppParametersPriority)</Priority>
+      </MsDeployDeclareParameters>
+
+
+    </ItemGroup>
+
+    <CallTarget Condition="'$(AfterAddDeclareParametersItemsForIis6)' != ''"
+                Targets="$(AfterAddDeclareParametersItemsForIis6)"
+                RunEachTargetSeparately="false" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!-- AddIisSettingAndFileContentsToSourceManifest  -->
+  <!-- ********************************************************************-->
+  <PropertyGroup>
+    <BeforeAddIisSettingAndFileContentsToSourceManifest Condition="'$(BeforeAddIisSettingAndFileContentsToSourceManifest)'==''">
+    </BeforeAddIisSettingAndFileContentsToSourceManifest>
+    <AfterAddIisSettingAndFileContentsToSourceManifest Condition="'$(AfterAddIisSettingAndFileContentsToSourceManifest)'==''">
+    </AfterAddIisSettingAndFileContentsToSourceManifest>
+    <AddIisSettingAndFileContentsToSourceManifestDependsOn Condition="'$(AddIisSettingAndFileContentsToSourceManifestDependsOn)' == ''">
+      $(BeforeAddIisSettingAndFileContentsToSourceManifest);
+      PipelineCopyAllFilesToOneFolderForMsdeploy;
+      GenerateMsDeployManifestSettings;
+      AddContentPathToSourceManifest;
+    </AddIisSettingAndFileContentsToSourceManifestDependsOn>
+  </PropertyGroup>
+  <Target Name="AddIisSettingAndFileContentsToSourceManifest"
+          DependsOnTargets="$(AddIisSettingAndFileContentsToSourceManifestDependsOn)">
+    <!--Create the Source Manifest file-->
+    <CallTarget Targets="$(AfterAddIisSettingAndFileContentsToSourceManifest)" RunEachTargetSeparately="false" Condition="'$(AfterAddIisSettingAndFileContentsToSourceManifest)' != ''" />
+  </Target>
+
+  <!--********************************************************************-->
+  <!-- AddContentPathToSourceManifest  -->
+  <!-- ********************************************************************-->
+  <PropertyGroup>
+    <BeforeAddContentPathToSourceManifest Condition="'$(BeforeAddContentPathToSourceManifest)'==''">
+    </BeforeAddContentPathToSourceManifest>
+    <AfterAddContentPathToSourceManifest Condition="'$(AfterAddContentPathToSourceManifest)'==''">
+    </AfterAddContentPathToSourceManifest>
+    <AddContentPathToSourceManifestDependsOn Condition="'$(AddContentPathToSourceManifestDependsOn)' == ''">
+      $(BeforeAddContentPathToSourceManifest);
+      PipelineCopyAllFilesToOneFolderForMsdeploy;
+      GenerateMsDeployManifestSettings;
+      AddIis7ToSourceManifest;
+      AddIis6ToSourceManifest
+    </AddContentPathToSourceManifestDependsOn>
+  </PropertyGroup>
+  <Target Name="AddContentPathToSourceManifest"
+          DependsOnTargets="$(AddContentPathToSourceManifestDependsOn)">
+    <!-- Create the Source Manifest file -->
+    <!--
+    If indicated to mark the dest as an IIS app it will be created with iisApp, 
+    otherwise contentPath will be used.
+    -->
+
+    <GetDeployManagedRuntimeVersion Condition="'$(DeployManagedRuntimeVersion)'=='' And $(_DeploymentAsIisApp) And !$(IgnoreDeployManagedRuntimeVersion)"
+                                    TargetFrameworkVersion="$(DeployDefaultTargetFrameworkVersion)">
+      <Output TaskParameter="Result" PropertyName="DeployManagedRuntimeVersion" />
+      <Output TaskParameter="Version" PropertyName="DeployManagedRuntimeVersionNumeric" />
+    </GetDeployManagedRuntimeVersion>
+
+    <PropertyGroup Condition="!$(IgnoreDeployManagedRuntimeVersion)">
+      <_DeployManagedRuntimeVersion Condition="'$(DeployManagedRuntimeVersionNumeric)' != '' And ($(DeployManagedRuntimeVersionNumeric) &gt;= '4.0') ">$(DeployManagedRuntimeVersion)</_DeployManagedRuntimeVersion>
+      <!-- User explicit set the $(DeployManagedRuntimeVersion), we should honor it -->
+      <_DeployManagedRuntimeVersion Condition="'$(DeployManagedRuntimeVersionNumeric)' == '' And '$(DeployManagedRuntimeVersion)'!=''">$(DeployManagedRuntimeVersion)</_DeployManagedRuntimeVersion>
+    </PropertyGroup>
+
+    <ItemGroup>
+      <!-- For IIS App, below are default to the known value
+      <DeployManagedRuntimeVersion Condition="'$(DeployManagedRuntimeVersion)'==''">$(DeployDefaultTargetFrameworkVersion)</DeployManagedRuntimeVersion>
+      <DeployEnable32bitAppOnWin64 Condition="'$(DeployEnable32bitAppOnWin64)'==''"></DeployEnable32bitAppOnWin64>
+      <DeployManagedPipelineMode Condition="'$(DeployManagedPipelineMode)'==''"></DeployManagedPipelineMode>
+      -->
+      <MsDeploySourceManifest Condition="$(_DeploymentAsIisApp)"
+                              Include="IisApp">
+        <Path>$(_MSDeployDirPath_FullPath)</Path>
+        <managedRuntimeVersion>$(_DeployManagedRuntimeVersion)</managedRuntimeVersion>
+        <enable32bitAppOnWin64>$(DeployEnable32bitAppOnWin64)</enable32bitAppOnWin64>
+        <managedPipelineMode>$(DeployManagedPipelineMode)</managedPipelineMode>
+        <AdditionalProviderSettings>managedRuntimeVersion;enable32bitAppOnWin64;managedPipelineMode</AdditionalProviderSettings>
+      </MsDeploySourceManifest>
+
+      <MsDeploySourceManifest Condition="!$(_DeploymentAsIisApp)"
+                              Include="contentPath">
+        <Path>$(_MSDeployDirPath_FullPath)</Path>
+      </MsDeploySourceManifest>
+
+      <!-- Make sure by default the Networkservice/AppPoolIdentity have read permission to the folder -->
+      <MsDeploySourceManifest Include="setAcl"
+                              Condition="$(_DeploymentAsIisApp) And $(IncludeSetAclProviderOnDestination)">
+        <Path>$(_MSDeployDirPath_FullPath)</Path>
+        <setAclResourceType>Directory</setAclResourceType>
+        <AdditionalProviderSettings>setAclResourceType</AdditionalProviderSettings>
+      </MsDeploySourceManifest>
+
+      <!-- Make sure by default the anonymousAuthenticationUser have read permission to the folder so MIME type files will work -->
+      <MsDeploySourceManifest Include="setAcl"
+                              Condition="$(_DeploymentAsIisApp) And $(IncludeSetAclProviderOnDestination)">
+        <Path>$(_MSDeployDirPath_FullPath)</Path>
+        <setAclUser>anonymousAuthenticationUser</setAclUser>
+        <setAclResourceType>Directory</setAclResourceType>
+        <AdditionalProviderSettings>setAclUser;setAclResourceType</AdditionalProviderSettings>
+      </MsDeploySourceManifest>
+
+      <!-- Additionally if App_Data Need to be ReadWrite -->
+      <MsDeploySourceManifest Include="setAcl"
+                        Condition="$(_DeploymentAsIisApp) And $(IncludeSetAclProviderOnDestination) And $(MarkApp_DataWritableOnDestination) And Exists('$(_MSDeployDirPath_FullPath)\App_Data')">
+        <Path>$(_MSDeployDirPath_FullPath)\App_Data</Path>
+        <setAclAccess>Write</setAclAccess>
+        <setAclResourceType>Directory</setAclResourceType>
+        <AdditionalProviderSettings>setAclResourceType;setAclAccess</AdditionalProviderSettings>
+      </MsDeploySourceManifest>
+    </ItemGroup>
+
+    <CallTarget Targets="$(AfterAddContentPathToSourceManifest)" RunEachTargetSeparately="false" Condition="'$(AfterAddContentPathToSourceManifest)' != ''" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!-- AddIisAndContentDeclareParametersItems  -->
+  <!-- ********************************************************************-->
+  <PropertyGroup>
+    <BeforeAddIisAndContentDeclareParametersItems Condition="'$(BeforeAddIisAndContentDeclareParametersItems)'==''">
+    </BeforeAddIisAndContentDeclareParametersItems>
+    <AfterAddIisAndContentDeclareParametersItems Condition="'$(AfterAddIisAndContentDeclareParametersItems)'==''">
+    </AfterAddIisAndContentDeclareParametersItems>
+    <AddIisAndContentDeclareParametersItemsDependsOn Condition="'$(AddIisAndContentDeclareParametersItemsDependsOn)' == ''">
+      $(BeforeAddIisAndContentDeclareParametersItems);
+      PipelineCopyAllFilesToOneFolderForMsdeploy;
+      GenerateMsDeployManifestSettings;
+      AddDeclareParametersItemsForContentPath;
+    </AddIisAndContentDeclareParametersItemsDependsOn>
+  </PropertyGroup>
+  <Target Name="AddIisAndContentDeclareParametersItems"
+          DependsOnTargets="$(AddIisAndContentDeclareParametersItemsDependsOn)">
+    <CallTarget Targets="$(AfterAddIisAndContentDeclareParametersItems)" RunEachTargetSeparately="false" Condition="'$(AfterAddIisAndContentDeclareParametersItems)' != ''" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!-- AddDeclareParametersItemsForContentPath  -->
+  <!-- ********************************************************************-->
+  <PropertyGroup>
+    <BeforeAddDeclareParametersItemsForContentPath Condition="'$(BeforeAddDeclareParametersItemsForContentPath)'==''">
+    </BeforeAddDeclareParametersItemsForContentPath>
+    <AfterAddDeclareParametersItemsForContentPath Condition="'$(AfterAddDeclareParametersItemsForContentPath)'==''">
+    </AfterAddDeclareParametersItemsForContentPath>
+    <AddDeclareParametersItemsForContentPathDependsOn Condition="'$(AddDeclareParametersItemsForContentPathDependsOn)' == ''">
+      $(BeforeAddDeclareParametersItemsForContentPath);
+      PipelineCopyAllFilesToOneFolderForMsdeploy;
+      GenerateMsDeployManifestSettings;
+      AddDeclareParametersItemsForIis7;
+      AddDeclareParametersItemsForIis6;
+    </AddDeclareParametersItemsForContentPathDependsOn>
+  </PropertyGroup>
+  <Target Name="AddDeclareParametersItemsForContentPath"
+          DependsOnTargets="$(AddDeclareParametersItemsForContentPathDependsOn)">
+    <!--  Now we create the destination manifest file -->
+
+    <PropertyGroup>
+      <!-- default fall back to physical path-->
+      <_DestinationContentPath>$(_DestinationIisAppPhysicalPath)</_DestinationContentPath>
+      <!-- For iis6 scenario-->
+      <_DestinationContentPath Condition="($(DestinationUseIis) or $(_DeploymentAsIisApp)) And ($(DestinationIisVersion) &lt; '7') And ('$(_MSDeployIisAppPathIIS6)'!= '') " >$(_MSDeployIisAppPathIIS6)</_DestinationContentPath>
+      <!-- For iis7 and above scenario-->
+      <_DestinationContentPath Condition="($(DestinationUseIis) or $(_DeploymentAsIisApp)) And ($(DestinationIisVersion) &gt;= '7') And ('$(_MSDeployIisAppPathIIS7)' !='')">$(_MSDeployIisAppPathIIS7)</_DestinationContentPath>
+      <!-- default ParameterName for contentPath, by default they are the same as ApphostConfig/MetaKey so they can reuse the parameter-->
+      <_MsDeployParameterNameForContentPath>$(DeployParameterIISAppName)</_MsDeployParameterNameForContentPath>
+      <_MsDeployParameterNameForContentPath Condition="$(_DeploymentUseIis) And (!$(DestinationUseIis))">$(DeployParameterIISAppPhysicalPath)</_MsDeployParameterNameForContentPath>
+      <_MsDeployParameterTagForContentPath>PhysicalPath</_MsDeployParameterTagForContentPath>
+      <_MsDeployParameterTagForContentPath  Condition="$(_DeploymentAsIisApp)">IisApp</_MsDeployParameterTagForContentPath>
+      <_MsDeployParameterDefaultValueForContentPath>$(_DestinationContentPath)</_MsDeployParameterDefaultValueForContentPath>
+      <_MsDeployParameterExcludeSetParameterForContentPath>False</_MsDeployParameterExcludeSetParameterForContentPath>
+      <_MsDeployParameterPhysicalFolderForSetAcl>{$(_MsDeployParameterNameForContentPath)}</_MsDeployParameterPhysicalFolderForSetAcl>
+      <_MsDeployParameterPhysicalFolderAppDataForSetAcl>{$(_MsDeployParameterNameForContentPath)}/App_Data</_MsDeployParameterPhysicalFolderAppDataForSetAcl>
+    
+  </PropertyGroup>
+
+    <GetPublishingLocalizedString
+       Condition="$(DestinationUseIis) 
+             And ((($(DestinationIisVersion) &lt; '7') And ('$(_MSDeployIisAppPathIIS6)'== ''))
+                   Or ( ($(DestinationIisVersion) &gt;= '7') And ('$(_MSDeployIisAppPathIIS7)' ==''))) "
+       ID="PublishLocalizedString_ErrorInvalidPropertyWhenSettingPropertyIsTrue"
+       ArgumentCount="2"
+       Arguments="DeployIisAppPath;DestinationUseIIS"
+       LogType="Error" />
+    
+    <Error  Text ="Target AddDeclareParametersItemsForContentPath Failed"
+            Condition="$(DestinationUseIis) 
+             And ((($(DestinationIisVersion) &lt; '7') And ('$(_MSDeployIisAppPathIIS6)'== ''))
+                   Or ( ($(DestinationIisVersion) &gt;= '7') And ('$(_MSDeployIisAppPathIIS7)' ==''))) "
+                   />
+    <!--
+    If indicated to mark the dest as an IIS app it will be created with iisApp, 
+    otherwise contentPath will be used.
+    -->
+
+    <!--Parameterize the default value of the Path-->
+    <EscapeTextForRegularExpressions Text="$(_MSDeployDirPath_FullPath)">
+      <Output TaskParameter="Result" PropertyName="_EscapeRegEx_MSDeployDirPath" />
+    </EscapeTextForRegularExpressions>
+
+
+    <ItemGroup 
+      Condition="!$(DisableAllVSGeneratedMSDeployParameter) And '$(_DestinationContentPath)' != ''">
+      <MsDeployDeclareParameters Include="$(_MsDeployParameterNameForContentPath)"
+                                 Condition="$(_DeploymentAsIisApp)">
+        <Kind>ProviderPath</Kind>
+        <Scope>IisApp</Scope>
+        <Match>^$(_EscapeRegEx_MSDeployDirPath)$</Match>
+        <Description>$(DeployParameterIISAppNameDescription)</Description>
+        <DefaultValue>$(_MsDeployParameterDefaultValueForContentPath)</DefaultValue>
+        <Value>$(_DestinationContentPath)</Value>
+        <Tags>$(_MsDeployParameterTagForContentPath)</Tags>
+        <Priority>$(VsIisAppParametersPriority)</Priority>
+        <ExcludeFromSetParameter>$(_MsDeployParameterExcludeSetParameterForContentPath)</ExcludeFromSetParameter>
+      </MsDeployDeclareParameters>
+    
+      <MsDeployDeclareParameters Include="$(_MsDeployParameterNameForContentPath)"
+                                 Condition="!$(_DeploymentAsIisApp)">
+        <Kind>ProviderPath</Kind>
+        <Scope>contentPath</Scope>
+        <Match>^$(_EscapeRegEx_MSDeployDirPath)$</Match>
+        <Description>$(DeployParameterIISAppPhysicalPathDescription)</Description>
+        <DefaultValue>$(_MsDeployParameterDefaultValueForContentPath)</DefaultValue>
+        <Value>$(_DestinationContentPath)</Value>
+        <Tags>$(_MsDeployParameterTagForContentPath)</Tags>
+        <Priority>$(VsContentPathParametersPriority)</Priority>
+        <ExcludeFromSetParameter>$(_MsDeployParameterExcludeSetParameterForContentPath)</ExcludeFromSetParameter>
+      </MsDeployDeclareParameters>
+    </ItemGroup>
+
+
+    <!-- SetAcl Provider-->
+    <ItemGroup Condition="!$(DisableAllVSGeneratedMSDeployParameter) and '$(_DestinationContentPath)' != '' and $(IncludeSetAclProviderOnDestination)" >
+      <MsDeployDeclareParameters Include="$(_MsDeployParameterNameForContentPath)">
+        <Kind>ProviderPath</Kind>
+        <Scope>setAcl</Scope>
+        <Match>^$(_EscapeRegEx_MSDeployDirPath)$</Match>
+        <Description>$(DeployParameterIISAppPhysicalPathDescription)</Description>
+        <DefaultValue>$(_MsDeployParameterDefaultValueForContentPath)</DefaultValue>
+        <Value>$(_DestinationContentPath)</Value>
+        <Tags></Tags>
+        <ExcludeFromSetParameter>$(_MsDeployParameterExcludeSetParameterForContentPath)</ExcludeFromSetParameter>
+        <Priority>$(VsSetAclPriority)</Priority>
+      </MsDeployDeclareParameters>
+       <!-- Optionally mark write permission for the AppData Folder-->
+       <MsDeployDeclareParameters Include="$(DeployParameterApp_DataWritePermission)"
+                                 Condition="$(MarkApp_DataWritableOnDestination) and Exists('$(_MSDeployDirPath_FullPath)\App_Data')">
+        <Kind>ProviderPath</Kind>
+        <Scope>setAcl</Scope>
+        <Match>^$(_EscapeRegEx_MSDeployDirPath)\\App_Data$</Match>
+        <Description>Add write permission to App_Data folder</Description>
+        <DefaultValue>{$(_MsDeployParameterNameForContentPath)}/App_Data</DefaultValue>
+        <Value>$(_DestinationContentPath)/App_Data</Value>
+        <Tags>Hidden</Tags>
+        <Priority>$(VsSetAclPriority)</Priority>
+        <ExcludeFromSetParameter>True</ExcludeFromSetParameter>
+      </MsDeployDeclareParameters>
+    </ItemGroup>
+
+
+    <!-- We need this value to generate skip rule to skip App_Data folder-->
+    <CreateProperty Value="$(_DestinationContentPath)">
+      <Output TaskParameter="Value" PropertyName="DestinationAppRoot"/>
+    </CreateProperty>
+    <CallTarget Targets="$(AfterAddDeclareParametersItemsForContentPath)" RunEachTargetSeparately="false" Condition="'$(AfterAddDeclareParametersItemsForContentPath)' != ''" />
+  </Target>
+
+  
+  <!--********************************************************************-->
+  <!-- WriteItemsToSourceManifest  -->
+  <!-- ********************************************************************-->
+  <PropertyGroup>
+    <BeforeWriteItemsToSourceManifest Condition="'$(BeforeWriteItemsToSourceManifest)'==''">
+    </BeforeWriteItemsToSourceManifest>
+    <AfterWriteItemsToSourceManifest Condition="'$(AfterWriteItemsToSourceManifest)'==''">
+    </AfterWriteItemsToSourceManifest>
+    <WriteItemsToSourceManifestDependsOn>
+      $(BeforeWriteItemsToSourceManifest);
+      $(WriteItemsToSourceManifestDependsOn);
+      AddIisSettingAndFileContentsToSourceManifest;
+    </WriteItemsToSourceManifestDependsOn>
+  </PropertyGroup>
+  <Target Name="WriteItemsToSourceManifest"
+          DependsOnTargets="$(WriteItemsToSourceManifestDependsOn)">
+
+    <ExportManifestFile Manifests="@(MsDeploySourceManifest)" ManifestFile="$(PackageSourceManifest)" />
+    <ItemGroup>
+      <FileWrites Include="$(PackageSourceManifest)" />
+    </ItemGroup>
+
+    <CallTarget Targets="$(AfterWriteItemsToSourceManifest)" RunEachTargetSeparately="false" Condition="'$(AfterWriteItemsToSourceManifest)' != ''" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!-- AddDeclareParametersItems  -->
+  <!-- ********************************************************************-->
+  <PropertyGroup>
+    <BeforeAddDeclareParametersItems Condition="'$(BeforeAddDeclareParametersItems)'==''">
+    </BeforeAddDeclareParametersItems>
+    <AfterAddDeclareParametersItems Condition="'$(AfterAddDeclareParametersItems)'==''">
+    </AfterAddDeclareParametersItems>
+    <AddDeclareParametersItemsDependsOn Condition="'$(AddDeclareParametersItemsDependsOn)' == ''">
+      $(BeforeAddDeclareParametersItems);
+      AddIisAndContentDeclareParametersItems;
+      AddDeclareParametersItemsForDatabaseScript;
+    </AddDeclareParametersItemsDependsOn>
+  </PropertyGroup>
+  <Target Name="AddDeclareParametersItems"
+          DependsOnTargets="$(AddDeclareParametersItemsDependsOn)">
+    <PropertyGroup>
+      <_PublishDefaultVDirectoryPath>$(RemoteSitePhysicalPath)</_PublishDefaultVDirectoryPath>
+      <_PublishDefaultVDirectoryPath Condition="'$(_PublishDefaultVDirectoryPath)'==''">$(_DestinationIisAppPhysicalPath)</_PublishDefaultVDirectoryPath>
+    </PropertyGroup>
+
+    <!-- Create Virtual Directory Parameter if needed-->
+    <GetPublishingLocalizedString
+       Condition="'$(_DestinationIisAppPhysicalPath)' == '' And $(_DeploymentUseIis)"
+       ID="PublishLocalizedString_ErrorInvalidPropertyWhenSettingPropertyIsTrue"
+       ArgumentCount="2"
+       Arguments="_DestinationIisAppPhysicalPath;_DeploymentUseIis"
+       LogType="Error" />
+
+    <Error  Text ="Target AddDeclareParametersItems Failed"
+             Condition="'$(_DestinationIisAppPhysicalPath)' == '' And $(_DeploymentUseIis)"
+                   />
+    <ItemGroup>
+      <_MSBuildReplaceRuleItemMSBuildProjectDirectory Include="$(WebPublishPipelineProjectDirectory)" />
+    </ItemGroup>
+
+    <EscapeTextForRegularExpressions Text="@(_MSBuildReplaceRuleItemMSBuildProjectDirectory->'%(FullPath)')">
+      <Output TaskParameter="Result" PropertyName="_EscapeRegExMSBuildProjectDirectory" />
+    </EscapeTextForRegularExpressions>
+
+    <ItemGroup>
+      <MsDeployDeclareParameters  Include="$(DeployParameterPrefix)IisVirtualDirectoryPhysicalPath"
+                                  Condition="!$(DisableAllVSGeneratedMSDeployParameter) And $(_DeploymentUseIis)" >
+        <Kind>DestinationVirtualDirectory</Kind>
+        <Scope>.*</Scope>
+        <Match>^$(_EscapeRegExMSBuildProjectDirectory)$</Match>
+        <Description>$(DeployParameterIISAppPhysicalPathDescription)</Description>
+        <DefaultValue>$(_DestinationIisAppPhysicalPath)</DefaultValue>
+        <!--Value is used in the SetParameters when directly publish-->
+        <Value>$(_PublishDefaultVDirectoryPath)</Value>
+        <Tags>PhysicalPath</Tags>
+        <Priority>$(VsDestinationVDirParametersPriority)</Priority>
+      </MsDeployDeclareParameters>
+    </ItemGroup>
+
+    <CallTarget Targets="$(AfterAddDeclareParametersItems)" RunEachTargetSeparately="false" Condition="'$(AfterAddDeclareParametersItems)' != ''" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!-- GenerateMsDeployManifestSettings  -->
+  <!-- ********************************************************************-->
+  <PropertyGroup>
+    <GenerateMsDeployManifestSettingsDependsOn Condition="'$(GenerateMsDeployManifestSettingsDependsOn)'==''">
+    </GenerateMsDeployManifestSettingsDependsOn>
+  </PropertyGroup>
+
+  <Target Name="GenerateMsDeployManifestSettings" DependsOnTargets="$(GenerateMsDeployManifestSettingsDependsOn)">
+    <!-- we can only set this property after we get the existing IisUrl -->
+    <ItemGroup>
+      <_MSDeployDirPath Include="$(WPPAllFilesInSingleFolder)" />
+    </ItemGroup>
+
+    <GetPublishingLocalizedString
+      Condition="'$(DeployParameterIISAppNameDescription)'=='' And !$(DeployParameterAutoDescriptionbyTags)"
+      ID="PublishLocalizedString_IISAppParameterDescription">
+      <Output TaskParameter="Result" PropertyName="DeployParameterIISAppNameDescription" />
+    </GetPublishingLocalizedString>
+
+    <!--if $(DeployParameterAutoDescriptionbyTags), we turn off the description.-->
+    <DeployParameterIISAppNameDescription Condition="'$(DeployParameterIISAppNameDescription)'!='' And $(DeployParameterAutoDescriptionbyTags)"></DeployParameterIISAppNameDescription>
+
+    <!--Get localized $(DeployParameterIISAppPhysicalPathDescription) from the Task.dll if it wasn't bee set by user.-->
+    <GetPublishingLocalizedString
+          Condition="'$(DeployParameterIISAppPhysicalPathDescription)'=='' And !$(DeployParameterAutoDescriptionbyTags)"
+          ID="PublishLocalizedString_IISAppPhysicalPathDescription">
+      <Output TaskParameter="Result" PropertyName="DeployParameterIISAppPhysicalPathDescription" />
+    </GetPublishingLocalizedString>
+
+    <!--if $(DeployParameterAutoDescriptionbyTags), we turn off the description.-->
+    <DeployParameterIISAppPhysicalPathDescription Condition="'$(DeployParameterIISAppPhysicalPathDescription)'!='' And $(DeployParameterAutoDescriptionbyTags)"></DeployParameterIISAppPhysicalPathDescription>
+
+    <PropertyGroup>
+      <_MSDeployDirPath_FullPath>@(_MSDeployDirPath->'%(FullPath)')</_MSDeployDirPath_FullPath>
+      <_MSDeployIisAppPathIIS7>$(DeployIisAppPath)</_MSDeployIisAppPathIIS7>
+      <_MSDeployIisAppPathIIS6>$(DeployIisAppPath)</_MSDeployIisAppPathIIS6>
+      <_MSDeployIisAppPathIIS7 Condition="'$(_MSDeployIisAppPathIIS7)'==''">$(DefaultDeployIisAppPath)</_MSDeployIisAppPathIIS7>
+      <_MSDeployIisAppPathIIS6 Condition="'$(_MSDeployIisAppPathIIS6)'==''">$(DefaultDeployIisAppPath)</_MSDeployIisAppPathIIS6>
+    </PropertyGroup>
+
+    <ItemGroup>
+      <_MSDeploySourceManifest Include="$(PackageSourceManifest)" />
+      <_MSDeployParametersFile Include="$(PackageParametersFile)" />
+      <_MSDeploySampleParametersValue Condition="$(GenerateSampleDeployScript)" Include="$(GenerateSampleParametersValueLocation)" />
+      <_MSDeployGenerateSampleDeployScriptReadMeLocation Condition="$(GenerateSampleDeployScript)" Include="$(GenerateSampleDeployScriptReadMeLocation)" />
+    </ItemGroup>
+  </Target>
+
+  <!-- CleanWebsitesPackageCore  -->
+  <PropertyGroup>
+    <CleanWebsitesPackageCoreDependsOn Condition="'$(CleanWebsitesPackageCoreDependsOn)' == ''">
+      GenerateMsDeployManifestSettings;
+    </CleanWebsitesPackageCoreDependsOn>
+  </PropertyGroup>
+  <Target Name="CleanWebsitesPackageCore" DependsOnTargets="$(CleanWebsitesPackageCoreDependsOn)">
+    <!--Assertion check-->
+    <CheckItemsCount Items="@(_MSDeployPackageLocation)" Condition="$(EnablePackageProcessLoggingAndAssert)">
+      <Output TaskParameter="Count" PropertyName="_InternalItemsCount" />
+    </CheckItemsCount>
+
+    <GetPublishingLocalizedString
+       Condition="$(EnablePackageProcessLoggingAndAssert) AND '$(_InternalItemsCount)' != '1'"
+       ID="PublishLocalizedString_ErrorInvalidMSBuildItemCollectionCount"
+       ArgumentCount="3"
+       Arguments="_MSDeployPackageLocation;$(_InternalItemsCount);1"
+       LogType="Error" />
+
+    <Error  Text ="Target CleanWebsitesPackageCore Failed"
+             Condition="$(EnablePackageProcessLoggingAndAssert) AND '$(_InternalItemsCount)' != '1'" />
+
+    <CheckPathAttributes Path="@(_MSDeployPackageLocation->'%(Identity)')">
+      <Output TaskParameter="IsExists" PropertyName="_CheckPackageLocationExists" />
+      <Output TaskParameter="IsFolder" PropertyName="_CheckPackageLocationIsFolder" />
+    </CheckPathAttributes>
+
+    <RemoveDir Directories="@(_MSDeployPackageLocation)"
+               Condition="$(_CheckPackageLocationExists) AND $(_CheckPackageLocationIsFolder)"
+               ContinueOnError="True"/>
+
+    <Delete Files="@(_MSDeployPackageLocation)" 
+               Condition="$(_CheckPackageLocationExists) AND !$(_CheckPackageLocationIsFolder)" 
+               TreatErrorsAsWarnings="True"  />
+  </Target>
+
+  <!--********************************************************************-->
+  <!-- CleanWebsitesPackage  -->
+  <!-- ********************************************************************-->
+  <PropertyGroup>
+    <CleanWebsitesPackageDependsOn Condition="'$(CleanWebsitesPackageDependsOn)' == ''">
+      GenerateMsDeployManifestSettings;
+      CleanWebsitesPackageCore;
+    </CleanWebsitesPackageDependsOn>
+  </PropertyGroup>
+  <Target Name="CleanWebsitesPackage" DependsOnTargets="$(CleanWebsitesPackageDependsOn)">
+    
+    <!--<RemoveDir Condition="Exists($(PackageLogDir))" Directories="$(PackageLogDir)" ContinueOnError="true" />-->
+    <Delete Files="$(PackageSourceManifest)" Condition="Exists('$(PackageSourceManifest)')" TreatErrorsAsWarnings="True" />
+    <Delete Files="$(PublishParametersFile)" Condition="Exists('$(PublishParametersFile)')" TreatErrorsAsWarnings="True" />
+    <Delete Files="$(GenerateSampleDeployScriptLocation)" Condition="Exists('$(GenerateSampleDeployScriptLocation)')" TreatErrorsAsWarnings="True" />
+    <Delete Files="$(GenerateSampleDeployScriptReadMeLocation)" Condition="Exists('$(GenerateSampleDeployScriptReadMeLocation)')" TreatErrorsAsWarnings="True" />
+    <Delete Files="$(GenerateSampleParametersValueLocation)" Condition="Exists('$(GenerateSampleParametersValueLocation)')" TreatErrorsAsWarnings="True" />
+    <Delete Files="$(GenerateSampleParametersValueLocation)" Condition="Exists('$(GenerateSampleParametersValueLocation)')" TreatErrorsAsWarnings="True" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!-- CleanWebsitesWPPAllFilesInSingleFolder  -->
+  <!-- ********************************************************************-->
+  <PropertyGroup>
+    <CleanWebsitesWPPAllFilesInSingleFolderDependsOn Condition="'$(CleanWebsitesWPPAllFilesInSingleFolderDependsOn)' == ''">
+    </CleanWebsitesWPPAllFilesInSingleFolderDependsOn>
+  </PropertyGroup>
+  <Target Name="CleanWebsitesWPPAllFilesInSingleFolder" DependsOnTargets="$(CleanWebsitesWPPAllFilesInSingleFolderDependsOn)">
+    <!-- Assertion check-->
+    <!-- In the case of Clean Packaging/Publish, we simply delete the WPPAllFilesInSingleFolder -->
+    <RemoveDir Condition="Exists($(WPPAllFilesInSingleFolder))" Directories="$(WPPAllFilesInSingleFolder)" ContinueOnError="true" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!-- CleanWebPublishPipelineIntermediateOutput  -->
+  <!-- ********************************************************************-->
+  <PropertyGroup>
+    <CleanWebPublishPipelineIntermediateOutputDependsOn Condition="'$(CleanWebPublishPipelineIntermediateOutputDependsOn)' == ''">
+    </CleanWebPublishPipelineIntermediateOutputDependsOn>
+  </PropertyGroup>
+  <Target Name="CleanWebPublishPipelineIntermediateOutput" DependsOnTargets="$(CleanWebPublishPipelineIntermediateOutputDependsOn)">
+    <RemoveDir Condition="Exists($(AutoParameterizationWebConfigConnectionStringsLocation))" Directories="$(AutoParameterizationWebConfigConnectionStringsLocation)" ContinueOnError="true" />
+    <RemoveDir Condition="Exists($(TransformWebConfigIntermediateLocation))" Directories="$(TransformWebConfigIntermediateLocation)" ContinueOnError="true" />
+    <RemoveDir Condition="Exists($(ProfileTransformWebConfigIntermediateLocation))" Directories="$(ProfileTransformWebConfigIntermediateLocation)" ContinueOnError="true" />
+    <RemoveDir Condition="Exists($(DatabaseDeployIntermediateOutputPath))" Directories="$(DatabaseDeployIntermediateOutputPath)" ContinueOnError="true" />
+    <RemoveDir Condition="Exists($(InsertAdditionalWebCofigConnectionStringsLocation))" Directories="$(InsertAdditionalWebCofigConnectionStringsLocation)" ContinueOnError="true" />
+    <Delete Condition="Exists($(_WebConfigTransformOutputParametersFile))" Files="$(_WebConfigTransformOutputParametersFile)" TreatErrorsAsWarnings="true" />
+    <Delete Condition="Exists($(_WebConfigsToAutoParmeterizeCsTransformOutputParametersFile))" Files="$(_WebConfigsToAutoParmeterizeCsTransformOutputParametersFile)" TreatErrorsAsWarnings="true" />
+    <Delete Condition="Exists($(_ProfileWebConfigTransformOutputParametersFile))" Files="$(_ProfileWebConfigTransformOutputParametersFile)" TreatErrorsAsWarnings="true" />
+    <Delete Condition="Exists($(_WPPLastBuildInfoLocation))" Files="$(_WPPLastBuildInfoLocation)" TreatErrorsAsWarnings="true" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!-- CheckAndCleanMSDeployPackageIfNeeded  -->
+  <!-- ********************************************************************-->
+  <PropertyGroup>
+    <CheckAndCleanMSDeployPackageIfNeededDependsOn Condition="'$(CheckAndCleanMSDeployPackageIfNeededDependsOn)'==''">
+      GenerateMsDeployManifestSettings;
+    </CheckAndCleanMSDeployPackageIfNeededDependsOn>
+  </PropertyGroup>
+  <Target Name="CheckAndCleanMSDeployPackageIfNeeded" >
+    <IsCleanMSDeployPackageNeeded
+      MSDeployVersionsToTry="$(_MSDeployVersionsToTry)"
+      PackageLocation="@(_MSDeployPackageLocation->'%(FullPath)')"
+      PackageAsSingleFile="$(PackageAsSingleFile)"
+      CurrentSourceManifestPath="@(_MSDeploySourceManifest->'%(FullPath)')"  >
+      <Output TaskParameter="Result"
+              PropertyName="_IsCleanMSDeployPackageNeeded" />
+    </IsCleanMSDeployPackageNeeded>
+    
+    <!-- Only delete the Zip file -->
+    <CallTarget Condition="$(_IsCleanMSDeployPackageNeeded)"
+                Targets="CleanWebsitesPackageCore"  
+                RunEachTargetSeparately="false" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!-- GenerateMsdeployManifestFiles  -->
+  <!-- ********************************************************************-->
+  <PropertyGroup>
+    <OnAfterGenerateMsdeployManifestFiles>
+      $(OnAfterGenerateMsdeployManifestFiles);
+      AddDeclareParametersItems;
+      CheckAndCleanMSDeployPackageIfNeeded;
+    </OnAfterGenerateMsdeployManifestFiles>
+    <GenerateMsdeployManifestFilesDependsOn>
+      $(GenerateMsdeployManifestFilesDependsOn);
+      PipelineCopyAllFilesToOneFolderForMsdeploy;
+      GenerateMsDeployManifestSettings;
+    </GenerateMsdeployManifestFilesDependsOn>
+  </PropertyGroup>
+  <Target Name="GenerateMsdeployManifestFiles" DependsOnTargets="$(GenerateMsdeployManifestFilesDependsOn)">
+
+    <GetPublishingLocalizedString
+       ID="PublishLocalizedString_GenerateMsdeploySourceManifestFile"
+       LogType="Message" />
+
+    <MakeDir Directories="@(_MSDeploySourceManifest->'%(RootDir)%(Directory)')" Condition="!Exists(@(_MSDeploySourceManifest->'%(RootDir)%(Directory)'))"/>
+    <MakeDir Directories="@(_MSDeployParametersFile->'%(RootDir)%(Directory)')" Condition="!Exists(@(_MSDeployParametersFile->'%(RootDir)%(Directory)'))"/>
+
+    <!--================================================-->
+    <!--Create the Source Manifest filePath list-->
+    <!--================================================-->
+    <CallTarget Targets="WriteItemsToSourceManifest" RunEachTargetSeparately="false" />
+    <CallTarget Targets="$(OnAfterGenerateMsdeployManifestFiles)" RunEachTargetSeparately="false" />
+  </Target>
+
+  <!--================================================-->
+  <!--Create skip rules used in sample script generation as well as publish-->
+  <!--================================================-->
+  <Target Name="GenerateSkipRuleForAppData" Condition="$(SkipApp_DataFolder)">
+    <EscapeTextForRegularExpressions Text="$(WPPAllFilesInSingleFolder)">
+      <Output TaskParameter="Result" PropertyName="_Escaped_WPPAllFilesInSingleFolder" />
+    </EscapeTextForRegularExpressions>
+    <ItemGroup>
+      <MsDeploySkipRules Include="SkipAppDataOnDeploy">
+        <SkipAction></SkipAction>
+        <ObjectName>dirPath</ObjectName>
+        <AbsolutePath>$(_Escaped_WPPAllFilesInSingleFolder)\\App_Data$</AbsolutePath>
+        <Apply>Source</Apply>
+        <XPath></XPath>
+      </MsDeploySkipRules>
+      <MsDeploySkipRules Include="SkipAppDataOnDeploy">
+        <SkipAction></SkipAction>
+        <ObjectName>dirPath</ObjectName>
+        <AbsolutePath>$(_DestinationContentPath)\\App_Data$</AbsolutePath>
+        <Apply>Destination</Apply>
+        <XPath></XPath>
+      </MsDeploySkipRules>
+
+    </ItemGroup>
+  </Target>
+
+  <!--********************************************************************-->
+  <!-- PackageUsingManifest Manifest -->
+  <!-- ********************************************************************-->
+  <PropertyGroup>
+    <PackageUsingManifestDependsOn>
+      $(OnBeforePackageUsingManifest);
+      $(PackageUsingManifestDependsOn);
+      GetMSDeployInstalledVersionPath;
+      GenerateMsDeployManifestSettings;
+      GenerateMsdeployManifestFiles;
+      GenerateSkipRuleForAppData;
+    </PackageUsingManifestDependsOn>
+
+  </PropertyGroup>
+  <Target Name="PackageUsingManifest" DependsOnTargets="$(PackageUsingManifestDependsOn)">
+
+    <PropertyGroup>
+      <!-- Always package from a manifest -->
+      <PackageSourceType>manifest</PackageSourceType>
+      <PackageSourceRoot>@(_MSDeploySourceManifest->'%(FullPath)')</PackageSourceRoot>
+      <!-- target is either a single file or archive dir -->
+      <PackageDestinationType>archiveDir</PackageDestinationType>
+      <PackageDestinationRoot>@(_MSDeployArchiveDir->'%(FullPath)')</PackageDestinationRoot>
+      <PackageDestinationType Condition="$(PackageAsSingleFile)">package</PackageDestinationType>
+      <PackageDestinationRoot Condition="$(PackageAsSingleFile)">@(_MSDeployPackageFile->'%(FullPath)')</PackageDestinationRoot>
+      <PackageResult>True</PackageResult>
+    </PropertyGroup>
+
+    <GetPublishingLocalizedString
+       Importance="High"
+       ID="PublishLocalizedString_PackagingIntoLocation"
+       ArgumentCount="1"
+       Arguments="$(PackageDestinationRoot)"
+       LogType="Message" />
+    <!-- "Packaging into $(PackageDestinationRoot)" -->
+
+    <ItemGroup>
+      <MsDeploySourceProviderSetting Remove="@(MsDeploySourceProviderSetting)" />
+      <MsDeploySourceProviderSetting Include="$(PackageSourceType)">
+        <Path>$(PackageSourceRoot)</Path>
+        <EncryptPassword>$(DeployEncryptKey)</EncryptPassword>
+        <WebServerAppHostConfigDirectory>$(IisServer_WebServerAppHostConfigDirectory)</WebServerAppHostConfigDirectory>
+        <WebServerManifest>$(IisServer_WebServerManifest)</WebServerManifest>
+        <WebServerDirectory>$(IisServer_WebServerDirectory)</WebServerDirectory>
+    </MsDeploySourceProviderSetting>
+      <MsDeployDestinationProviderSetting Remove="@(MsDeployDestinationProviderSetting)" />
+      <MsDeployDestinationProviderSetting Include="$(PackageDestinationType)">
+        <Path>$(PackageDestinationRoot)</Path>
+        <EncryptPassword>$(DeployEncryptKey)</EncryptPassword>
+        <IncludeAcls>False</IncludeAcls>
+      </MsDeployDestinationProviderSetting>
+    </ItemGroup>
+
+    <!--Debugging helper don't need to be localized-->
+    <Message Text="PackageUsingManifest MsDeploySourceProviderSetting is @(MsDeploySourceProviderSetting)" Condition="$(EnablePackageProcessLoggingAndAssert)" />
+    <Message Text="PackageUsingManifest MsDeployDestinationProviderSetting is @(MsDeployDestinationProviderSetting)" Condition="$(EnablePackageProcessLoggingAndAssert)"/>
+
+    <ExportParametersFile
+      Condition="!$(UseDeclareParametersXMLInMsDeploy) And $(EnablePackageProcessLoggingAndAssert)"
+      Parameters="@(MsDeployDeclareParameters)"
+      DeclareParameterFile="$(PackageLogDir)\PackageUsingManifest.parameters.xml"
+      GenerateFileEvenIfEmpty="True"
+      />
+
+    <!-- First delete the ParameterFile-->
+    <Delete Files="$(PackageParametersFile)"  Condition="Exists($(PackageParametersFile))"  ContinueOnError="true"/>
+
+    <ExportParametersFile
+      Condition="$(UseDeclareParametersXMLInMsDeploy)"
+      Parameters="@(MsDeployDeclareParameters)"
+      DeclareParameterFile="$(PackageParametersFile)"
+      GenerateFileEvenIfEmpty="True"
+      />
+
+    <PropertyGroup>
+      <_VsPackageParametersFile></_VsPackageParametersFile>
+      <_VsPackageParametersFile Condition="$(UseDeclareParametersXMLInMsDeploy)">$(PackageParametersFile)</_VsPackageParametersFile>
+    </PropertyGroup>
+    <ItemGroup>
+      <!-- We will include the parameter when $(UseDeclareParametersXMLInMsDeploy) is false-->
+      <_Package_MsDeployDeclareParameters Include="@(MsDeployDeclareParameters)" Condition="!$(UseDeclareParametersXMLInMsDeploy)" />
+    </ItemGroup>
+
+
+    <VSMSDeploy Condition="!$(UseMsdeployExe)"
+       MSDeployVersionsToTry="$(_MSDeployVersionsToTry)"
+       Source="@(MsDeploySourceProviderSetting)"
+       Destination="@(MsDeployDestinationProviderSetting)"
+       DeploymentTraceLevel="$(PackageTraceLevel)"
+       DisableLink="$(PackageDisableLinks)"
+       EnableLink="$(PackageEnableLinks)"
+       DeclareParameterItems="@(_Package_MsDeployDeclareParameters)"
+       OptimisticParameterDefaultValue="$(EnableOptimisticParameterDefaultValue)"
+       ImportDeclareParametersItems="$(_VsPackageParametersFile)"
+       ReplaceRuleItems="@(MsDeployReplaceRules)"
+       RetryAttempts="$(RetryAttemptsForDeployment)">
+      <Output TaskParameter="Result" PropertyName="PackageResult" />
+    </VSMSDeploy>
+    <!--"msdeploy.exe" 
+    -verb:sync 
+    -source:manifest=obj\Debug\Package\SourceManifest.xml 
+    -Destination:archiveDir=c:\test\archiveDir 
+    -disableLink:"ContentExtension,CertificateExtension"
+    -replace:-->
+    <MSdeploy
+      Condition="$(UseMsdeployExe)"
+      Verb="sync"
+      Source="@(MsDeploySourceProviderSetting)"
+      Destination="@(MsDeployDestinationProviderSetting)"
+      DisableLink="$(PackageDisableLinks)"
+      EnableLink="$(PackageEnableLinks)"
+      DeclareParameterItems="@(_Package_MsDeployDeclareParameters)"
+      OptimisticParameterDefaultValue="$(EnableOptimisticParameterDefaultValue)"
+      ImportDeclareParametersItems="$(_VsPackageParametersFile)"
+      ReplaceRuleItems="@(MsDeployReplaceRules)"
+      RetryAttempts="$(RetryAttemptsForDeployment)"
+      ExePath="$(MSDeployPath)"
+      />
+    <ItemGroup>
+      <FileWrites Include="$(PackageSourceRoot)" Condition="$(PackageAsSingleFile)"/>
+      <FileWrites Include="$(PackageSourceRoot)\**" Condition="$(PackageAsSingleFile)"/>
+    </ItemGroup>
+    <CallTarget Targets="$(OnAfterPackageUsingManifest)" RunEachTargetSeparately="false" />
+  </Target>
+
+
+ 
+  <!--***********************************************************************-->
+  <!--TestDeployPackageToLocal task-->
+  <!--***********************************************************************-->
+  <PropertyGroup>
+    <TestDeployPackageToLocalDependsOn Condition="'$(TestDeployPackageToLocalDependsOn)'==''">
+      GetMSDeployInstalledVersionPath;
+      GenerateMsDeployManifestSettings;
+      GenerateMsdeployManifestFiles;
+      Package;
+    </TestDeployPackageToLocalDependsOn>
+  </PropertyGroup>
+
+  <Target Name="TestDeployPackageToLocal" DependsOnTargets="$(TestDeployPackageToLocalDependsOn)">
+
+    <GetPublishingLocalizedString
+       ID="PublishLocalizedString_TestDeployPackageOnCurrentMachine"
+       LogType="Message" />
+    <!-- "TestDeployPackageToLocal the package..."/>-->
+    <PropertyGroup>
+      <!--
+        MSDeployPublishSourceType can be 
+        SingleFilePackage(a single ziped file package)
+        Manifest(a file with Iis VDir info plus file path)
+        RawIisVDir(Let MSDeploy publish all files underneath the physical path)
+        ArchiveDir(a folder genearated by package with all files to be transferred)
+      -->
+      <!--So far, if we see the single file package, we pick it up; otherwise, we get TestDeployPackageToLocal* from Iis vdir -->
+      <TestDeployPackageToLocalSourceType>manifest</TestDeployPackageToLocalSourceType>
+      <TestDeployPackageToLocalSourceRoot>@(_MSDeploySourceManifest->'%(FullPath)')</TestDeployPackageToLocalSourceRoot>
+      <TestDeployPackageToLocalSourceType Condition="$(_CreatePackage) And $(PackageAsSingleFile)">package</TestDeployPackageToLocalSourceType>
+      <TestDeployPackageToLocalSourceRoot Condition="$(_CreatePackage) And $(PackageAsSingleFile)">@(_MSDeployPackageFile->'%(FullPath)')</TestDeployPackageToLocalSourceRoot>
+      <TestDeployPackageToLocalSourceType Condition="$(_CreatePackage) And !$(PackageAsSingleFile)">archiveDir</TestDeployPackageToLocalSourceType>
+      <TestDeployPackageToLocalSourceRoot Condition="$(_CreatePackage) And !$(PackageAsSingleFile)">@(_MSDeployArchiveDir->'%(FullPath)')</TestDeployPackageToLocalSourceRoot>
+      <!--Destination is always a manifest-->
+      <TestDeployPackageToLocalDestinationType>auto</TestDeployPackageToLocalDestinationType>
+      <TestDeployPackageToLocalDestinationRoot></TestDeployPackageToLocalDestinationRoot>
+    </PropertyGroup>
+
+
+    <ItemGroup>
+      <MsDeploySourceProviderSetting Remove="@(MsDeploySourceProviderSetting)" />
+      <MsDeploySourceProviderSetting Include="$(TestDeployPackageToLocalSourceType)">
+        <Path>$(TestDeployPackageToLocalSourceRoot)</Path>
+        <EncryptPassword>$(DeployEncryptKey)</EncryptPassword>
+      </MsDeploySourceProviderSetting>
+      <MsDeployDestinationProviderSetting Remove="@(MsDeployDestinationProviderSetting)" />
+      <MsDeployDestinationProviderSetting Include="$(TestDeployPackageToLocalDestinationType)">
+        <Path>$(TestDeployPackageToLocalDestinationRoot)</Path>
+        <EncryptPassword>$(DeployEncryptKey)</EncryptPassword>
+        <IncludeAcls>False</IncludeAcls>
+      </MsDeployDestinationProviderSetting>
+    </ItemGroup>
+
+    <!--Debug/Diagnostic message is not localized -->
+    <Message Text="TestDeployPackageToLocal MsDeploySourceProviderSetting is @(MsDeploySourceProviderSetting)" Condition="$(EnablePackageProcessLoggingAndAssert)" />
+    <Message Text="TestDeployPackageToLocal MsDeployDestinationProviderSetting is @(MsDeployDestinationProviderSetting)" Condition="$(EnablePackageProcessLoggingAndAssert)"/>
+
+    <VSMSDeploy
+      Condition="!$(UseMsdeployExe)"
+      MSDeployVersionsToTry="$(_MSDeployVersionsToTry)"
+      Source="@(MsDeploySourceProviderSetting)"
+      Destination="@(MsDeployDestinationProviderSetting)"
+      DisableLink="$(PublishDisableLinks)"
+      EnableLink="$(PublishEnableLinks)">
+      <Output TaskParameter="Result" PropertyName="_TestDeployPackageToLocalResult" />
+    </VSMSDeploy>
+    <MSdeploy
+      Condition="$(UseMsdeployExe)"
+      Verb="sync"
+      Source="@(MsDeploySourceProviderSetting)"
+      Destination="@(MsDeployDestinationProviderSetting)"
+      DisableLink="$(PublishDisableLinks)"
+      EnableLink="$(PublishEnableLinks)"
+      ExePath="$(MSDeployPath)" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!-- Target GenerateGlobalPublishSetting -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <NormalizePublishSettings Condition="'$(NormalizePublishSettings)'==''">true</NormalizePublishSettings>
+    <AuthType Condition="'$(AuthType)'==''" >Basic</AuthType>
+    <!-- Supported value for $(MSDeployPublishMethod): WMSVC, RemoteAgent, InProc -->
+    <MSDeployPublishMethod Condition="'$(MSDeployPublishMethod)'==''" >WMSVC</MSDeployPublishMethod>
+    <GenerateGlobalPublishSettingDependsOn Condition="'$(GenerateGlobalPublishSettingDependsOn)'==''">
+      GetProjectWebProperties;
+      ValidateGlobalSettings;
+    </GenerateGlobalPublishSettingDependsOn>
+  </PropertyGroup>
+
+  <Target Name="GenerateGlobalPublishSetting"
+          DependsOnTargets="$(GenerateGlobalPublishSettingDependsOn)">
+    <PropertyGroup>
+      <_UseWMSVC>false</_UseWMSVC>
+      <_UseWMSVC Condition="'$(MSDeployPublishMethod)'=='WMSVC'">true</_UseWMSVC>
+      <_UseRemoteAgent>false</_UseRemoteAgent>
+      <_UseRemoteAgent Condition="'$(MSDeployPublishMethod)'=='RemoteAgent'">true</_UseRemoteAgent>
+    </PropertyGroup>
+
+    <PropertyGroup>
+      <DestinationUseIis>true</DestinationUseIis>
+    </PropertyGroup>
+
+    <GetPublishingLocalizedString
+       ID="PublishLocalizedString_ValidatingMsDeployPublishSettings"
+       LogType="Message" />
+    <!-- "Validate publish related properties" />-->
+    
+    <CreateProperty Value="$(CreatePackageOnPublish)">
+      <Output TaskParameter="Value" PropertyName="_CreatePackage"/>
+    </CreateProperty>
+    
+    <!--Debug/Diagnostic message is not localized-->
+    <Message Text="_CreatePackage is $(_CreatePackage)" Condition="$(EnablePackageProcessLoggingAndAssert)" />
+
+    <GetPublishingLocalizedString
+       Condition="'$(MsDeployServiceUrl)'==''"
+       ID="PublishLocalizedString_ValidateErrorMsDeployPublishSetting"
+       ArgumentCount="1"
+       Arguments="MsDeployServiceUrl"
+       LogType="Error" />
+
+    <Error  Text ="Target GenerateGlobalPublishSetting Failed"
+       Condition="'$(MsDeployServiceUrl)'==''"
+      />
+
+    <!-- If $(IncludeIisSettingsOnPublish) is set but $(RemoteSitePhysicalPath) give a warning -->
+    <GetPublishingLocalizedString
+       Condition="!$(IncludeIisSettingsOnPublish) And '$(RemoteSitePhysicalPath)' != ''"
+       ID="PublishLocalizedString_WarningOnSettingRemoteSitePhysicalPathWhenIISSettingIsNotInclude"
+       LogType="Warning" />
+    <!-- "Setting value to property of RemoteSitePhysicalPath might not work if IIS setting is not included" />-->
+
+    <!-- If IncludeIisSettingsOnPublish is set then $(DeployAsIisApp) is not needed  -->
+    <GetPublishingLocalizedString
+       Condition="$(IncludeIisSettingsOnPublish) and $(DeployAsIisApp)"
+       ID="PublishLocalizedString_WarningOnSettingBothIncludeIisSettingsOnPublishAndDeployAsIisApp"
+       LogType="Warning" />
+    <!-- "Setting both property values of DeployAsIisApp and IncludeIisSettingsOnPublish to true is not recommended, as IncludeIisSettingsOnPublish is a superset of DeployAsIisApp" />-->
+
+    <CreateProperty Value="NTLM" Condition="!$(_UseWMSVC) And $(NormalizePublishSettings)">
+      <Output TaskParameter="Value" PropertyName="AuthType"/>
+    </CreateProperty>
+    
+    <!-- Debug/Diagnostic message is not localized-->
+    <Message Text="AuthType is $(AuthType)" Condition="$(EnablePackageProcessLoggingAndAssert)" />
+
+    <!-- Normalize service url such as convert a server name to format like https://<server>:8172/msdeploy.axd-->
+    <NormalizeServiceUrl ServiceUrl="$(MsDeployServiceUrl)" UseWMSVC="$(_UseWMSVC)" UseRemoteAgent="$(_UseRemoteAgent)" 
+                         Condition="$(NormalizePublishSettings)">
+      <Output TaskParameter="ResultUrl" PropertyName="MsDeployServiceUrl" />
+    </NormalizeServiceUrl>
+    
+    <!-- Debug/Diagnostic message is not localized-->
+    <Message Text="MsDeployServiceUrl is $(MsDeployServiceUrl)" Condition="$(EnablePackageProcessLoggingAndAssert)" />
+
+    <!-- Append the site name at the end of ServiceUrl like site=mysite-->
+    <ConcatFullServiceUrlWithSiteName ServiceUrl="$(MsDeployServiceUrl)" SiteAppName="$(DeployIisAppPath)" 
+                                      Condition="$(_UseWMSVC) And $(NormalizePublishSettings)">
+      <Output TaskParameter="ResultUrl" PropertyName="MsDeployServiceUrl" />
+    </ConcatFullServiceUrlWithSiteName>
+
+    <!-- Debug/Diagnostic message is not localized-->
+    <Message Text="MsDeployServiceUrl is $(MsDeployServiceUrl)" Condition="$(EnablePackageProcessLoggingAndAssert)" />
+    
+  </Target>
+
+  <!--********************************************************************-->
+  <!-- Target GatherLinkExtensionsToBeExposedInVS -->
+  <!--********************************************************************-->
+  <Target Name="GatherLinkExtensionsToBeExposedInVS">
+    <PropertyGroup>
+      <LinkExtensionFileName>LinkExtensioninfo.xml</LinkExtensionFileName>
+      <LinksHiddenFromVS>HttpCertConfigExtension;CertificateExtension;FrameworkConfigExtension</LinksHiddenFromVS>
+      <LinksDisabledByVS>ContentExtension</LinksDisabledByVS>
+    </PropertyGroup>
+    <GatherLinkExtensionsToBeExposedInVS LinksHiddenFromVS="$(LinksHiddenFromVS)"
+                                         LinksDisabledByVS="$(LinksDisabledByVS)"
+                                         LinkInfoFilePath="$(PackageTempRootDir)\\$(LinkExtensionFileName)" />
+  </Target>
+
+  <!--********************************************************************-->
+  <!-- Target MSDeployPublish -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <CreatePackageOnPublish Condition="'$(CreatePackageOnPublish)'==''">false</CreatePackageOnPublish>
+    <MSDeployPublishDependsOn Condition="'$(MSDeployPublishDependsOn)'==''">
+      GenerateGlobalPublishSetting;
+      _CheckRemoteFx45;      
+      ValidateGlobalPackageSetting;
+      GenerateMsDeployManifestSettings;
+      GenerateMsdeployManifestFiles;
+      GenerateSkipRuleForAppData;
+      ImportPublishingParameterValues;
+      PipelineMsdeploySpecificTransformPhase;
+      Package;
+    </MSDeployPublishDependsOn>
+  </PropertyGroup>
+
+  <Target Name="MSDeployPublish" DependsOnTargets="$(MSDeployPublishDependsOn)">
+
+    <GetPublishingLocalizedString
+       Condition="'$(MsDeployServiceUrl)'!=''"
+       Importance="High"
+       ID="PublishLocalizedString_StartMsDeployPublishToRemote"
+       ArgumentCount="1"
+       Arguments="$(MsDeployServiceUrl)"
+       LogType="Message" />
+    <!-- "Start Msdeploy Publish the Application/package to $(MsDeployServiceUrl) ..."/>-->
+    
+    <PropertyGroup>
+      <!--
+        MSDeployPublishSourceType can be 
+        SingleFilePackage(a single ziped file package)
+        Manifest(a file with Iis VDir info plus file pathes)
+        RawIisVDir(Let MSDeploy published all files underneath the phisical path)
+        ArchiveDir(a folder genearated by package with all files to be transferred)
+      -->
+      <!--So far, if we see the single file package, we pick it up; otherwise, we transport from Iis vdir -->
+      <MSDeployPublishSourceType>manifest</MSDeployPublishSourceType>
+      <MSDeployPublishSourceRoot>@(_MSDeploySourceManifest->'%(FullPath)')</MSDeployPublishSourceRoot>
+      <MSDeployPublishSourceType Condition="$(CreatePackageOnPublish) And $(PackageAsSingleFile)">package</MSDeployPublishSourceType>
+      <MSDeployPublishSourceRoot Condition="$(CreatePackageOnPublish) And $(PackageAsSingleFile)">@(_MSDeployPackageFile->'%(FullPath)')</MSDeployPublishSourceRoot>
+      <MSDeployPublishSourceType Condition="$(CreatePackageOnPublish) And !$(PackageAsSingleFile)">archiveDir</MSDeployPublishSourceType>
+      <MSDeployPublishSourceRoot Condition="$(CreatePackageOnPublish) And !$(PackageAsSingleFile)">@(_MSDeployArchiveDir->'%(FullPath)')</MSDeployPublishSourceRoot>
+      <!--Destination is alway a manifest-->
+      <MSDeployPublishDestinationType>auto</MSDeployPublishDestinationType>
+      <MSDeployPublishDestinationRoot></MSDeployPublishDestinationRoot>
+      <!--Property used when we invoke msdeploy process for publish-->
+      <MsDeployDoNotDeleteRule Condition="$(SkipExtraFilesOnServer)">DoNotDeleteRule</MsDeployDoNotDeleteRule>
+    </PropertyGroup>
+
+    <PropertyGroup >
+      <_MSDeploySourceWebServerAppHostConfigDirectory>$(IisServer_WebServerAppHostConfigDirectory)</_MSDeploySourceWebServerAppHostConfigDirectory>
+      <_MSDeploySourceWebServerManifest>$(IisServer_WebServerManifest)</_MSDeploySourceWebServerManifest>
+      <_MSDeploySourceWebServerDirectory>$(IisServer_WebServerDirectory)</_MSDeploySourceWebServerDirectory>
+    </PropertyGroup>
+
+    
+    <MapUriToIisWebServer Condition="('$(MSDeployPublishMethod)'=='INPROC') And ('$(MsDeployServiceUrl)' != '') "  
+                          ProjectIisUrl="$(MsDeployServiceUrl)"
+                          UseIISExpressHintFlag="$(_DeploymentUseIISExpressHint)">
+      <Output TaskParameter="WebServerAppHostConfigDirectory" PropertyName="_MSDeployDestinationWebServerAppHostConfigDirectory"  />
+      <Output TaskParameter="WebServerDirectory" PropertyName="_MSDeployDestinationWebServerDirectory"  />
+      <Output TaskParameter="WebServerManifest" PropertyName="_MSDeployDestinationWebServerManifest"  />
+    </MapUriToIisWebServer>
+
+    
+    <PropertyGroup>
+      <_PublishMsDeployServiceUrl>$(MsDeployServiceUrl)</_PublishMsDeployServiceUrl>
+      <_PublishMsDeployServiceUrl Condition="('$(MSDeployPublishMethod)'=='INPROC')"></_PublishMsDeployServiceUrl>
+    </PropertyGroup>
+
+    <ItemGroup>
+      <MsDeploySourceProviderSetting Remove="@(MsDeploySourceProviderSetting)" />
+      <MsDeploySourceProviderSetting Include="$(MSDeployPublishSourceType)">
+        <Path>$(MSDeployPublishSourceRoot)</Path>
+        <EncryptPassword>$(DeployEncryptKey)</EncryptPassword>
+        <WebServerAppHostConfigDirectory>$(_MSDeploySourceWebServerAppHostConfigDirectory)</WebServerAppHostConfigDirectory>
+        <WebServerManifest>$(_MSDeploySourceWebServerManifest)</WebServerManifest>
+        <WebServerDirectory>$(_MSDeploySourceWebServerDirectory)</WebServerDirectory>
+      </MsDeploySourceProviderSetting>
+      <MsDeployDestinationProviderSetting Remove="@(MsDeployDestinationProviderSetting)" />
+      <MsDeployDestinationProviderSetting Include="$(MSDeployPublishDestinationType)">
+        <Path>$(MSDeployPublishDestinationRoot)</Path>
+        <ComputerName>$(_PublishMsDeployServiceUrl)</ComputerName>
+        <UserName>$(UserName)</UserName>
+        <Password>$(Password)</Password>
+        <EncryptPassword>$(DeployEncryptKey)</EncryptPassword>
+        <IncludeAcls>False</IncludeAcls>
+        <AuthType>$(AuthType)</AuthType>
+        <WebServerAppHostConfigDirectory>$(_MSDeployDestinationWebServerAppHostConfigDirectory)</WebServerAppHostConfigDirectory>
+        <WebServerManifest>$(_MSDeployDestinationWebServerManifest)</WebServerManifest>
+        <WebServerDirectory>$(_MSDeployDestinationWebServerDirectory)</WebServerDirectory>
+      </MsDeployDestinationProviderSetting>
+    </ItemGroup>
+
+    <!-- Debug/Diagnostic message is not localized-->
+    <Message Text="MSDeployPublish MsDeploySourceProviderSetting is @(MsDeploySourceProviderSetting)" Condition="$(EnablePackageProcessLoggingAndAssert)" />
+    <Message Text="MSDeployPublish MsDeployDestinationProviderSetting is @(MsDeployDestinationProviderSetting)" Condition="$(EnablePackageProcessLoggingAndAssert)"/>
+
+    <PropertyGroup>
+      <FilePreview Condition="'$(FilePreview)'==''">false</FilePreview>
+    </PropertyGroup>
+      
+    <ExportParametersFile
+      Condition="!$(UseDeclareParametersXMLInMsDeploy) And $(EnablePackageProcessLoggingAndAssert)"
+      Parameters="@(MsDeployDeclareParameters)"
+      DeclareSetParameterFile="$(PackageLogDir)\MSDeployPublish.parameters.xml"
+      GenerateFileEvenIfEmpty="True"
+      />
+
+    <!-- First delete the ParameterFile-->
+    <Delete Files="$(PublishParametersFile)"  Condition="Exists($(PublishParametersFile))" ContinueOnError="true"/>
+
+    <!-- Create the Parameterfile if needed-->
+    <ExportParametersFile
+      Condition="$(UseDeclareParametersXMLInMsDeploy)"
+      Parameters="@(MsDeployDeclareParameters)"
+      DeclareSetParameterFile="$(PublishParametersFile)"
+      IncludeDefaultValue="$(FilePreview)"
+      GenerateFileEvenIfEmpty="True"
+      />
+
+    <PropertyGroup>
+      <_VsPublishParametersFile></_VsPublishParametersFile>
+      <_VsPublishParametersFile Condition="$(UseDeclareParametersXMLInMsDeploy) and '$(_VsPublishParametersFile)'==''">$(PublishParametersFile)</_VsPublishParametersFile>
+    </PropertyGroup>
+
+    <ItemGroup>
+      <!-- We will include the parameter when $(UseDeclareParametersXMLInMsDeploy) is false-->
+      <!-- We need to have those Parameters when it is direct publishing from manifest and not use -->
+      <_VsPublish_MsDeployDeclareParameters Include="@(MsDeployDeclareParameters)" Condition="!$(UseDeclareParametersXMLInMsDeploy) And !$(CreatePackageOnPublish)" />
+    </ItemGroup>
+
+
+    <VSMSDeploy
+      Condition="!$(UseMsdeployExe)"
+      MSDeployVersionsToTry="$(_MSDeployVersionsToTry)"
+      Source="@(MsDeploySourceProviderSetting)"
+      Destination="@(MsDeployDestinationProviderSetting)"
+      DisableLink="$(PublishDisableLinks)"
+      EnableLink="$(PublishEnableLinks)"
+      AllowUntrustedCertificate="$(AllowUntrustedCertificate)"
+      BuildingInsideVisualStudio="$(BuildingInsideVisualStudio)"
+      SkipExtraFilesOnServer="$(SkipExtraFilesOnServer)"
+      SkipRuleItems="@(MsDeploySkipRules)"
+      SetParameterItems="@(_VsPublish_MsDeployDeclareParameters)"
+      OptimisticParameterDefaultValue="$(EnableOptimisticParameterDefaultValue)"
+      ImportSetParametersItems="$(_VsPublishParametersFile)"
+      WhatIf="$(FilePreview)"
+      RetryAttempts="$(RetryAttemptsForDeployment)"
+      EnableMSDeployBackup="$(EnableMSDeployBackup)"
+      InvokedByPublish="true"
+    >
+      <Output TaskParameter="Result" PropertyName="_PublishResult" />
+    </VSMSDeploy>
+    <MSdeploy
+          Condition="$(UseMsdeployExe)"
+          Verb="sync"
+          Source="@(MsDeploySourceProviderSetting)"
+          Destination="@(MsDeployDestinationProviderSetting)"
+          DisableLink="$(PublishDisableLinks)"
+          EnableLink="$(PublishEnableLinks)"
+          EnableRule="$(MsDeployDoNotDeleteRule)"
+          AllowUntrusted="$(AllowUntrustedCertificate)"          
+          SkipRuleItems="@(MsDeploySkipRules)"
+          SetParameterItems="@(_VsPublish_MsDeployDeclareParameters)"
+          OptimisticParameterDefaultValue="$(EnableOptimisticParameterDefaultValue)"
+          ImportSetParametersItems="$(_VsPublishParametersFile)"
+          RetryAttempts="$(RetryAttemptsForDeployment)"
+          ExePath="$(MSDeployPath)" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!--Target ValidatePublishProfileSettings -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <ValidatePublishProfileSettingsDependsOn>
+      $(OnBeforeValidatePublishProfileSettings);
+      $(ValidatePublishProfileSettingsDependsOn);
+    </ValidatePublishProfileSettingsDependsOn>
+  </PropertyGroup>
+
+  <Target Name="ValidatePublishProfileSettings"
+          DependsOnTargets="$(ValidatePublishProfileSettingsDependsOn)"
+          Condition="'$(_PublishProfileSet)' == 'true' Or '$(WebPublishProfileFile)' != '' ">
+    
+    <!--This is a phase separation point-->
+    <GetPublishingLocalizedString
+       ID="PublishLocalizedString_WebPublishValidatePublishProfileSettings"
+       ArgumentCount="1"
+       Arguments="$(PublishProfile)"
+       LogType="Message" />
+
+    <GetPublishingLocalizedString
+       ID="PublishLocalizedString_WebPublishInvalidatePublishProfileSettings"
+       Condition="'$(WebPublishProfileFile)' == '' Or !Exists($(WebPublishProfileFile))"
+       ArgumentCount="2"
+       Arguments="$(PublishProfile);$(WebPublishProfileFile)"
+       LogType="Error" />
+
+   <GetPublishingLocalizedString
+       ID="PublishLocalizedString_WebPublishProfileInvalidPropertyValue"
+       Condition="'$(WebPublishMethod)' == '' Or '$(_WPPWebPublishMethodSupports.Contains(&quot;Web$(WebPublishMethod)Publish&quot;))' == 'false'"
+       ArgumentCount="3"
+       Arguments="$(PublishProfile);WebPublishMethod;$(WebPublishMethod)"
+       LogType="Error" />
+
+    <Error Text="Target ValidatePublishProfileSettings Failed"
+           Condition="('$(WebPublishProfileFile)' == '' Or !Exists($(WebPublishProfileFile)))or 
+           ('$(WebPublishMethod)' == '' Or '$(_WPPWebPublishMethodSupports.Contains(&quot;Web$(WebPublishMethod)Publish&quot;))' == 'false' )" />
+
+    <CallTarget Targets="$(OnAfterValidatePublishProfileSettings)" RunEachTargetSeparately="False" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!--Target WebMSDeployPublish -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <WebMSDeployPublishDependsOn>
+      MSDeployPublish;
+    </WebMSDeployPublishDependsOn>
+  </PropertyGroup>
+  <Target Name="WebMSDeployPublish" DependsOnTargets="$(WebMSDeployPublishDependsOn)">
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!--Target WebPackagePublish -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <WebPackagePublishDependsOn>
+      Package;
+    </WebPackagePublishDependsOn>
+  </PropertyGroup>
+  <Target Name="WebPackagePublish" DependsOnTargets="$(WebPackagePublishDependsOn)">
+  </Target>
+
+  
+  <!--********************************************************************-->
+  <!--Target WebPublish -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <WebPublishDependsOn>
+      $(WebPublishDependsOn);
+      ValidatePublishProfileSettings;
+    </WebPublishDependsOn>
+    <WebPublishDependsOn Condition="'$(WebPublishMethod)' != ''">
+      $(WebPublishDependsOn);
+      Web$(WebPublishMethod)Publish;
+    </WebPublishDependsOn>
+
+  </PropertyGroup>
+  <Target Name="WebPublish" DependsOnTargets="$(WebPublishDependsOn)">
+  </Target>
+
+  <!--********************************************************************-->
+  <!--Target PipelineDeployPhase -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <PipelineDeployPhaseDependsOn>
+      $(OnBeforePipelineDeployPhase);
+      $(PipelineDeployPhaseDependsOn);
+      $(DeployTarget);
+    </PipelineDeployPhaseDependsOn>
+    <PipelineDeployPhaseAfterTargets>
+      $(PipelineDeployPhaseAfterTargets);
+    </PipelineDeployPhaseAfterTargets>
+  </PropertyGroup>
+
+  <Target Name="PipelineDeployPhase"
+          DependsOnTargets="$(PipelineDeployPhaseDependsOn)"
+          AfterTargets="$(PipelineDeployPhaseAfterTargets)">
+    <!--This is a phase separation point-->
+    <GetPublishingLocalizedString
+       ID="PublishLocalizedString_WebPublishPipelineDeployPhase"
+       LogType="Message" />
+    <!--<Message Text="Pipeline Deploy Phase" />-->
+    
+    <CallTarget Targets="$(OnAfterPipelineDeployPhase)" RunEachTargetSeparately="False" />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!--Target DbDacFxPreview -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <DbDacFxPreviewDependsOn>
+      $(DbDacFxPreviewDependsOn);
+      GetMSDeployInstalledVersionPath;
+    </DbDacFxPreviewDependsOn>
+    <DbDacFxPreviewDependsOn Condition="('$(MSDeployPublishMethod)'=='INPROC')">
+      $(DbDacFxPreviewDependsOn);
+      LocalDbDacFxPreview;
+    </DbDacFxPreviewDependsOn >
+    <DbDacFxPreviewDependsOn Condition="('$(MSDeployPublishMethod)'!='INPROC')">
+      $(DbDacFxPreviewDependsOn);
+      RemoteDbDacFxPreview;
+    </DbDacFxPreviewDependsOn >
+  </PropertyGroup>
+  <Target Name="DbDacFxPreview" DependsOnTargets="$(DbDacFxPreviewDependsOn)">
+  </Target>
+  
+
+  <!--********************************************************************-->
+  <!--Target DbFullSqlPreview -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <DbFullSqlPreviewDependsOn>
+      $(DbFullSqlPreviewDependsOn);
+      GetMSDeployInstalledVersionPath;
+    </DbFullSqlPreviewDependsOn>
+  </PropertyGroup>
+  <Target Name="DbFullSqlPreview" DependsOnTargets="$(DbFullSqlPreviewDependsOn)">
+    
+    
+    <ItemGroup>
+      <_MsDeployDbFullSqlPreviewSourceNoPath Remove="@(_MsDeployDbFullSqlPreviewSourceNoPath)"  />
+    </ItemGroup>
+
+    <CreateItem Include="DbFullSql"
+                      AdditionalMetadata="$(_MsDeployDbFullSqlPreviewProviderSettings)" >
+      <Output TaskParameter="Include" ItemName="_MsDeployDbFullSqlPreviewSourceNoPath"/>
+    </CreateItem>
+
+  <ItemGroup>
+      <_MsDeployDbFullSqlPreviewSource Remove="@(_MsDeployDbFullSqlPreviewSource)" />
+      <_MsDeployDbFullSqlPreviewSource Include="@(_MsDeployDbFullSqlPreviewSourceNoPath)">
+        <Path>$(_MsDeployDBFullSqlPreviewSourceConnectionString)</Path>
+      </_MsDeployDbFullSqlPreviewSource>
+
+      <_MsDeployDbFullSqlPreviewDestination Remove="@(_MsDeployDbFullSqlPreviewDestination)" />
+      <_MsDeployDbFullSqlPreviewDestination Include="DbFullSql">
+        <Path>$(_MsDeployDbFullSqlPreviewOutputPath)</Path>
+      </_MsDeployDbFullSqlPreviewDestination>
+    </ItemGroup>
+
+
+    <VSMSDeploy Condition="!$(UseMsdeployExe)"
+       MSDeployVersionsToTry="$(_MSDeployVersionsToTry)"
+       Source="@(_MsDeployDbFullSqlPreviewSource)"
+       Destination="@(_MsDeployDbFullSqlPreviewDestination)"
+       DeploymentTraceLevel="$(PackageTraceLevel)"
+       AllowUntrustedCertificate="$(AllowUntrustedCertificate)"
+       BuildingInsideVisualStudio="$(BuildingInsideVisualStudio)"
+       InvokedByPublish="true"
+       RetryAttempts="$(RetryAttemptsForDeployment)">
+    </VSMSDeploy>
+
+    <MSdeploy
+      Condition="$(UseMsdeployExe)"
+      Verb="sync"
+      Source="@(_MsDeployDbFullSqlPreviewSource)"
+      Destination="@(_MsDeployDbFullSqlPreviewDestination)"
+      RetryAttempts="$(RetryAttemptsForDeployment)"
+      AllowUntrusted="$(AllowUntrustedCertificate)"
+      ExePath="$(MSDeployPath)"
+      />
+  </Target>
+
+  <!--********************************************************************-->
+  <!--Target ValidateDbDacFxPreviewSettings -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <ValidateDbDacFxPreviewSettingsDependsOn>
+      $(ValidateDbDacFxPreviewSettingsDependsOn);
+      GetMSDeployInstalledVersionPath;
+    </ValidateDbDacFxPreviewSettingsDependsOn>
+  </PropertyGroup>
+  <Target Name="ValidateDbDacFxPreviewSettings" DependsOnTargets="$(ValidateDbDacFxPreviewSettingsDependsOn)">
+    <GetPublishingLocalizedString
+    Condition="'$(_MsDeployDbDacFxPreviewDestinationConnectionString)' == ''"
+    ID="PublishLocalizedString_MsBuildPropertySettingValue"
+    ArgumentCount="2"
+    Arguments="_MsDeployDbDacFxPreviewDestinationConnectionString;'$(_MsDeployDbDacFxPreviewDestinationConnectionString)'"
+     >
+      <Output TaskParameter="Result" PropertyName="_PublishLocalizedString_MSBuildTargetFailed_1" />
+    </GetPublishingLocalizedString>
+
+    <GetPublishingLocalizedString
+     Condition="'$(_MsDeployDbDacFxPreviewSourceFile)' == ''"
+     ID="PublishLocalizedString_MsBuildPropertySettingValue"
+     ArgumentCount="2"
+     Arguments="_MsDeployDbDacFxPreviewSourceFile;'$(_MsDeployDbDacFxPreviewSourceFile)'"
+     >
+      <Output TaskParameter="Result" PropertyName="_PublishLocalizedString_MSBuildTargetFailed_2" />
+    </GetPublishingLocalizedString>
+
+    <GetPublishingLocalizedString
+       ID="PublishLocalizedString_MSBuildTargetFailed"
+       ArgumentCount="1"
+       Arguments="LocalDbDacFxPreview"
+       >
+      <Output TaskParameter="Result" PropertyName="_PublishLocalizedString_MSBuildTargetFailed_Preview" />
+    </GetPublishingLocalizedString>
+
+    <Error Condition="'$(_MsDeployDbDacFxPreviewDestinationConnectionString)' == '' Or '$(_MsDeployDbDacFxPreviewSourceFile)' == ''"
+           Text="$(_PublishLocalizedString_MSBuildTargetFailed_Preview) $(_PublishLocalizedString_MSBuildTargetFailed_1) $(_PublishLocalizedString_MSBuildTargetFailed_2)" />
+  </Target>
+
+
+    <!--********************************************************************-->
+  <!--Target LocalDbDacFxPreview -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <LocalDbDacFxPreviewDependsOn>
+      $(LocalDbDacFxPreviewDependsOn);
+      GetMSDeployInstalledVersionPath;
+      ValidateDbDacFxPreviewSettings;
+    </LocalDbDacFxPreviewDependsOn>
+  </PropertyGroup>
+  <Target Name="LocalDbDacFxPreview" DependsOnTargets="$(LocalDbDacFxPreviewDependsOn)">
+
+    <!--msdeploy
+        -verb:
+            sync
+        -source:
+            DbDacFx="C:\input.dacpac"
+        -dest:
+            DbDacFx="[Destination Connection String]",
+            dacpacAction=Script,
+            OutputPath="C:\output.sql"
+    -->
+    <ItemGroup>
+      <_MsDeployDbDacFxPreviewPreSourceOptions Remove="@(_MsDeployDbDacFxPreviewPreSourceOptions)" />
+      <_MsDeployDbDacFxPreviewPreSourceOptions Include="DbDacFx">
+        <includeData>False</includeData>
+        <AdditionalProviderSettings>includeData</AdditionalProviderSettings>
+      </_MsDeployDbDacFxPreviewPreSourceOptions>
+    </ItemGroup>
+
+    <CreateDacPac
+      Source="$(_MsDeployDbDacFxPreviewSourceFile)"
+      OutputDacPacPath="$(_MsDeployDbDacFxPreviewAutoScriptPath)"
+      RelativeRootPath="$(WebPublishPipelineSourceRootDirectory)"
+      MSDeployVersionsToTry="$(_MSDeployVersionsToTry)"
+        UseMSDeployExe="$(UseMsdeployExe)"
+        MSDeployExePath="$(MSDeployPath)"
+        LocalDBVersionToUseForSqlExpress="$(_LocalDBVersionToUseForSqlExpress)"
+      AdditionalSourceFlags="@(_MsDeployDbDacFxPreviewPreSourceOptions)"
+      >
+      <Output TaskParameter="Result" PropertyName="_MsDeployDbDacFxPreviewDacpacFile"  />
+    </CreateDacPac>
+      
+   
+    <ItemGroup>
+      <_MsDeployDbDacFxPreviewSource Remove="@(_MsDeployDbDacFxPreviewSource)" />
+      <_MsDeployDbDacFxPreviewSource Include="DbDacFx">
+        <Path>$([System.IO.Path]::GetFullPath($(_MsDeployDbDacFxPreviewDacpacFile)))</Path>
+      </_MsDeployDbDacFxPreviewSource>
+
+      <_MsDeployDbDacFxPreviewDestination Remove="@(_MsDeployDbDacFxPreviewDestination)" />
+      <_MsDeployDbDacFxPreviewDestination Include="DbDacFx">
+        <Path>$(_MsDeployDbDacFxPreviewDestinationConnectionString)</Path>
+        <dacpacAction>Script</dacpacAction>
+      </_MsDeployDbDacFxPreviewDestination>
+    </ItemGroup>
+
+    <VSMSDeploy Condition="!$(UseMsdeployExe)"
+       MSDeployVersionsToTry="$(_MSDeployVersionsToTry)"
+       Source="@(_MsDeployDbDacFxPreviewSource)"
+       Destination="@(_MsDeployDbDacFxPreviewDestination)"
+       DeploymentTraceLevel="$(PackageTraceLevel)"
+       AllowUntrustedCertificate="$(AllowUntrustedCertificate)"
+       BuildingInsideVisualStudio="$(BuildingInsideVisualStudio)"
+       InvokedByPublish="true"
+       RetryAttempts="$(RetryAttemptsForDeployment)">
+    </VSMSDeploy>
+
+    <MSdeploy
+      Condition="$(UseMsdeployExe)"
+      Verb="sync"
+      Source="@(_MsDeployDbDacFxPreviewSource)"
+      Destination="@(_MsDeployDbDacFxPreviewDestination)"
+      RetryAttempts="$(RetryAttemptsForDeployment)"
+      AllowUntrusted="$(AllowUntrustedCertificate)"
+      ExePath="$(MSDeployPath)"
+      />
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!--Target RemoteDbDacFxPreview -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <RemoteDbDacFxPreviewDependsOn>
+      $(RemoteDbDacFxPreviewDependsOn);
+      GetMSDeployInstalledVersionPath;
+      GenerateGlobalPublishSetting;
+      ValidateDbDacFxPreviewSettings;
+      _DetectDbDacFxProvider;
+    </RemoteDbDacFxPreviewDependsOn>
+  </PropertyGroup>
+  <Target Name="RemoteDbDacFxPreview" DependsOnTargets="$(RemoteDbDacFxPreviewDependsOn)">
+    <PropertyGroup>
+      <_PublishMsDeployServiceUrl>$(MsDeployServiceUrl)</_PublishMsDeployServiceUrl>
+      <_PublishMsDeployServiceUrl Condition="('$(MSDeployPublishMethod)'=='INPROC')"></_PublishMsDeployServiceUrl>
+    </PropertyGroup>
+
+
+    <ItemGroup>
+      <_MsDeployDbDacFxPreviewPreSourceOptions Remove="@(_MsDeployDbDacFxPreviewPreSourceOptions)" />
+      <_MsDeployDbDacFxPreviewPreSourceOptions Include="DbDacFx">
+        <includeData>False</includeData>
+        <AdditionalProviderSettings>includeData</AdditionalProviderSettings>
+      </_MsDeployDbDacFxPreviewPreSourceOptions>
+    </ItemGroup>
+    
+    <CreateDacPac
+    Source="$(_MsDeployDbDacFxPreviewSourceFile)"
+    OutputDacPacPath="$(_MsDeployDbDacFxPreviewAutoScriptPath)"
+    RelativeRootPath="$(WebPublishPipelineSourceRootDirectory)"
+    MSDeployVersionsToTry="$(_MSDeployVersionsToTry)"
+      UseMSDeployExe="$(UseMsdeployExe)"
+      MSDeployExePath="$(MSDeployPath)"
+      LocalDBVersionToUseForSqlExpress="$(_LocalDBVersionToUseForSqlExpress)"
+      AdditionalSourceFlags="@(_MsDeployDbDacFxPreviewPreSourceOptions)"
+      >
+      <Output TaskParameter="Result" PropertyName="_MsDeployDbDacFxPreviewDacpacFile"  />
+    </CreateDacPac>
+
+    <MapUriToIisWebServer Condition="('$(MSDeployPublishMethod)'=='INPROC') And ('$(MsDeployServiceUrl)' != '') "
+                          ProjectIisUrl="$(MsDeployServiceUrl)"
+                          UseIISExpressHintFlag="$(_DeploymentUseIISExpressHint)">
+      <Output TaskParameter="WebServerAppHostConfigDirectory" PropertyName="_MSDeployDestinationWebServerAppHostConfigDirectory"  />
+      <Output TaskParameter="WebServerDirectory" PropertyName="_MSDeployDestinationWebServerDirectory"  />
+      <Output TaskParameter="WebServerManifest" PropertyName="_MSDeployDestinationWebServerManifest"  />
+    </MapUriToIisWebServer>
+
+    <ItemGroup>
+      <_MsDeployRemoteDbDacFxPreviewSource Remove="@(_MsDeployRemoteDbDacFxPreviewSource)" />
+      <_MsDeployRemoteDbDacFxPreviewSource Include="DbDacFx">
+        <Path>$([System.IO.Path]::GetFullPath($(_MsDeployDbDacFxPreviewDacpacFile)))</Path>
+      </_MsDeployRemoteDbDacFxPreviewSource>
+
+      <_MsDeployRemoteDbDacFxPreviewDestination Remove="@(_MsDeployRemoteDbDacFxPreviewDestination)" />
+      <_MsDeployRemoteDbDacFxPreviewDestination Include="DbDacFx">
+        <Path>$(_MsDeployDbDacFxPreviewDestinationConnectionString)</Path>
+        <ComputerName>$(_PublishMsDeployServiceUrl)</ComputerName>
+        <UserName>$(UserName)</UserName>
+        <Password>$(Password)</Password>
+        <AuthType>$(AuthType)</AuthType>
+        <WebServerAppHostConfigDirectory>$(_MSDeployDestinationWebServerAppHostConfigDirectory)</WebServerAppHostConfigDirectory>
+        <WebServerManifest>$(_MSDeployDestinationWebServerManifest)</WebServerManifest>
+        <WebServerDirectory>$(_MSDeployDestinationWebServerDirectory)</WebServerDirectory>
+        <dacpacAction>Script</dacpacAction>
+      </_MsDeployRemoteDbDacFxPreviewDestination>
+    </ItemGroup>
+
+    <VSMSDeploy
+          Condition="!$(UseMsdeployExe)"
+          HighImportanceEventTypes="DbDacFxTraceEventArgs"
+          MSDeployVersionsToTry="$(_MSDeployVersionsToTry)"
+          Source="@(_MsDeployRemoteDbDacFxPreviewSource)"
+          Destination="@(_MsDeployRemoteDbDacFxPreviewDestination)"
+          AllowUntrustedCertificate="$(AllowUntrustedCertificate)"
+          BuildingInsideVisualStudio="$(BuildingInsideVisualStudio)"
+          InvokedByPublish="true"
+          RetryAttempts="$(RetryAttemptsForDeployment)"
+    >
+      <Output TaskParameter="Result" PropertyName="_PublishResult" />
+    </VSMSDeploy>
+    <MSdeploy
+          Condition="$(UseMsdeployExe)"
+          Verb="sync"
+          Verbose="true"
+          Source="@(_MsDeployRemoteDbDacFxPreviewSource)"
+          Destination="@(_MsDeployRemoteDbDacFxPreviewDestination)"
+          AllowUntrusted="$(AllowUntrustedCertificate)"
+          RetryAttempts="$(RetryAttemptsForDeployment)"
+          ExePath="$(MSDeployPath)" />
+  </Target>
+
+    <!--********************************************************************-->
+    <!-- Target _CheckRemoteFx45-->
+    <!--********************************************************************-->
+    <Target Name="_CheckRemoteFx45" Condition="'$(TargetFrameworkVersion)' == 'v4.5' and $(_Enable45Check) != 'false'">
+      <CheckRemoteFx45 Condition="'$(MsDeployServiceUrl)' != ''"
+        ServiceUrl="$(MsDeployServiceUrl)">
+       </CheckRemoteFx45>
+    </Target>
+  
+
+    <!--********************************************************************-->
+    <!-- Target _DetectDbDacFxProvider-->
+    <!--********************************************************************-->
+    <Target Name="_DetectDbDacFxProvider">
+      <PropertyGroup>
+        <_PublishMsDeployServiceUrl>$(MsDeployServiceUrl)</_PublishMsDeployServiceUrl>
+        <_PublishMsDeployServiceUrl Condition="('$(MSDeployPublishMethod)'=='INPROC')"></_PublishMsDeployServiceUrl>
+        <_MSDeployPublishSourceType>dbDacFx</_MSDeployPublishSourceType>
+      </PropertyGroup>
+
+      <ItemGroup>
+        <_MsDeploySourceProviderSetting Remove="@(_MsDeploySourceProviderSetting)" />
+        <_MsDeploySourceProviderSetting Include="$(_MSDeployPublishSourceType)">
+          <ComputerName>$(_PublishMsDeployServiceUrl)</ComputerName>
+          <UserName>$(UserName)</UserName>
+          <Password>$(Password)</Password>
+          <AuthType>$(AuthType)</AuthType>
+        </_MsDeploySourceProviderSetting>
+        <_DbDacFxDestinationPathesToPublish Include="$([MSBuild]::Escape($(_MsDeployDbDacFxPreviewDestinationConnectionString)))" />
+      </ItemGroup>
+
+      <DetectRemoteProvider Condition="'$(_PublishMsDeployServiceUrl)' != ''"
+        MSDeployVersionsToTry="$(_MSDeployVersionsToTry)"
+        Source="@(_MsDeploySourceProviderSetting)"
+        ProviderName="dbDacFx"
+        ProviderPathes="@(_DbDacFxDestinationPathesToPublish)">
+      </DetectRemoteProvider>
+
+    </Target>
+
+  <!-- The build process can be extended in a similar way as MS.Common.targets -->
+  <PropertyGroup>
+    <ImportByWildcardAfterMicrosoftWebPublishingTargets Condition="'$(ImportByWildcardAfterMicrosoftWebPublishingTargets)'==''">true</ImportByWildcardAfterMicrosoftWebPublishingTargets>
+  </PropertyGroup>
+  <Import Project="$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportAfter\*" Condition="'$(ImportByWildcardAfterMicrosoftWebPublishingTargets)' == 'true' and exists('$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportAfter')"/>
+</Project>

BIN
servicestack/lib/VisualStudio.MsBuild.11.0/Web/Microsoft.Web.XmlTransform.dll


+ 530 - 0
servicestack/lib/VisualStudio.MsBuild.11.0/Web/Microsoft.WebSite.Publishing.targets

@@ -0,0 +1,530 @@
+<!--
+***********************************************************************************************
+Microsoft.WebDeploy.targets
+
+WARNING:  DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
+          created a backup copy.  Incorrect changes to this file will make it
+          impossible to load or build your web deploy projects from the command-line or the IDE.
+
+This file defines the steps in the standard build process for web deploy projects.
+
+Copyright (C) 2005 Microsoft Corporation. All rights reserved.
+***********************************************************************************************
+-->
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+  <UsingTask TaskName="FilterByItems" AssemblyFile="$(MSBuildThisFileDirectory)\Microsoft.Web.Publishing.Tasks.dll" Condition="Exists('Microsoft.Web.Publishing.Tasks.dll')"/>
+  <UsingTask TaskName="CollectFilesinFolder" AssemblyFile="$(MSBuildThisFileDirectory)\Microsoft.Web.Publishing.Tasks.dll" Condition="Exists('Microsoft.Web.Publishing.Tasks.dll')"/>
+  <UsingTask TaskName="CopyPipelineFiles" AssemblyFile="$(MSBuildThisFileDirectory)\Microsoft.Web.Publishing.Tasks.dll" Condition="Exists('Microsoft.Web.Publishing.Tasks.dll')"/>
+
+  <!--***************************************************************-->
+  <!-- Setting up the property like MS.Common.Targets files has it.  -->
+  <!--This is to handle some project doesn't include the MS.Common.Targets file-->
+  <!--***************************************************************-->
+  <PropertyGroup>
+    <_WebProjectType>WebSite</_WebProjectType>
+    <OutputPath Condition="'$(OutputPath)' == ''">$([System.IO.Path]::GetTempPath())WebSitePublish\$([System.IO.Path]::GetFileName($(MSBuildProjectDirectory)))-$(MSBuildProjectDirectory.GetHashCode())</OutputPath>
+    <OutputPath Condition="'$(OutputPath)' != '' and !HasTrailingSlash('$(OutputPath)')">$(OutputPath)\</OutputPath>
+    <OutDir Condition=" '$(OutDir)' == '' ">$(OutputPath)</OutDir>
+    <!-- Example, bin\Debug\. Ensure OutDir has a trailing slash, so it can be concatenated -->
+    <OutDir Condition="'$(OutDir)' != '' and !HasTrailingSlash('$(OutDir)')">$(OutDir)\</OutDir>
+  </PropertyGroup>
+
+  <PropertyGroup Condition="'$(BaseIntermediateOutputPath)'=='' ">
+    <BaseIntermediateOutputPath>$(OutputPath)obj\</BaseIntermediateOutputPath>
+    <BaseIntermediateOutputPath Condition="!HasTrailingSlash('$(BaseIntermediateOutputPath)')">$(BaseIntermediateOutputPath)\</BaseIntermediateOutputPath>
+  </PropertyGroup>
+
+  <PropertyGroup Condition=" '$(IntermediateOutputPath)' == '' ">
+    <IntermediateOutputPath Condition=" '$(PlatformName)' == 'AnyCPU' Or '$(PlatformName)' == ''">$(BaseIntermediateOutputPath)$(Configuration)\</IntermediateOutputPath>
+    <IntermediateOutputPath Condition=" '$(IntermediateOutputPath)' == '' ">$(BaseIntermediateOutputPath)$(PlatformName)\$(Configuration)\</IntermediateOutputPath>
+    <IntermediateOutputPath Condition="!HasTrailingSlash('$(IntermediateOutputPath)')">$(IntermediateOutputPath)\</IntermediateOutputPath>
+  </PropertyGroup>
+ 
+  <Target Name="PrepareResourceNames" />
+  <Target Name="ComputeIntermediateSatelliteAssemblies" />
+  <Target Name="GetCopyToOutputDirectoryItems" />
+  <Target Name="_SGenCheckForOutputs" />
+  <Target Name="CreateManifestResourceNames" />
+  
+  <!--
+    ============================================================
+  Initialial setup
+    ============================================================
+  -->
+  <PropertyGroup>
+    <!-- Make sure OutputPath has a trailing slash on it -->
+    <WDOutDir Condition="'$(OutDir)' != '$(OutputPath)'">$(OutDir)</WDOutDir>
+    <CopyBeforeBuildTargetPath  Condition="'$(CopyBeforeBuildTargetPath)' == ''">$(IntermediateOutputPath)AspnetCompileMerge\source</CopyBeforeBuildTargetPath>
+    <_WDPSourceWebPhysicalPath>$(SourceWebPhysicalPath)</_WDPSourceWebPhysicalPath>
+    <TempBuildDir Condition="'$(TempBuildDir)' == ''" >$(IntermediateOutputPath)TempBuildDir</TempBuildDir>
+    <_ExcludeAppOffline Condition="'$(_ExcludeAppOffline)' ==''">true</_ExcludeAppOffline>
+    <_ExcludeWebInfo Condition="'$(_ExcludeWebInfo)' ==''">true</_ExcludeWebInfo>
+  </PropertyGroup>
+
+  <PropertyGroup>
+    <_SkipHiddenItems Condition="'$(_SkipHiddenItems)'==''">true</_SkipHiddenItems>
+  </PropertyGroup>
+  <ItemGroup>
+    <ExcludeFromPackageFiles Include="$(SourceWebPhysicalPath)\App_Data\PublishProfiles\**\*.*"/>
+    <ExcludeFromPackageFiles Include="$(SourceWebPhysicalPath)\*.publishproj"/>
+    <ExcludeFromPackageFiles Include="$(SourceWebPhysicalPath)\app_offline.htm" Condition="'$(_ExcludeAppOffline)'== 'true'"/>
+    <ExcludeFromPackageFiles Include="$(SourceWebPhysicalPath)\Bin\*.refresh" />
+    <ExcludeFromPackageFiles Include="$(SourceWebPhysicalPath)\**\*.exclude" />
+    <ExcludeFromPackageFiles Include="$(SourceWebPhysicalPath)\**\*.webinfo" Condition="'$(_ExcludeWebInfo)'=='true'" />
+  </ItemGroup>
+  
+  <PropertyGroup Condition="'$(SourceWebMetabasePath)' != ''">
+    <UseIis Condition="'$(UseIis)'==''">True</UseIis>
+    <IisUrl Condition="'$(IisUrl)'==''">$(SourceWebProjectPath)</IisUrl>
+  </PropertyGroup>
+
+  <PropertyGroup Condition="'$(SourceWebMetabasePath)' == ''">
+    <UseIis Condition="'$(UseIis)'==''">false</UseIis>
+  </PropertyGroup>
+  
+  <!-- Create the output path as an item so that we can use %(FullPath) on it. -->
+  <!-- _PublishedWebsites folder enables team build scenarios when OutDir is overiden -->
+  <ItemGroup>
+    <_WDOutputPathItem Condition="'$(WDOutDir)' != '' and !HasTrailingSlash('$(WDOutDir)')" Include="$(WDOutDir)\_PublishedWebsites\$(MSBuildProjectName)\"/>
+    <_WDOutputPathItem Condition="'$(WDOutDir)' != '' and HasTrailingSlash('$(WDOutDir)')" Include="$(WDOutDir)_PublishedWebsites\$(MSBuildProjectName)\"/>
+    <_WDOutputPathItem Condition="'$(WDOutDir)' == ''" Include="$(OutputPath)"/>
+    <_WDPSourceWebPathItem Include="$(_WDPSourceWebPhysicalPath)"/>
+    <_KeyFile Include="$(KeyFile)"/>
+  </ItemGroup>
+
+  <!-- AvailablePlatforms is the list of platform targets available. -->
+  <PropertyGroup>
+    <AvailablePlatforms>Any CPU</AvailablePlatforms>
+  </PropertyGroup>
+
+  <PropertyGroup>
+    <WDTargetDir Condition="'$(WDTargetDir)' == ''">$(WDOutDir)\_PublishedWebsites\$(MSBuildProjectName)\</WDTargetDir>
+    <_FullSourceWebDir>$(_WDPSourceWebPhysicalPath)</_FullSourceWebDir>
+    <_FullKeyFile Condition="'$(KeyFile)' != ''">@(_KeyFile->'%(FullPath)')</_FullKeyFile>
+  </PropertyGroup>
+
+  <!--
+    The set of properties passed to the aspnet_compiler when merge is not enabled
+  -->
+  <PropertyGroup>
+      <_AspNetCompilerFixedNames  Condition="'$(UseMerge)' != 'true'">$(UseFixedNames)</_AspNetCompilerFixedNames>
+      <_AspNetCompilerKeyContainer Condition="'$(UseMerge)' != 'true'">$(KeyContainer)</_AspNetCompilerKeyContainer>
+      <_AspNetCompilerMetabasePath Condition="'$(UseMetabasePath)' == 'true'">$(SourceWebMetabasePath)</_AspNetCompilerMetabasePath>
+      <_AspNetCompilerSourceWebPath Condition="'$(UseMetabasePath)' != 'true'">$(_FullSourceWebDir)</_AspNetCompilerSourceWebPath>
+      <_AspNetCompilerVirtualPath Condition="'$(UseMetabasePath)' != 'true'">$(SourceWebVirtualPath)</_AspNetCompilerVirtualPath>
+  </PropertyGroup>
+
+  <PropertyGroup>
+    <BuildingProject>true</BuildingProject>
+  </PropertyGroup>
+  
+  <PropertyGroup>
+    <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
+  </PropertyGroup>
+  <!--
+    ============================================================
+  Basic Hook in for WPP
+    ============================================================
+  -->
+  <PropertyGroup>
+    <WebPublishPipelineProjectDirectory Condition="'$(WebPublishPipelineProjectDirectory)'==''">$(MSBuildProjectDirectory)</WebPublishPipelineProjectDirectory>
+    <DefaultDeployIisAppPhysicalPath Condition="'$(DefaultDeployIisAppPhysicalPath)'==''">$(MSBuildProjectDirectory)$(DefaultMsDeployAltSuffix)</DefaultDeployIisAppPhysicalPath>
+    <FilesToIncludeForPublish>AllFilesInProjectFolder</FilesToIncludeForPublish>
+    <!--We do want to exclude TransformAssistFile-->
+    <ExcludeTransformAssistFilesFromPublish Condition="'$(ExcludeTransformAssistFilesFromPublish)'==''">True</ExcludeTransformAssistFilesFromPublish>
+    <ExcludeGeneratedDebugSymbol Condition="'$(ExcludeGeneratedDebugSymbol)'=='' And '$(DebugSymbols)' == 'true'">False</ExcludeGeneratedDebugSymbol>
+    <ProjectParametersXMLFile Condition="'$(ProjectParametersXMLFile)'=='' And Exists('$(MSBuildProjectDirectory)\Parameters.xml')">$(OutputPath)\Parameters.xml</ProjectParametersXMLFile>
+    <_WDPDefaultIntermediateOutputPathPathRoot Condition="'$(_WPPDefaultIntermediateOutputPathPathRoot)' == ''">$(OutputPath)\</_WDPDefaultIntermediateOutputPathPathRoot>
+  </PropertyGroup>
+ 
+  <PropertyGroup Condition="'$(_WDPDefaultIntermediateOutputPath)' == ''">
+    <_WDPDefaultIntermediateOutputPath>$(IntermediateOutputPath)</_WDPDefaultIntermediateOutputPath>
+    <_WDPDefaultIntermediateOutputPath Condition="!$([System.IO.path]::IsPathRooted($(IntermediateOutputPath)))">$(_WDPDefaultIntermediateOutputPathPathRoot)$(IntermediateOutputPath)</_WDPDefaultIntermediateOutputPath>
+  </PropertyGroup>
+
+  <!--******************************************************-->
+  <!--Include the WPP targets file-->
+  <!--******************************************************-->
+  <Import Project="$(MSBuildBinPath)\Microsoft.Common.targets" />
+  <Import Project="Microsoft.Web.Publishing.targets" />
+  
+  <PropertyGroup>
+    <!--In earlier version of WPP, Web.config transformation doesn't support anthing other than the Msbuild Project project folder to find the web.config-->
+    <PreTransformWebConfigDependsOn>
+      $(PreTransformWebConfigDependsOn);
+      FixupTransformAssistFilesAsExclude;
+    </PreTransformWebConfigDependsOn>
+  </PropertyGroup>
+  
+  <ItemGroup>
+    <_AllExecutableUnderBin Include="$(SourceWebPhysicalPath)\Bin\*.dll;$(SourceWebPhysicalPath)\Bin\*.exe"/>
+    <ExcludeFromPackageFiles Include="@(_AllExecutableUnderBin -> '%(RelativeDir)%(FileName).xml')" Condition=" '$(ExcludeXmlAssemblyFiles)'=='true' "/>
+  </ItemGroup>
+  
+  <Target Name="FixupTransformAssistFilesAsExclude"
+          DependsOnTargets="CollectWebConfigsToTransform"
+          Condition="'$(FixupTransformAssistFilesAsExclude)' != 'False'">
+    <PropertyGroup>
+       <_WDP_IdentifyTransformAssistFile>web\.[^\\\.]*\.config$</_WDP_IdentifyTransformAssistFile>
+    </PropertyGroup>
+    <!--Find all item with web.*.config-->
+    <CollectFilesinFolder RootPath="$(WebPublishPipelineProjectDirectory)"
+                          RelativePathMatchs="$(_WDP_IdentifyTransformAssistFile)" >
+      <Output TaskParameter="Result" ItemName="_WDP_WebConfigAssistFilesToFixupTemp" />
+    </CollectFilesinFolder>
+
+    <FilterByItems PipelineItems="@(FilesForPackagingFromProject)"
+                  Filter="@(_WDP_WebConfigAssistFilesToFixupTemp)">
+      <Output TaskParameter="InFilter" ItemName="_WDP_WebConfigAssistFilesToFixup"/>
+    </FilterByItems>
+    
+    <ItemGroup>
+      <!--Change all web.*.config to full path and add DependentUpon with Web.config-->
+      <FilesForPackagingFromProject Remove="@(_WDP_WebConfigAssistFilesToFixup)" />
+      <FilesForPackagingFromProject Include="@(_WDP_WebConfigAssistFilesToFixup->'$(WebPublishPipelineProjectDirectory)%(Identity)')">
+        <DependentUpon>Web.config</DependentUpon>
+      </FilesForPackagingFromProject>
+    </ItemGroup>
+  </Target>
+
+  <!--
+    ============================================================
+                            _PrepareForBuild
+
+    Sets up variables in preparation to build.
+    ============================================================
+    -->
+    <Target Name="_PrepareForBuild">
+        <!-- 
+        Here converting to a property is required because TargetDir and TargetPath are defined 
+        to contain an item list. We want that item list to be expanded so that it can be used
+        as a regular property value and not as an item-list-with-transform.
+        -->
+      <PropertyGroup>
+        <WDTargetDir>$(WDTargetDir)</WDTargetDir>
+      </PropertyGroup>
+      <PropertyGroup>
+        <_FullSourceWebDir>$(_FullSourceWebDir)</_FullSourceWebDir>
+      </PropertyGroup>
+      
+      <MakeDir Directories="$(IntermediateOutputPath)" />
+    </Target>
+
+  <!--
+    ============================================================
+                              _CollectFilesForCopyBeforeBuild
+
+    Copy the web to a new folder excluding predefined items in @(ExcludeFromBuild)
+    <ItemGroup>
+      <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\Test\**\*.*"/>
+      <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\Images\**\*.*"/>
+    </ItemGroup>
+    The following support regular expreesion Exclude For example
+    <PropertyGroup>
+      <_WDPExcludeFullPathFromBuildRegEx>$(_WDPExcludeFullPathFromBuildRegEx);C:\\myfoo</_WDPExcludeFullPathFromBuildRegEx>
+      <_WDPExcludeRelativePathFromBuildRegex>$(_WDPExcludeRelativePathFromBuildRegex);[^\\]*\.scc$;[^\\]*\.vssscc$;[^\\]*\.vspscc$</_WDPExcludeRelativePathFromBuildRegex>
+    </PropertyGroup>
+    <CopyBeforeBuildTargetPath  Condition="'$(CopyBeforeBuildTargetPath)' == ''">$(IntermediateOutputPath)Source</CopyBeforeBuildTargetPath>
+    ============================================================
+    -->
+  <ItemDefinitionGroup>
+    <_WebFiles>
+      <DestinationRelativePath></DestinationRelativePath>
+      <Exclude>False</Exclude>
+      <FromTarget>Unknown</FromTarget>
+      <Category>Run</Category>
+      <ProjectFileType>Default</ProjectFileType>
+    </_WebFiles>
+  </ItemDefinitionGroup>
+
+  <Target Name="_CollectFilesForCopyBeforeBuild"
+          DependsOnTargets="$(_CollectFilesForCopyBeforeBuildDependsOn)">
+
+    <!--********************************************************************-->
+    <!-- Enforce that all items have these metadata values -->
+    <!-- Default for Exclude is False -->
+    <!--********************************************************************-->
+    <CollectFilesinFolder RootPath="$(_WDPSourceWebPhysicalPath)"
+                         ExcludeFullPathMatchs="$(_WDPExcludeFullPathFromBuildRegEx)"
+                         ExcludeRelativePathMatchs="$(_WDPExcludeRelativePathFromBuildRegex)">
+      <Output TaskParameter="Result" ItemName="_WebFilesNoMetadata" />
+    </CollectFilesinFolder>
+
+    <PropertyGroup>
+      <_OriginalSourceWebPhysicalFullPath>$([System.IO.Path]::GetFullPath($(SourceWebPhysicalPath)))</_OriginalSourceWebPhysicalFullPath>
+      <_OriginalSourceWebPhysicalFullPath Condition="!HasTrailingSlash('$(_OriginalSourceWebPhysicalFullPath)')">$(_OriginalSourceWebPhysicalFullPath)\</_OriginalSourceWebPhysicalFullPath>
+    </PropertyGroup>
+
+    <!-- For Team Build scenarios when WAP is used the exclude may be different from the source path -->
+    <ItemGroup Condition ="'$(_WDPSourceWebPhysicalPath)' != '$(SourceWebPhysicalPath)'">
+      <_WebFilesExclude Include="%(ExcludeFromBuild.Identity)">
+        <SourceRelativePath Condition="$([System.String]::new(%(ExcludeFromBuild.FullPath)).StartsWith($(_OriginalSourceWebPhysicalFullPath), StringComparison.OrdinalIgnoreCase ))" >$([System.String]::new(%(ExcludeFromBuild.FullPath)).SubString($(_OriginalSourceWebPhysicalFullPath.Length)))</SourceRelativePath>
+      </_WebFilesExclude>
+      <_WebFilesExclude Condition="'%(SourceRelativePath)'==''">
+        <SourceRelativePath>%(Identity)</SourceRelativePath>
+      </_WebFilesExclude>
+      <_WebFilesNoMetadata Remove="%(_WebFilesExclude.SourceRelativePath)" Condition="'%(_WebFilesExclude.SourceRelativePath)' != ''"/>
+    </ItemGroup>
+
+    <!-- Log debug for potential issue -->
+    <WriteLinesToFile Condition ="$(EnablePackageProcessLoggingAndAssert) And '$(_WDPSourceWebPhysicalPath)' != '$(SourceWebPhysicalPath)'"
+                  Encoding="utf-8"
+                  File="$(IntermediateOutputPath)\_WebFilesExclude.txt"
+                  Lines="@(_WebFilesExclude->'
+                      Files:%(Identity) 
+                      SourceRelativePath:%(SourceRelativePath)')"
+                  Overwrite="True" />
+
+    <!-- _WebFilesNoMetadata doesn't have metadata yet, need to fill the data.  Fill in the metadata now for CopyPipelineFiles to use -->
+    <ItemGroup>
+      <_WebFiles Include="$([System.IO.Path]::Combine($(_WDPSourceWebPhysicalPath), %(_WebFilesNoMetadata.Identity)))" >
+        <DestinationRelativePath>%(_WebFilesNoMetadata.Identity)</DestinationRelativePath>
+      </_WebFiles>
+    </ItemGroup>
+
+    <!-- For backwards compatability -->
+    <ItemGroup Condition ="'$(_WDPSourceWebPhysicalPath)' == '$(SourceWebPhysicalPath)'">
+      <_WebFiles Remove="@(ExcludeFromBuild)" />
+    </ItemGroup>
+
+    <MakeDir Directories="$(IntermediateOutputPath)" />
+
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert)"
+                      Encoding="utf-8"
+                      File="$(IntermediateOutputPath)\webfilesToBeCopied.txt"
+                      Lines="@(_WebFiles->'
+                      Files:%(Identity) 
+                      FromTarget:%(FromTarget)
+                      DestinationRelativePath:%(DestinationRelativePath)')"
+                      Overwrite="True" />
+  </Target>
+
+  <Target Name="_CopyBeforeBuild"
+          Condition=" '$(EnableCopyBeforeBuild)' == 'true' or '@(ExcludeFromBuild)' != ''  "
+          DependsOnTargets="_CollectFilesForCopyBeforeBuild">
+
+    <ItemGroup>
+      <_WDPAllExtraFilesUnderTempFolder Condition="'$(CopyBeforeBuildTargetPath)' != ''" Include="$(CopyBeforeBuildTargetPath)\**" />
+      <_WDPAllExtraFilesUnderTempFolder
+        Remove="@(FilesForPackagingFromProject->'$(CopyBeforeBuildTargetPath)\%(DestinationRelativePath)')" />
+    </ItemGroup>
+    <!-- Remove all extra files in the temp folder that's not in the @(FilesForPackagingFromProject) -->
+    <Delete Files="@(_WDPAllExtraFilesUnderTempFolder)"  />
+
+    <!-- This method supports incremental copy, instead of a full copy everytime -->
+    <!-- We've already expanded the path as relative path to the project. There is no need for sourceDirectory -->
+    <CopyPipelineFiles PipelineItems="@(_WebFiles)"
+                           SourceDirectory="$(MSBuildProjectDirectory)" 
+                           TargetDirectory="$(CopyBeforeBuildTargetPath)"
+                           SkipMetadataExcludeTrueItems="True"
+                           UpdateItemSpec="False"
+                           DeleteItemsMarkAsExcludeTrue ="True">
+      <Output TaskParameter="UpdatedPipelineItems" ItemName="_WebFilesCopied"/>
+    </CopyPipelineFiles>
+    
+    <PropertyGroup>
+      <_AspNetCompilerSourceWebPath>$(CopyBeforeBuildTargetPath)</_AspNetCompilerSourceWebPath>
+    </PropertyGroup>
+  </Target>
+
+  <!--
+    ============================================================
+                              Clean
+    ============================================================
+   -->
+  <Target Name="Clean">
+    <PropertyGroup>
+      <Clean>true</Clean>
+    </PropertyGroup>
+      
+    <RemoveDir Condition="Exists('$(CopyBeforeBuildTargetPath)')" Directories="$(CopyBeforeBuildTargetPath)"/>
+    <RemoveDir Condition="Exists('$(TempBuildDir)')" Directories="$(TempBuildDir)" />
+    <RemoveDir Condition="Exists('$(WDTargetDir)')" Directories="$(WDTargetDir)" />
+  </Target>
+
+  <!--
+    ============================================================
+                              Reference Resolving
+
+    Updates the bin folder with the lastest .refresh files
+    ============================================================
+    -->
+    <Target Name="_ResolveAssemblyReferencesWithRefreshFile" DependsOnTargets="_PrepareForBuild">
+      <ItemGroup>
+        <References_RefreshFile Include="$(_FullSourceWebDir)\Bin\*.refresh"/>
+      </ItemGroup>
+      <ReadLinesFromFile File="%(References_RefreshFile.Identity)" Condition=" '%(References_RefreshFile.Identity)' != '' ">
+          <Output TaskParameter="Lines" ItemName="References_ReferenceRelPath" />
+      </ReadLinesFromFile>
+      <CombinePath BasePath="$(_FullSourceWebDir)" Paths="@(References_ReferenceRelPath)">
+          <Output TaskParameter="CombinedPaths" ItemName="References" />
+      </CombinePath>
+      
+      <Copy 
+        SourceFiles="@(References->'%(FullPath)')" 
+        DestinationFolder="$(_FullSourceWebDir)\Bin\" 
+        Condition="!Exists('%(References.Identity)')" 
+        ContinueOnError="true" 
+        SkipUnchangedFiles="true"
+        Retries="$(CopyRetryCount)"
+        RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
+    </Target>
+
+   <!--
+    ============================================================
+                                        AfterResolveReferences
+    ============================================================
+    -->
+  <Target Name="AfterResolveReferences">
+    
+    <Copy SourceFiles="@(ReferencePath->'%(FullPath)')"
+        DestinationFolder="$(_FullSourceWebDir)\Bin\"
+        ContinueOnError="true"
+        SkipUnchangedFiles="true"
+        Retries="$(CopyRetryCount)"
+        RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
+    
+    <Copy SourceFiles="@(ReferenceComWrappersToCopyLocal); @(ResolvedIsolatedComModules); @(_DeploymentLooseManifestFile); @(NativeReferenceFile)"
+        DestinationFolder="$(_FullSourceWebDir)\bin"
+        SkipUnchangedFiles="true"
+        Retries="$(CopyRetryCount)"
+        RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
+
+    <Copy SourceFiles="@(ReferenceCopyLocalPaths)"
+         DestinationFiles="@(ReferenceCopyLocalPaths->'$(_FullSourceWebDir)\bin\%(DestinationSubDirectory)%(Filename)%(Extension)')"
+         SkipUnchangedFiles="true"
+         Retries="$(CopyRetryCount)"
+         RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
+  </Target>
+
+  <!--
+    ============================================================
+                              Build
+    The main build entry point.
+    ============================================================
+    -->
+  <PropertyGroup>
+    <BuildDependsOn>
+      _PrepareForBuild;
+      ResolveProjectReferences;
+      _ResolveAssemblyReferencesWithRefreshFile;
+      ResolveReferences;
+      _CopyBeforeBuild;
+    </BuildDependsOn>
+    <PipelineDeployPhaseAfterTargets Condition="'$(DeployOnBuild)'=='True'">_CopyBeforeBuild</PipelineDeployPhaseAfterTargets>  
+  </PropertyGroup>
+
+  <Target
+      Name="Build"
+      DependsOnTargets="$(BuildDependsOn)" />
+
+  <!--
+    ============================================================
+                              CopyToOutputDir                              
+    From the temp building location copy the output to the actual oput dir
+    ============================================================
+    -->
+  <ItemDefinitionGroup>
+    <_WDPOutputFiles>
+      <DestinationRelativePath></DestinationRelativePath>
+      <Exclude>False</Exclude>
+      <FromTarget>Unknown</FromTarget>
+      <Category>Run</Category>
+      <ProjectFileType>Default</ProjectFileType>
+    </_WDPOutputFiles>
+  </ItemDefinitionGroup>
+
+  <Target Name="_CollectFilesForCopyToOutputDir"
+          DependsOnTargets="$(_CollectFilesForCopyToOutputDirDependsOn)">
+    <PropertyGroup>
+      <_TempDirFullPath>$(MSBuildProjectDirectory)\$(TempBuildDir)</_TempDirFullPath>
+    </PropertyGroup>
+
+    <MakeDir Directories="$(_TempDirFullPath)" />
+    <!--********************************************************************-->    
+    <!-- Enforce that all items have these metadata values -->
+    <!-- Default for Exclude is False -->
+    <!--********************************************************************-->
+    <CollectFilesinFolder RootPath="$(_TempDirFullPath)"
+                         ExcludeFullPathMatchs="$(_WDPExcludeFullPathToOutputDirRegEx)"
+                         ExcludeRelativePathMatchs="$(_WDPExcludeRelativePathToOutputDirRegex)">
+      <Output TaskParameter="Result" ItemName="_WDPOutputFilesNoMetadata" />
+    </CollectFilesinFolder>
+
+    <!-- _WDPOutputFilesNoMetadata doesn't have metadata yet, need to fill the data.  Fill in the metadata now for CopyPipelineFiles to use -->
+    <ItemGroup>
+      <_WDPOutputFiles Include="@(_WDPOutputFilesNoMetadata)" >
+        <DestinationRelativePath>%(_WDPOutputFilesNoMetadata.Identity)</DestinationRelativePath>
+      </_WDPOutputFiles>
+    </ItemGroup>
+
+    <MakeDir Directories="$(IntermediateOutputPath)" />
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert)"
+                      Encoding="utf-8"
+                      File="$(IntermediateOutputPath)\WDPOutputFilesToBeCopied.txt"
+                      Lines="@(_WDPOutputFiles->'
+                      Files:%(Identity) 
+                      FromTarget:%(FromTarget)
+                      DestinationRelativePath:%(DestinationRelativePath)')"
+                      Overwrite="True" />
+  </Target>
+
+  <PropertyGroup>
+    <_CopyToOutputDirDependsOn>
+      $(_CopyToOutputDirDependsOn);
+      CoreCopyToOutputDir;
+      CleanTempBuildDir
+    </_CopyToOutputDirDependsOn>
+  </PropertyGroup>
+
+  <Target Name="CopyToOutputDir" DependsOnTargets="$(_CopyToOutputDirDependsOn)"/>
+  
+  <Target Name="CoreCopyToOutputDir"
+          Condition=" '$(CopyToOutputDir)' != 'False'"
+          DependsOnTargets="_CollectFilesForCopyToOutputDir">
+
+    <ItemGroup>
+      <_WDPAllExtraFilesUnderTargetDir Condition="'$(WDTargetDir)' != ''" Include="$(WDTargetDir)\**" />
+      <_WDPAllExtraFilesUnderTargetDir
+        Remove="@(_WDPOutputFiles->'$(WDTargetDir)\%(DestinationRelativePath)')" />
+    </ItemGroup>
+    <!-- Remove all extra files in the temp folder that's not in the @(FilesForPackagingFromProject -->
+    <Delete Files="@(_WDPAllExtraFilesUnderTargetDir)"  />
+
+    <!-- This method supports incremental copy, instead of a full copy everytime -->
+    <!-- @(_WDPOutputFiles) contain relative path to $(TempBuildDir), pass in sourceDirectory -->
+    <CopyPipelineFiles PipelineItems="@(_WDPOutputFiles)"
+                           SourceDirectory="$(TempBuildDir)"
+                           TargetDirectory="$(WDTargetDir)"
+                           SkipMetadataExcludeTrueItems="True"
+                           UpdateItemSpec="False"
+                           DeleteItemsMarkAsExcludeTrue ="True">
+      <Output TaskParameter="UpdatedPipelineItems" ItemName="_WDPOutputFilesCopied"/>
+    </CopyPipelineFiles>   
+  </Target>
+
+  <!--
+    ============================================================
+                              CleanTempBuildDir
+    Clean Temp Build Dir
+    ============================================================
+    -->
+  <Target Name="CleanTempBuildDir"
+          Condition="'$(CleanTempBuildDir)' == 'True'">
+    <RemoveDir Directories="$(TempBuildDir)" />
+  </Target>
+
+  <!--
+  This is required for setup project support
+    -->
+  <Target Name="BuiltProjectOutputGroup" DependsOnTargets="_PrepareForBuild">
+    <ItemGroup>
+      <_BuiltProjectOutputGroupOutput Include="$(WDTargetDir)**\*.*"/>
+      <BuiltProjectOutputGroupOutput Include="@(_BuiltProjectOutputGroupOutput)">
+        <TargetPath>%(_BuiltProjectOutputGroupOutput.SubFolder)%(_BuiltProjectOutputGroupOutput.RecursiveDir)%(Filename)%(Extension)</TargetPath>
+      </BuiltProjectOutputGroupOutput>
+    </ItemGroup>
+  </Target>
+
+</Project>

+ 767 - 0
servicestack/lib/VisualStudio.MsBuild.11.0/Web/Transform/Microsoft.Web.Publishing.AspNetCompileMerge.targets

@@ -0,0 +1,767 @@
+<!--
+***********************************************************************************************
+Microsoft.Web.Publishing.AspNetCompileMerge.targets
+
+WARNING:  DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
+          created a backup copy.  Incorrect changes to this file will make it
+          impossible to load or build your web deploy projects from the command-line or the IDE.
+
+This file defines the steps in the standard package/publish process for Tranform the list of file 
+through the aspnet_compile and aspnet_merge.  It will dramaticaly change the content in the list.
+
+Copyright (C) Microsoft Corporation. All rights reserved.
+***********************************************************************************************
+-->
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!--Import task from our dll-->
+  <UsingTask TaskName="GetPublishingLocalizedString" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="CopyPipelineFiles" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll" />
+  <UsingTask TaskName="AspNetMerge" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="GetProjectProperties" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="FilterByItems" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="GenerateAssemblyInfo" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+  <UsingTask TaskName="CheckItemsCount" AssemblyFile="..\Microsoft.Web.Publishing.Tasks.dll"/>
+
+  <!--ImportBefore Extension-->
+  <PropertyGroup>
+    <ImportByWildcardBeforeMicrosoftWebPublishingTransformTargets Condition="'$(ImportByWildcardBeforeMicrosoftWebPublishingTransformTargets)'==''">true</ImportByWildcardBeforeMicrosoftWebPublishingTransformTargets>
+  </PropertyGroup>
+  <Import Project="$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportBefore\*" Condition="'$(ImportByWildcardBeforeMicrosoftWebPublishingTransformTargets)' == 'true' and exists('$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportBefore')"/>
+
+  <PropertyGroup>
+    <Microsoft_Web_Publishing_AspNetCompileMerge_targets_Imported>True</Microsoft_Web_Publishing_AspNetCompileMerge_targets_Imported>
+  </PropertyGroup>
+
+  <!--********************************************************************-->
+  <!--Enforce all item have these metadata value for all pipeline metadata-->
+  <!--Default for Exclude is False-->
+  <!--********************************************************************-->
+  <ItemDefinitionGroup>
+    <_AspnetCompileMergePrecompiledOutput>
+      <DestinationRelativePath></DestinationRelativePath>
+      <Exclude>False</Exclude>
+      <FromTarget>AspNetCompilerMergePhase</FromTarget>
+      <Category>Run</Category>
+      <ProjectFileType>Default</ProjectFileType>
+    </_AspnetCompileMergePrecompiledOutput>
+  </ItemDefinitionGroup>
+  
+  
+  <PropertyGroup>
+    <AspnetCompileMergeIntermediateOutputPath Condition="'$(AspnetCompileMergeIntermediateOutputPath)' == ''">$(IntermediateOutputPath)AspnetCompileMerge\</AspnetCompileMergeIntermediateOutputPath>
+    <AspnetCompileMergeIntermediateAssemblyInfo Condition="'$(AspnetCompileMergeIntermediateAssemblyInfo)' == ''">$(IntermediateOutputPath)AssemblyInfo\</AspnetCompileMergeIntermediateAssemblyInfo>
+    <CopyBeforeAspnetCompileMergeTargetPath  Condition="'$(CopyBeforeAspnetCompileMergeTargetPath)' == ''">$(AspnetCompileMergeIntermediateOutputPath)Source</CopyBeforeAspnetCompileMergeTargetPath>
+    <AspnetCompileMerge_TempBuildDir Condition="'$(AspnetCompileMerge_TempBuildDir)' == ''" >$(AspnetCompileMergeIntermediateOutputPath)TempBuildDir</AspnetCompileMerge_TempBuildDir>
+  </PropertyGroup>
+
+  <PropertyGroup Condition="'$(UseMerge)' != 'true'">
+    <_AspNetCompilerFixedNames  Condition="'$(_AspNetCompilerFixedNames)' == ''">$(UseFixedNames)</_AspNetCompilerFixedNames>
+  </PropertyGroup>
+
+  <PropertyGroup  Condition="'$(UseMetabasePath)' == 'true'">
+    <_AspNetCompilerMetabasePath Condition ="'$(_AspNetCompilerMetabasePath)' == ''">$(SourceWebMetabasePath)</_AspNetCompilerMetabasePath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(UseMetabasePath)' != 'true'">
+    <_AspNetCompilerSourceWebPath Condition="'$(_AspNetCompilerSourceWebPath)' != ''">$(WebPublishPipelineProjectDirectory)</_AspNetCompilerSourceWebPath>
+    <_AspNetCompilerVirtualPath Condition="'$(_AspNetCompilerVirtualPath)' != ''">$(SourceWebVirtualPath)</_AspNetCompilerVirtualPath>
+  </PropertyGroup>
+
+  <PropertyGroup>
+    <_WPPCurrentBuildInfo>$(_WPPCurrentBuildInfo);PrecompileBeforePublish=$(PrecompileBeforePublish);WDPMergeOption=$(WDPMergeOption);_AspNetCompilerFixedNames=$(_AspNetCompilerFixedNames);_AspNetCompilerMetabasePath=$(_AspNetCompilerMetabasePath);Microsoft_Web_Publishing_AspNetCompileMerge_targets_Imported=$(Microsoft_Web_Publishing_AspNetCompileMerge_targets_Imported)</_WPPCurrentBuildInfo>
+  </PropertyGroup>
+  
+  <!--***************************************************************-->
+  <!--Hookinto clean target for Clean target -->
+  <!--***************************************************************-->
+  <PropertyGroup>
+    <_WPPCleanTargets>
+      $(_WPPCleanTargets);
+      CleanAspNetCompileMergeTempDirectories;
+      </_WPPCleanTargets>
+  </PropertyGroup>
+
+  
+  <!--
+    ============================================================
+                              Clean
+
+    Clean target.
+    ============================================================
+    -->
+  <PropertyGroup>
+    <CleanAspNetCompileMergeTempDirectoriesDependsOn Condition="'$(CleanAspNetCompileMergeTempDirectoriesDependsOn)'==''">
+    </CleanAspNetCompileMergeTempDirectoriesDependsOn>
+  
+  </PropertyGroup>
+  <Target Name="CleanAspNetCompileMergeTempDirectories"  DependsOnTargets="$(CleanAspNetCompileMergeTempDirectoriesDependsOn)">
+    <!-- 
+        Create a Clean boolean property
+        -->
+    <CreateProperty Value="true">
+      <Output TaskParameter="Value" PropertyName="Clean" />
+    </CreateProperty>
+    <RemoveDir Condition="Exists('$(CopyBeforeAspnetCompileMergeTargetPath)')" Directories="$(CopyBeforeAspnetCompileMergeTargetPath)"/>
+    <RemoveDir Condition="Exists('$(AspnetCompileMerge_TempBuildDir)')" Directories="$(AspnetCompileMerge_TempBuildDir)" />
+    <RemoveDir Condition="Exists('$(AspnetCompileMergeIntermediateAssemblyInfo)')" Directories="$(AspnetCompileMergeIntermediateAssemblyInfo)" />
+    <Delete Condition="'$(AssemblyInfoDll)' != '' And Exists($(AssemblyInfoDll))"
+      DeletedFiles="$(AssemblyInfoDll)" ContinueOnError="true" />
+  </Target>
+
+
+  <!--
+    ============================================================
+                                        GetAspNetMergePath
+
+    Get the paths for AspNet_Merge.exe Path.
+    Use Framework SDK's Path.  If not exist, fall back to WDP installpath.
+    ============================================================
+    -->
+  <PropertyGroup>
+    <GetAspNetMergePathDependsOn>
+      GetFrameworkPaths;
+    </GetAspNetMergePathDependsOn>
+  </PropertyGroup>
+  <Target
+      Name="GetAspNetMergePath"
+      DependsOnTargets="$(GetAspNetMergePathDependsOn)"
+      Condition ="'$(GetAspNetMergePath)' != 'false'">
+    <PropertyGroup>
+      <AspnetMergeName>aspnet_merge.exe</AspnetMergeName>
+      <AspnetMergePath Condition="Exists('$(TargetFrameworkSDKToolsDirectory)$(AspnetMergeName)')">$(TargetFrameworkSDKToolsDirectory)</AspnetMergePath>
+    </PropertyGroup>
+    <Error Condition="'$(AspnetMergePath)' == '' Or !Exists($(AspnetMergePath))"
+           Text="Can't find the valid AspnetMergePath" />
+  </Target>
+
+
+
+  <!--********************************************************************-->
+  <!-- Target GenerateAssemblyInfo -->
+  <!--********************************************************************-->
+  <!--
+    ============================================================
+                              GenerateAssemblyInfo
+
+    Generates an Assembly with the AssemblyAttributes contained in @(AssebmlyAttributes)
+    The output is in property AssemblyInfoDll
+
+    The assembly attributes can be defined as follows:
+    
+           <ItemGroup>
+             <AssebmlyAttributes Include="AssemblyVersion">
+               <value>3.0.0.0</value>
+             </AssebmlyAttributes>
+             <AssebmlyAttributes Include="AssemblyFileVersion">
+               <value>3.0.0.0</value>
+             </AssebmlyAttributes>
+             <AssemblyAttributes Include="AssemblyTitle">
+               <value>MyCompany MyWeb</value>
+             </AssemblyAttributes>
+             <AssemblyAttributes Include="AssemblyDescription">
+               <value>Corporate Site</value>
+             </AssemblyAttributes>
+             <AssemblyAttributes Include="AssemblyCompany">
+               <value>MyCompany</value>
+             </AssemblyAttributes>
+             <AssemblyAttributes Include="AssemblyCopyright">
+               <value>Copyright © MyCompany 2005</value>
+             </AssemblyAttributes>
+           </ItemGroup>
+    
+    ============================================================
+    -->
+  <PropertyGroup>
+    <GenerateAssemblyInfoFromAssemblyAttributesDependsOn>
+      $(OnBeforeGenerateAssemblyInfoFromAssemblyAttributes);
+      $(GenerateAssemblyInfoFromAssemblyAttributesDependsOn);
+      GetFrameworkPaths;
+      GetAspNetMergePath;
+    </GenerateAssemblyInfoFromAssemblyAttributesDependsOn>
+  </PropertyGroup>
+  <Target Name="GenerateAssemblyInfoFromAssemblyAttributes" 
+          DependsOnTargets="$(GenerateAssemblyInfoFromAssemblyAttributesDependsOn)"
+          Condition=" '@(AssemblyAttributes)' != '' ">
+    
+    <PropertyGroup >
+      <_GenerateAssemblyInfoDll>False</_GenerateAssemblyInfoDll>
+      <_GenerateAssemblyInfoDll Condition="'$(AssemblyInfoDll)' == ''  Or !Exists($(AssemblyInfoDll))">True</_GenerateAssemblyInfoDll>
+    </PropertyGroup>
+    
+    <PropertyGroup Condition="$(_GenerateAssemblyInfoDll)">
+      <_AssemblyInfoSource Condition="'$(_AssemblyInfoSource)' == ''" >$(IntermediateOutputPath)AssemblyInfo\AssemblyInfo.cs</_AssemblyInfoSource>
+      <_AssemblyInfoSourceDirectory>$([System.IO.Path]::GetDirectoryName($(_AssemblyInfoSource)))</_AssemblyInfoSourceDirectory>
+      <AssemblyInfoDll>$([System.IO.Path]::GetDirectoryName($(_AssemblyInfoSource)))\AssemblyInfo.dll</AssemblyInfoDll>
+      <_AssemblyInfoDllDirectory>$([System.IO.Path]::GetDirectoryName($(AssemblyInfoDll)))</_AssemblyInfoDllDirectory>
+    </PropertyGroup>
+    
+    <GenerateAssemblyInfo Condition="$(_GenerateAssemblyInfoDll) And !Exists($(_AssemblyInfoSource))"
+       AssemblyAttributes="@(AssemblyAttributes)"
+       OutputDir="$([System.IO.Path]::GetDirectoryName($(_AssemblyInfoSource)))"
+       />
+
+    <MakeDir Condition="!Exists($(_AssemblyInfoDllDirectory))"
+              Directories="$(_AssemblyInfoDllDirectory)" ContinueOnError="true" />
+    
+    <Csc Condition="$(_GenerateAssemblyInfoDll)"
+      TargetType="library"
+      Sources="$(_AssemblyInfoSource)"
+      OutputAssembly="$(AssemblyInfoDll)"
+      />
+    <ItemGroup Condition="$(_GenerateAssemblyInfoDll) And Exists($(AssemblyInfoDll))">
+      <FileWrites Include="$(_AssemblyInfoSource)" />
+      <FileWrites Include="$(AssemblyInfoDll)" />
+    </ItemGroup>
+  </Target>
+
+
+  <PropertyGroup>
+    <GenerateAssemblyInfoFromExistingAssembleInfoDependsOn>
+      $(OnBeforeGenerateAssemblyInfoFromExistingAssembleInfo);
+      $(GenerateAssemblyInfoFromExistingAssembleInfoDependsOn);
+      GetFrameworkPaths;
+      GetAspNetMergePath;
+      GenerateAssemblyInfoFromAssemblyAttributes;
+    </GenerateAssemblyInfoFromExistingAssembleInfoDependsOn>
+  </PropertyGroup>
+  <Target Name="GenerateAssemblyInfoFromExistingAssembleInfo" 
+          DependsOnTargets="$(GenerateAssemblyInfoFromExistingAssembleInfoDependsOn)"
+          Condition=" '@(AssemblyAttributes)' == '' ">
+
+    <FilterByItems Condition="'$(_AssemblyInfoSource)'==''"
+      PipelineItems="@(Compile)"
+                       SourceMetadataName="Filename"
+                       FilterMetadataName="Filename"
+                       Filter="AssemblyInfo">
+      <Output TaskParameter="InFilter" ItemName="_AspNetCompile_AssemblyInfo"/>
+    </FilterByItems>
+
+    <ItemGroup Condition="'$(_AssemblyInfoSource)'!=''">
+      <_AspNetCompile_AssemblyInfo Include="$(_AssemblyInfoSource)" />
+    </ItemGroup>
+
+    <PropertyGroup Condition="'$(AssemblyInfoDll)' == ''">
+      <_AssemblyInfoDllDirectory>$(IntermediateOutputPath)AssemblyInfo</_AssemblyInfoDllDirectory>
+      <AssemblyInfoDll>$(_AssemblyInfoDllDirectory)\AssemblyInfo.dll</AssemblyInfoDll>
+    </PropertyGroup>
+    
+    <MakeDir Condition="!Exists($(_AssemblyInfoDllDirectory))"
+              Directories="$(_AssemblyInfoDllDirectory)" ContinueOnError="true" />
+
+    
+    <PropertyGroup >
+      <_GenerateAssemblyInfoDll>False</_GenerateAssemblyInfoDll>
+      <_GenerateAssemblyInfoDll Condition="'$(AssemblyInfoDll)' == ''  Or !Exists($(AssemblyInfoDll))">True</_GenerateAssemblyInfoDll>
+    </PropertyGroup>
+
+    
+    <CheckItemsCount Items="@(_AspNetCompile_AssemblyInfo)" >
+      <Output TaskParameter="Count" PropertyName="_AspNetCompile_AssemblyInfo_Count" />
+    </CheckItemsCount>
+
+    <!--Found more than one AssemblyInfo.cs or AssemblyInfo.vb
+    To avoid this error either specify
+    /p:_AssemblyInfoSource=..\..\AssemblyInfo.cs
+    or
+    /p:AssemblyInfoDll=$(TargetPath)
+    or
+    supply @(AssemblyAttributes) as following
+    <ItemGroup>
+      <AssebmlyAttributes Include="AssemblyVersion">
+        <value>3.0.0.0</value>
+      </AssebmlyAttributes>
+      <AssebmlyAttributes Include="AssemblyFileVersion">
+        <value>3.0.0.0</value>
+      </AssebmlyAttributes>
+      <AssemblyAttributes Include="AssemblyTitle">
+        <value>MyCompany MyWeb</value>
+      </AssemblyAttributes>
+      <AssemblyAttributes Include="AssemblyDescription">
+        <value>Corporate Site</value>
+      </AssemblyAttributes>
+      <AssemblyAttributes Include="AssemblyCompany">
+        <value>MyCompany</value>
+      </AssemblyAttributes>
+      <AssemblyAttributes Include="AssemblyCopyright">
+        <value>Copyright © MyCompany 2005</value>
+      </AssemblyAttributes>
+    </ItemGroup>-->
+    <GetPublishingLocalizedString
+           Condition="$(_GenerateAssemblyInfoDll) AND '$(_AspNetCompile_AssemblyInfo_Count)' != '1'"
+           ID="PublishLocalizedString_ErrorInvalidMSBuildItemCollectionCount"
+           ArgumentCount="3"
+           Arguments="_AspNetCompile_AssemblyInfo_Count;$(_AspNetCompile_AssemblyInfo_Count);1"
+           LogType="Error" />
+
+    <Error  Text ="Target GenerateAssemblyInfoFromExistingAssembleInfo Failed"
+             Condition="$(_GenerateAssemblyInfoDll) And '$(_AspNetCompile_AssemblyInfo_Count)' != '1'" />
+
+
+
+    <FilterByItems
+      PipelineItems="@(_AspNetCompile_AssemblyInfo)"
+                       SourceMetadataName="Extension"
+                       FilterMetadataName="Extension"
+                       Filter="AssemblyInfo.cs">
+      <Output TaskParameter="InFilter" ItemName="_AspNetCompile_AssemblyInfo_CS"/>
+    </FilterByItems>
+
+    <Csc Condition="$(_GenerateAssemblyInfoDll) And '@(_AspNetCompile_AssemblyInfo_CS)' != ''"
+      TargetType="library"
+      Sources="@(_AspNetCompile_AssemblyInfo_CS)"
+      OutputAssembly="$(AssemblyInfoDll)"
+      />
+    
+    <FilterByItems
+      PipelineItems="@(_AspNetCompile_AssemblyInfo)"
+                       SourceMetadataName="Extension"
+                       FilterMetadataName="Extension"
+                       Filter="AssemblyInfo.vb">
+      <Output TaskParameter="InFilter" ItemName="_AspNetCompile_AssemblyInfo_VB"/>
+    </FilterByItems>
+
+    <Vbc Condition="$(_GenerateAssemblyInfoDll) And '@(_AspNetCompile_AssemblyInfo_VB)' != ''"
+      TargetType="library"
+      Sources="@(_AspNetCompile_AssemblyInfo_VB)"
+      OutputAssembly="$(AssemblyInfoDll)"
+      />
+    
+    <ItemGroup Condition="$(_GenerateAssemblyInfoDll) And Exists($(AssemblyInfoDll))">
+      <FileWrites Include="$(AssemblyInfoDll)" />
+    </ItemGroup>
+    
+  </Target>
+  
+  
+
+  <PropertyGroup>
+    <GenerateAssemblyInfoDependsOn>
+      $(OnBeforeGenerateAssemblyInfo);
+      $(GenerateAssemblyInfoDependsOn);
+      GetFrameworkPaths;
+      GetAspNetMergePath;
+      GenerateAssemblyInfoFromAssemblyAttributes;
+      GenerateAssemblyInfoFromExistingAssembleInfo;
+    </GenerateAssemblyInfoDependsOn>
+  </PropertyGroup>
+  <Target Name="GenerateAssemblyInfo" 
+          DependsOnTargets="$(GenerateAssemblyInfoDependsOn)"
+          Condition=" '$(GenerateAssemblyInfo)' != 'false' ">
+  
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!-- Target GetAspNetPreCompileSourceVirtualPath -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <GetAspNetPreCompileSourceVirtualPathDependsOn >
+      $(OnBeforeGetAspNetPreCompileSourceVirtualPath);
+      $(GetAspNetPreCompileSourceVirtualPathDependsOn);
+    </GetAspNetPreCompileSourceVirtualPathDependsOn>
+  </PropertyGroup>
+
+  <Target Name="GetAspNetPreCompileSourceVirtualPath"
+          Condition ="'$(GetAspNetPreCompileSourceVirtualPath)' != 'false' And '$(_AspNetCompilerVirtualPath)' == '' And '$(UseMetabasePath)' != 'true'"
+          DependsOnTargets="$(GetAspNetPreCompileSourceVirtualPathDependsOn)">
+    <ItemGroup>
+      <__AspNetPreCompileSourceVirtualPathName Include ="DevelopmentServerVPath" />
+      <__AspNetPreCompileSourceVirtualPathValue />
+    </ItemGroup>
+    <GetProjectProperties ProjectFileFullPath="$(WebPublishPipelineWAPProjectSettings)"
+                          ProjectExtensionsProperties="@(__AspNetPreCompileSourceVirtualPathName)">
+      <Output TaskParameter="ResultProperties"  ItemName="__AspNetPreCompileSourceVirtualPathValue" />
+      <Output TaskParameter="UseIis"  PropertyName="__AspNetPreCompileSourceUseIis" />
+      <Output TaskParameter="IisUrl"  PropertyName="__AspNetPreCompileSourceIisUrl" />
+    </GetProjectProperties>
+
+    <PropertyGroup>
+      <_AspNetCompilerVirtualPath>%(__AspNetPreCompileSourceVirtualPathValue.Value)</_AspNetCompilerVirtualPath>
+      <_AspNetCompilerVirtualPath Condition="'$(_AspNetCompilerVirtualPath)' == '' ">\</_AspNetCompilerVirtualPath>
+    </PropertyGroup>
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!-- Target ConfigureForAspNetPreCompileMerge -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <ConfigureForAspNetPreCompileMergeDependsOn>
+      $(OnBeforeConfigureForAspNetPreCompileMerge);
+      $(ConfigureForAspNetPreCompileMergeDependsOn);
+      GetFrameworkPaths;
+      GetAspNetMergePath;
+      GetAspNetPreCompileSourceVirtualPath;
+      ResolveKeySource;
+    </ConfigureForAspNetPreCompileMergeDependsOn>
+  </PropertyGroup>
+
+  <Target Name="ConfigureForAspNetPreCompileMerge" DependsOnTargets="$(ConfigureForAspNetPreCompileMergeDependsOn)">
+
+    <PropertyGroup Condition="'$(_WDPFrameworkLowerThan4)' ==''">
+      <_WDPFrameworkLowerThan4>False</_WDPFrameworkLowerThan4>
+      <_WDPFrameworkLowerThan4 Condition="'$(TargetFrameworkVersion)' == 'v2.0' or '$(TargetFrameworkVersion)' == 'v3.0' or '$(TargetFrameworkVersion)' == 'v3.5'">True</_WDPFrameworkLowerThan4>
+    </PropertyGroup>
+
+    
+    <PropertyGroup Condition="'$(AspnetCompilerPath)'==''">
+      <AspnetCompilerPath >$(Framework40Dir)</AspnetCompilerPath>
+      <AspnetCompilerPath Condition=" '$(_WDPFrameworkLowerThan4)' == 'True' ">$(Framework20Dir)</AspnetCompilerPath>
+    </PropertyGroup>
+
+    <Error Condition="'$(AspnetCompilerPath)' == '' Or !Exists($(AspnetCompilerPath))"
+           Text="Can't find the valid AspnetCompilerPath" />
+
+    <PropertyGroup>
+      <_AspNetCompileMergeKeyFile Condition="'$(_AspNetCompileMergeKeyFile)' == ''">$(KeyOriginatorFile)</_AspNetCompileMergeKeyFile>
+    </PropertyGroup>
+
+    <PropertyGroup Condition="'$(UseMerge)' != true">
+      <_AspNetCompileMergeKeyContainer Condition="'$(_AspNetCompileMergeKeyContainer)' == ''">$(KeyContainerName)</_AspNetCompileMergeKeyContainer>
+    </PropertyGroup>
+    
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!-- Target AspNetPreCompile -->
+  <!--We can't use the in-place aspnet_compiler because it will output to the aspnet temp folder which is only suiteable to run on the current machine.-->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <AspNetPreCompileDependsOn >
+      $(OnBeforeAspNetPreCompile);
+      $(AspNetPreCompileDependsOn);
+      CopyAllFilesToSingleFolderForAspNetCompileMerge;
+      GetReferenceAssemblyPaths;
+      ResolveReferences;
+      ResolveKeySource;
+      ConfigureForAspNetPreCompileMerge;
+    </AspNetPreCompileDependsOn>
+  </PropertyGroup>
+
+  <Target Name="AspNetPreCompile" DependsOnTargets="$(AspNetPreCompileDependsOn)"  Condition="'$(AspNetPreCompile)' != 'false'">
+
+    <PropertyGroup  Condition="'$(UseMetabasePath)' == 'true'" >
+      <_PreAspnetCompileMergeSingleTargetFolderFullPath></_PreAspnetCompileMergeSingleTargetFolderFullPath>
+      <_AspNetCompilerVirtualPath></_AspNetCompilerVirtualPath>
+    </PropertyGroup>
+    <PropertyGroup  Condition="'$(UseMetabasePath)' != 'true'" >
+      <_PreAspnetCompileMergeSingleTargetFolderFullPath>$([System.IO.Path]::GetFullPath($(_PreAspnetCompileMergeSingleTargetFolder)))</_PreAspnetCompileMergeSingleTargetFolderFullPath>
+    </PropertyGroup>
+
+    <PropertyGroup>
+      <_PostAspnetCompileMergeSingleTargetFolderFullPath>$([System.IO.Path]::GetFullPath($(_PostAspnetCompileMergeSingleTargetFolder)))</_PostAspnetCompileMergeSingleTargetFolderFullPath>
+    </PropertyGroup>
+
+    <AspNetCompiler
+      PhysicalPath="$(_PreAspnetCompileMergeSingleTargetFolderFullPath)"
+      TargetPath="$(_PostAspnetCompileMergeSingleTargetFolderFullPath)"
+      VirtualPath="$(_AspNetCompilerVirtualPath)"
+      Force="$(_AspNetCompilerForce)"
+      Debug="$(DebugSymbols)"
+      Updateable="$(EnableUpdateable)"
+      KeyFile="$(_AspNetCompileMergeKeyFile)"
+      KeyContainer="$(_AspNetCompileMergeKeyContainer)"
+      DelaySign="$(DelaySign)"
+      AllowPartiallyTrustedCallers="$(AllowPartiallyTrustedCallers)"
+      FixedNames="$(_AspNetCompilerFixedNames)"
+      Clean="$(Clean)"
+      MetabasePath="$(_AspNetCompilerMetabasePath)"
+      ToolPath="$(AspnetCompilerPath)"
+        />
+
+    <!--
+        Removing APP_DATA is done here so that the output groups reflect the fact that App_data is
+        not present
+        -->
+    <RemoveDir Condition="'$(DeleteAppDataFolder)' == 'true' And Exists('$(_PostAspnetCompileMergeSingleTargetFolderFullPath)\App_Data')"
+               Directories="$(_PostAspnetCompileMergeSingleTargetFolderFullPath)\App_Data" />
+               
+
+    <CollectFilesinFolder Condition="'$(UseMerge)' != 'true'"
+      RootPath="$(_PostAspnetCompileMergeSingleTargetFolderFullPath)" >
+      <Output TaskParameter="Result" ItemName="_AspnetCompileMergePrecompiledOutputNoMetadata" />
+    </CollectFilesinFolder>
+
+    <ItemGroup Condition="'$(UseMerge)' != 'true'">
+      <FileWrites Include="$(_PostAspnetCompileMergeSingleTargetFolderFullPath)\**"/>
+    </ItemGroup>
+
+  </Target>
+
+
+  
+  <!--********************************************************************-->
+  <!-- Target AspNetMerge -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <AspNetMergeDependsOn >
+      $(OnBeforeAspNetMerge);
+      CopyAllFilesToSingleFolderForAspNetCompileMerge;
+      $(AspNetMergeDependsOn);
+      ConfigureForAspNetPreCompileMerge;
+      AspNetPreCompile;
+      GenerateAssemblyInfo;
+    </AspNetMergeDependsOn>
+  </PropertyGroup>
+
+  <Target Name="AspNetMerge" DependsOnTargets="$(AspNetMergeDependsOn)"  Condition="'$(AspNetMerge)' != 'false' And '$(UseMerge)' == 'true'">
+    <AspNetMerge
+     ExePath="$(AspnetMergePath)"
+     ApplicationPath="$(_PostAspnetCompileMergeSingleTargetFolderFullPath)"
+     KeyFile="$(_AspNetCompileMergeKeyFile)"
+     DelaySign="$(DelaySign)"
+     Prefix="$(AssemblyPrefixName)"
+     SingleAssemblyName="$(SingleAssemblyName)"
+     Debug="$(DebugSymbols)"
+     Nologo="$(NoLogo)"
+     ContentAssemblyName="$(ContentAssemblyName)"
+     ErrorStack="$(ErrorStack)"
+     RemoveCompiledFiles="$(DeleteAppCodeCompiledFiles)"
+     CopyAttributes="$(CopyAssemblyAttributes)"
+     AssemblyInfo="$(AssemblyInfoDll)"
+     MergeXmlDocs="$(MergeXmlDocs)"
+     ErrorLogFile="$(MergeErrorLogFile)"
+          />
+
+
+    <CollectFilesinFolder Condition="'$(UseMerge)' == 'true'"
+      RootPath="$(_PostAspnetCompileMergeSingleTargetFolderFullPath)" >
+      <Output TaskParameter="Result" ItemName="_AspnetCompileMergePrecompiledOutputNoMetadata" />
+    </CollectFilesinFolder>
+
+    <ItemGroup Condition="'$(UseMerge)' == 'true'">
+      <FileWrites Include="$(_PostAspnetCompileMergeSingleTargetFolderFullPath)\**"/>
+    </ItemGroup>
+
+
+  </Target>
+
+
+  <!--********************************************************************-->
+  <!--Target ConfigureFoldersForAspNetCompileMerge -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <ConfigureFoldersForAspNetCompileMergeDependsOn>
+      $(OnBeforeConfigureFoldersForAspNetCompileMerge);
+      $(ConfigureFoldersForAspNetCompileMergeDependsOn);
+    </ConfigureFoldersForAspNetCompileMergeDependsOn>
+  </PropertyGroup>
+
+  <Target Name="ConfigureFoldersForAspNetCompileMerge"
+          Outputs="@(FilesForPackagingFromProject)"
+          DependsOnTargets="$(ConfigureFoldersForAspNetCompileMergeDependsOn)">
+    <!--This is a phase separation point-->
+
+
+    <!--
+    <CopyBeforeAspnetCompileMergeTargetPath  Condition="'$(CopyBeforeAspnetCompileMergeTargetPath)' == ''">$(AspnetCompileMergeIntermediateOutputPath)\Source</CopyBeforeAspnetCompileMergeTargetPath>
+    <AspnetCompileMerge_TempBuildDir Condition="'$(AspnetCompileMerge_TempBuildDir)' == ''" >$(AspnetCompileMergeIntermediateOutputPath)\TempBuildDir</AspnetCompileMerge_TempBuildDir>
+    -->
+    <PropertyGroup>
+      <_PreAspnetCompileMergeSingleTargetFolder>$(CopyBeforeAspnetCompileMergeTargetPath)</_PreAspnetCompileMergeSingleTargetFolder>
+      <_PostAspnetCompileMergeSingleTargetFolder>$(AspnetCompileMerge_TempBuildDir)</_PostAspnetCompileMergeSingleTargetFolder>
+    </PropertyGroup>
+
+    <CallTarget Targets="$(OnAfterConfigureFoldersForAspNetCompileMerge)" RunEachTargetSeparately="False" />
+  </Target>
+
+
+
+  <!--********************************************************************    -->
+  <!-- CopyAllFilesToSingleFolderForAspNetCompileMerge  Task                             -->
+  <!-- This will materialize all the in-memory files list which is not marked -->
+  <!-- as excluded from packaging into the AspNetCompileMerge temp folder.               -->
+  <!--ToDo: remove the condition on ContentPath AspNetCompileMerge (we are doing it now because IIS team is not support it yet-->
+  <!-- ********************************************************************   -->
+  <PropertyGroup>
+    <CopyAllFilesToSingleFolderForAspNetCompileMergeDependsOn>
+      $(OnBeforeCopyAllFilesToSingleFolderForAspNetCompileMerge);
+      ConfigureFoldersForAspNetCompileMerge;
+      $(CopyAllFilesToSingleFolderForAspNetCompileMergeDependsOn);
+    </CopyAllFilesToSingleFolderForAspNetCompileMergeDependsOn>
+  </PropertyGroup>
+  <Target Name="CopyAllFilesToSingleFolderForAspNetCompileMerge"
+          DependsOnTargets="$(CopyAllFilesToSingleFolderForAspNetCompileMergeDependsOn)"
+          Condition="'$(UseMetabasePath)' != 'true'">
+
+    <!-- In the case of the incremental Packaging/Publish, we need to find out the extra file and delete them-->
+    <ItemGroup>
+      <_AllExtraFilesUnder_PreAspnetCompileMergeSingleTargetFolder Include="$(_PreAspnetCompileMergeSingleTargetFolder)\**" />
+      <_AllExtraFilesUnder_PreAspnetCompileMergeSingleTargetFolder
+        Remove="@(FilesForPackagingFromProject->'$(_PreAspnetCompileMergeSingleTargetFolder)\%(DestinationRelativePath)')" />
+    </ItemGroup>
+    <!--Remove all extra files in the temp folder that's not in the @(FilesForPackagingFromProject-->
+    <Delete Files="@(_AllExtraFilesUnder_PreAspnetCompileMergeSingleTargetFolder)" />
+
+    <!-- Make sure the folder exist -->
+    <MakeDir Directories="$(_PreAspnetCompileMergeSingleTargetFolder)" Condition="!Exists('$(_PreAspnetCompileMergeSingleTargetFolder)')"/>
+
+    <!--Get Localized string before displaying message-->
+    <GetPublishingLocalizedString
+       Importance="High"
+       ID="PublishLocalizedString_WebPublishPipelineMaterializeAllFilesToTempDir"
+       ArgumentCount="1"
+       Arguments="$(_PreAspnetCompileMergeSingleTargetFolder)"
+       LogType="Message" />
+
+    <!--Force Copy Of all file to the $(_PreAspnetCompileMergeSingleTargetFolder) if needed-->
+    <CopyPipelineFiles PipelineItems="@(FilesForPackagingFromProject)"
+                           SourceDirectory="$(WebPublishPipelineProjectDirectory)"
+                           TargetDirectory="$(_PreAspnetCompileMergeSingleTargetFolder)"
+                           SkipMetadataExcludeTrueItems="True"
+                           UpdateItemSpec="True"
+                           DeleteItemsMarkAsExcludeTrue ="True">
+      <Output TaskParameter="ResultPipelineItems" ItemName="_Files_PreAspnetCompileMergeSingleTargetFolder"/>
+    </CopyPipelineFiles>
+
+    <!--Workaround the MSBuild 2.0 limitation-->
+    <ItemGroup>
+      <FilesForPackagingFromProject Remove="@(FilesForPackagingFromProject)" />
+      <FilesForPackagingFromProject Include="@(_Files_PreAspnetCompileMergeSingleTargetFolder)" />
+    </ItemGroup>
+
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert)"
+                      Encoding="utf-8"
+                      File="$(IntermediateOutputPath)\FilesForPackagingFromProjectInPreAspNetComopileMergeCopied.txt"
+                      Lines="@(FilesForPackagingFromProject->'
+                      Files:%(Identity) 
+                      FromTarget:%(FromTarget)
+                      DestinationRelativePath:%(DestinationRelativePath)')"
+                      Overwrite="True" />
+
+
+    <!--Remove all Empty folder that's left. Since it is not critical, we only log warning if we failed to delete empty folder.-->
+    <RemoveEmptyDirectories Directories="$(_PreAspnetCompileMergeSingleTargetFolder)"  LogErrorAsWarning="True" />
+    <MakeDir Directories="$(_PreAspnetCompileMergeSingleTargetFolder)" Condition="!Exists('$(_PreAspnetCompileMergeSingleTargetFolder)')"/>
+
+    <CallTarget Targets="$(OnAfterCopyAllFilesToSingleFolderForAspNetCompileMerge)" RunEachTargetSeparately="False" />
+  </Target>
+
+
+
+  <!--********************************************************************-->
+  <!--Target PostAspNetCompileMergeCollectFiles -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <PostAspNetCompileMergeCollectFilesDependsOn>
+      $(OnBeforePostAspNetCompileMergeCollectFiles);
+      $(PostAspNetCompileMergeCollectFilesDependsOn);
+      AspNetMerge;
+    </PostAspNetCompileMergeCollectFilesDependsOn>
+  </PropertyGroup>
+
+  <Target Name="PostAspNetCompileMergeCollectFiles"
+          Outputs="@(FilesForPackagingFromProject)"
+          DependsOnTargets="$(PostAspNetCompileMergeCollectFilesDependsOn)">
+
+    <!--need to consolate the @(FilesForPackagingFromProject) and @(_AspnetCompileMergePrecompiledOutput)-->
+
+    <ItemGroup>
+      <_AspnetCompileMergePrecompiledOutput Include="@(_AspnetCompileMergePrecompiledOutputNoMetadata->'$(_PostAspnetCompileMergeSingleTargetFolder)\%(Identity)')">
+        <DestinationRelativePath>%(_AspnetCompileMergePrecompiledOutputNoMetadata.Identity)</DestinationRelativePath>
+      </_AspnetCompileMergePrecompiledOutput>
+    </ItemGroup>
+
+
+    <!--This exclude if the filter item's DestinationRelativePath is specified.  
+        This is useful for case like Reference Dll and pdb where the source is not under the current project.-->
+    <FilterByItems PipelineItems="@(FilesForPackagingFromProject)"
+                       SourceMetadataName="DestinationRelativePath"
+                       FilterRootFolder="$(_PostAspnetCompileMergeSingleTargetFolderFullPath)"
+                       FilterBaseOnRelativePath="True"
+                       FilterMetadataName="DestinationRelativePath"
+                       Filter="@(_AspnetCompileMergePrecompiledOutput)">
+      <Output TaskParameter="InFilter" ItemName="_FilesForPackagingFromProject_in_AspnetCompileMergePrecompiledOutput"/>
+    </FilterByItems>
+
+    <!--Keep the Item meta from the original @(FilesForPackagingFromProject)-->
+    <ItemGroup>
+      <_AspnetCompileMergePrecompiledOutput Remove="@(_FilesForPackagingFromProject_in_AspnetCompileMergePrecompiledOutput->'%(FilterItemSpec)')" />
+      <_AspnetCompileMergePrecompiledOutput Include="@(_FilesForPackagingFromProject_in_AspnetCompileMergePrecompiledOutput->'%(FilterItemSpec)')" />
+    </ItemGroup>
+
+    <!--Workaround the MSBuild 2.0 limitation-->
+    <ItemGroup>
+      <FilesForPackagingFromProject Remove="@(FilesForPackagingFromProject)" />
+      <FilesForPackagingFromProject Include="@(_AspnetCompileMergePrecompiledOutput)" />
+    </ItemGroup>
+
+
+
+    <WriteLinesToFile Condition="$(EnablePackageProcessLoggingAndAssert)"
+                      Encoding="utf-8"
+                      File="$(IntermediateOutputPath)\FilesForPackagingFromPostAspNetCompileMergeCollectFiles.txt"
+                      Lines="@(FilesForPackagingFromProject->'
+                      Files:%(Identity) 
+                      FromTarget:%(FromTarget)
+                      DestinationRelativePath:%(DestinationRelativePath)')"
+                      Overwrite="True" />
+
+    <CallTarget Targets="$(OnAfterPostAspNetCompileMergeCollectFiles)" RunEachTargetSeparately="False" />
+  </Target>
+
+
+
+  <!--********************************************************************-->
+  <!--Target CleanPostAspNetCompileMergeFolder -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <CleanPostAspNetCompileMergeFolderDependsOn>
+      $(OnBeforeCleanPostAspNetCompileMergeFolder);
+      $(CleanPostAspNetCompileMergeFolderDependsOn);
+      ConfigureFoldersForAspNetCompileMerge;
+    </CleanPostAspNetCompileMergeFolderDependsOn>
+  </PropertyGroup>
+
+  <Target Name="CleanPostAspNetCompileMergeFolder"
+          Outputs="@(FilesForPackagingFromProject)"
+          DependsOnTargets="$(CleanPostAspNetCompileMergeFolderDependsOn)">
+
+    <RemoveDir Condition="'$(_PostAspnetCompileMergeSingleTargetFolder)' != '' And Exists($(_PostAspnetCompileMergeSingleTargetFolder))"
+               Directories="$(_PostAspnetCompileMergeSingleTargetFolder)" />
+
+    <CallTarget Targets="$(OnAfterCleanPostAspNetCompileMergeFolder)" RunEachTargetSeparately="False" />
+  </Target>
+
+  <!--********************************************************************-->
+  <!--Target PipelineAspNetCompileMergePhase -->
+  <!--********************************************************************-->
+  <PropertyGroup>
+    <PipelineAspNetCompileMergePhaseDependsOn>
+      $(OnBeforePipelineAspNetCompileMergePhase);
+      $(PipelineAspNetCompileMergePhaseDependsOn);
+      CleanPostAspNetCompileMergeFolder;
+      CopyAllFilesToSingleFolderForAspNetCompileMerge;
+      AspNetPreCompile;
+      AspNetMerge;
+      PostAspNetCompileMergeCollectFiles;
+    </PipelineAspNetCompileMergePhaseDependsOn>
+    <PipelineAspNetCompileMergePhaseAfterTargets Condition="'$(PipelineAspNetCompileMergePhaseAfterTargets)' == '' ">
+      PipelineTransformPhase;
+    </PipelineAspNetCompileMergePhaseAfterTargets>
+  </PropertyGroup>
+
+  <Target Name="PipelineAspNetCompileMergePhase"
+          Outputs="@(FilesForPackagingFromProject)"
+          DependsOnTargets="$(PipelineAspNetCompileMergePhaseDependsOn)"
+          AfterTargets="$(PipelineAspNetCompileMergePhaseAfterTargets)">
+    <!--This is a phase separation point-->
+
+    <!--Get Localized string before displaying message-->
+    <GetPublishingLocalizedString
+       ID="PublishLocalizedString_WebPublishPipelinePhase"
+      ArgumentCount="1"
+      Arguments="AspnetCompileMerge"
+       LogType="Message" />
+    <!--<Message Text="Pipeline AspNetCompileMerge Phase" />-->
+
+    <CallTarget Targets="$(OnAfterPipelineAspNetCompileMergePhase)" RunEachTargetSeparately="False" />
+  </Target>
+
+  
+  <!--ImportAfter Extension-->
+  <PropertyGroup>
+    <ImportByWildcardAfterMicrosoftWebPublishingTransformTargets Condition="'$(ImportByWildcardAfterMicrosoftWebPublishingTransformTargets)'==''">true</ImportByWildcardAfterMicrosoftWebPublishingTransformTargets>
+  </PropertyGroup>
+  <Import Project="$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportAfter\*" Condition="'$(ImportByWildcardAfterMicrosoftWebPublishingTransformTargets)' == 'true' and exists('$(MSBuildThisFileDirectory)\$(MSBuildThisFileName)\ImportAfter')"/>
+</Project>

BIN
servicestack/lib/VisualStudio.MsBuild.11.0/WebApplications/Microsoft.WebApplication.Build.Tasks.Dll


+ 389 - 0
servicestack/lib/VisualStudio.MsBuild.11.0/WebApplications/Microsoft.WebApplication.targets

@@ -0,0 +1,389 @@
+<!--
+***********************************************************************************************
+Microsoft.WebApplication.targets
+
+WARNING:  DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
+          created a backup copy.  Incorrect changes to this file will make it
+          impossible to load or build your web deploy projects from the command-line or the IDE.
+
+This file defines the steps in the standard build process for web application projects.
+
+Copyright (C) Microsoft Corporation. All rights reserved.
+***********************************************************************************************
+-->
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <UsingTask TaskName="Microsoft.WebApplication.Build.Tasks.GetSilverlightItemsFromProperty"  AssemblyFile="Microsoft.WebApplication.Build.Tasks.dll" />
+  <UsingTask TaskName="Microsoft.WebApplication.Build.Tasks.CopyFilesToFolders"  AssemblyFile="Microsoft.WebApplication.Build.Tasks.dll" />
+
+  <PropertyGroup>
+    <IsDesktopBuild Condition="'$(IsDesktopBuild)'=='' And '$(TeamFoundationServerUrl)' != ''">False</IsDesktopBuild>
+    <WebProjectOutputDirInsideProjectDefault>True</WebProjectOutputDirInsideProjectDefault>
+    <WebProjectOutputDirInsideProjectDefault  Condition="('$(OutDir)' != '$(OutputPath)') Or ('$(IsDesktopBuild)' == 'False')" >False</WebProjectOutputDirInsideProjectDefault>
+    <WebProjectOutputDirInsideProject Condition="'$(WebProjectOutputDirInsideProject)' == ''">$(WebProjectOutputDirInsideProjectDefault)</WebProjectOutputDirInsideProject>
+    <DisableLinkInCopyWebApplicaton Condition="'$(DisableLinkInCopyWebApplicaton)'==''">False</DisableLinkInCopyWebApplicaton>
+    <Disable_CopyWebApplication Condition="'$(Disable_CopyWebApplication)' == ''">False</Disable_CopyWebApplication>
+    <UseWPP_CopyWebApplication Condition="'$(UseWPP_CopyWebApplication)' == ''">False</UseWPP_CopyWebApplication>
+    <CleanWebProjectOutputDir>True</CleanWebProjectOutputDir>
+    <CleanWebProjectOutputDir Condition="$(WebProjectOutputDirInsideProject)" >False</CleanWebProjectOutputDir>
+  </PropertyGroup>
+
+  <!--Only setup $(WebProjectOutputDir) iff user haven't set it up-->
+  <PropertyGroup Condition="'$(WebProjectOutputDir)'==''">
+    <WebProjectOutputDir>$(MSBuildProjectDirectory)</WebProjectOutputDir>
+    <WebProjectOutputDir Condition="!$(WebProjectOutputDirInsideProject)">$(OutDir)_PublishedWebsites\$(MSBuildProjectName)</WebProjectOutputDir>
+  </PropertyGroup>
+
+  <PropertyGroup>
+    <PrepareForRunDependsOn>
+      $(PrepareForRunDependsOn);
+      CopySilverlightApplications;
+      _CopyBinDeployableAssemblies;
+    </PrepareForRunDependsOn>
+    <PrepareForRunDependsOn Condition="!$(Disable_CopyWebApplication)">
+      $(PrepareForRunDependsOn);
+      _CopyWebApplication;
+      _BuiltWebOutputGroupOutput
+    </PrepareForRunDependsOn>
+  </PropertyGroup>
+
+  <!--***************************************************************-->
+  <!--Global setting for Clean target -->
+  <!--***************************************************************-->
+  <PropertyGroup>
+    <CleanDependsOn>
+      $(CleanDependsOn);
+      CleanWebProjectOutputDir;
+    </CleanDependsOn>
+  </PropertyGroup>
+
+  <!--********************************************************************-->
+  <!-- CleanWebProjectOutputDir  -->
+  <!-- ********************************************************************-->
+  <PropertyGroup>
+    <CleanWebProjectOutputDirDependsOn Condition="'$(CleanWebProjectOutputDirDependsOn)' == ''">
+    </CleanWebProjectOutputDirDependsOn>
+  </PropertyGroup>
+  <Target Name="CleanWebProjectOutputDir"
+          Condition="$(CleanWebProjectOutputDir)"
+          DependsOnTargets="$(CleanWebProjectOutputDirDependsOn)">
+    <!--Assertion check-->
+    <!--In the case of Clean Packaging/Publish, we simply delete the WebProjectOutputDir-->
+    <RemoveDir Condition="Exists($(WebProjectOutputDir))" Directories="$(WebProjectOutputDir)" ContinueOnError="true" />
+  </Target>
+
+  <!--
+	============================================================
+	_CopyWebApplication
+
+	This target will copy the build outputs along with the 
+	content files into a _PublishedWebsites folder.
+	
+	This Task is only necessary when $(OutDir) has been redirected
+	to a folder other than ~\bin such as is the case with Team Build.
+  
+  The original _CopyWebApplication is now a Legacy, you can still use it by setting $(UseWPP_CopyWebApplication) to true.
+  By default, it now change to use _WPPCopyWebApplication target in Microsoft.Web.Publish.targets.   It allow to leverage the web.config trsnaformation.
+	============================================================
+	-->
+
+  <PropertyGroup>
+    <!--This will be overwrite by ..\web\Microsoft.Web.Publishing.targets when $(UseWPP_CopyWebApplication) set to true-->
+   <OnBefore_CopyWebApplicationDefault>
+     _CopyWebApplicationLegacy;
+   </OnBefore_CopyWebApplicationDefault>
+    <OnBefore_CopyWebApplicationDefault Condition="$(UseWPP_CopyWebApplication) AND Exists('$(MSBuildThisFileDirectory)\..\Web\Microsoft.Web.Publishing.targets')">
+     _WPPCopyWebApplication;
+   </OnBefore_CopyWebApplicationDefault>
+   <OnBefore_CopyWebApplication Condition="'$(OnBefore_CopyWebApplication)'==''">
+    $(OnBefore_CopyWebApplicationDefault);
+  </OnBefore_CopyWebApplication>
+    
+  <OnAfter_CopyWebApplication Condition="'$(OnAfter_CopyWebApplication)'==''">
+  </OnAfter_CopyWebApplication>
+
+  <_CopyWebApplicationDependsOn Condition="'$(_CopyWebApplicationDependsOn)'==''">
+    $(OnBefore_CopyWebApplication);
+  </_CopyWebApplicationDependsOn>
+
+  </PropertyGroup>
+  <Target Name="_CopyWebApplication" 
+          Condition="!$(Disable_CopyWebApplication) And '$(OutDir)' != '$(OutputPath)'" 
+          DependsOnTargets="$(_CopyWebApplicationDependsOn)">
+
+    <CallTarget Condition="'$(OnAfter_CopyWebApplication)' != ''" Targets="$(OnAfter_CopyWebApplication)" RunEachTargetSeparately="true" />
+    
+  </Target>
+  
+  <!--
+	============================================================
+	_CopyWebApplicationLegacy
+
+	This target will copy the build outputs along with the 
+	content files into a _PublishedWebsites folder.
+	
+	This Task is only necessary when $(OutDir) has been redirected
+	to a folder other than ~\bin such as is the case with Team Build.
+	============================================================
+	-->
+  <Target Name="_CopyWebApplicationLegacy" Condition="!$(Disable_CopyWebApplication) And '$(OutDir)' != '$(OutputPath)'" >
+    <!-- Log tasks -->
+    <Message Text="Copying Web Application Project Files for $(MSBuildProjectName)" />
+
+    <!-- Create the _PublishedWebsites\app\bin folder -->
+    <MakeDir Directories="$(WebProjectOutputDir)\bin" />
+
+    <!-- Copy build outputs to _PublishedWebsites\app\bin folder -->
+    <Copy SourceFiles="@(IntermediateAssembly)" DestinationFolder="$(WebProjectOutputDir)\bin" 
+          SkipUnchangedFiles="true"
+          Retries="$(CopyRetryCount)"
+          RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
+    <Copy SourceFiles="@(AddModules)" 
+          DestinationFolder="$(WebProjectOutputDir)\bin" 
+          SkipUnchangedFiles="true"
+          Retries="$(CopyRetryCount)"
+          RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
+    <Copy SourceFiles="$(IntermediateOutputPath)$(_SGenDllName)" 
+          DestinationFolder="$(WebProjectOutputDir)\%(Content.SubFolder)%(Content.RecursiveDir)" 
+          SkipUnchangedFiles="true" 
+          Condition="'$(_SGenDllCreated)'=='true'"
+          Retries="$(CopyRetryCount)"
+          RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
+    <Copy SourceFiles="$(IntermediateOutputPath)$(TargetName).pdb" 
+          DestinationFolder="$(WebProjectOutputDir)\bin" 
+          SkipUnchangedFiles="true" 
+          Condition="'$(_DebugSymbolsProduced)'=='true'" 
+          Retries="$(CopyRetryCount)"
+          RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
+    <Copy SourceFiles="@(DocFileItem)" 
+          DestinationFolder="$(WebProjectOutputDir)\bin" 
+          SkipUnchangedFiles="true" 
+          Condition="'$(_DocumentationFileProduced)'=='true'"
+          Retries="$(CopyRetryCount)"
+          RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
+    <Copy SourceFiles="@(IntermediateSatelliteAssembliesWithTargetPath)" 
+          DestinationFiles="@(IntermediateSatelliteAssembliesWithTargetPath->'$(WebProjectOutputDir)\bin\%(Culture)\$(TargetName).resources.dll')" 
+          SkipUnchangedFiles="true" 
+          Retries="$(CopyRetryCount)"
+          RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
+    <Copy SourceFiles="@(ReferenceComWrappersToCopyLocal); @(ResolvedIsolatedComModules); @(_DeploymentLooseManifestFile); @(NativeReferenceFile)" 
+          DestinationFolder="$(WebProjectOutputDir)\bin" 
+          SkipUnchangedFiles="true" 
+          Retries="$(CopyRetryCount)"
+          RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
+
+    <!-- copy any referenced assemblies to _PublishedWebsites\app\bin folder -->
+    <Copy SourceFiles="@(ReferenceCopyLocalPaths)"
+          DestinationFiles="@(ReferenceCopyLocalPaths->'$(WebProjectOutputDir)\bin\%(DestinationSubDirectory)%(Filename)%(Extension)')" 
+          SkipUnchangedFiles="true" 
+          Retries="$(CopyRetryCount)"
+          RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
+
+    <!-- Copy content files recursively to _PublishedWebsites\app\ folder -->
+    <Copy SourceFiles="@(Content)" Condition="'%(Content.Link)' == ''"
+          DestinationFolder="$(WebProjectOutputDir)\%(Content.RelativeDir)" 
+          SkipUnchangedFiles="true" 
+          Retries="$(CopyRetryCount)"
+          RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" />
+    <Copy SourceFiles="@(Content)" Condition="!$(DisableLinkInCopyWebApplicaton) And '%(Content.Link)' != ''"
+          DestinationFiles="$(WebProjectOutputDir)\%(Content.Link)"
+          SkipUnchangedFiles="true"
+          Retries="$(CopyRetryCount)"
+          RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
+
+    <!-- Copy items that have been marked to be copied to the bin folder -->
+    <Copy SourceFiles="@(_SourceItemsToCopyToOutputDirectory)" 
+          DestinationFolder="$(WebProjectOutputDir)\bin" 
+          SkipUnchangedFiles="true" 
+          Retries="$(CopyRetryCount)"
+          RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
+    <Copy SourceFiles="@(_SourceItemsToCopyToOutputDirectoryAlways)" 
+          DestinationFolder="$(WebProjectOutputDir)\bin" 
+          SkipUnchangedFiles="false" 
+          Retries="$(CopyRetryCount)"
+          RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
+
+    <!-- Copy Silverlight Zip and Xzp file to _PublishedWebsites\app\ folder-->
+    <Copy SourceFiles="@(_WebApplicationSilverlightXapFiles)"
+          DestinationFolder="$(WebProjectOutputDir)\%(_WebApplicationSilverlightXapFiles.RelativeDir)" 
+          SkipUnchangedFiles="true"
+          Retries="$(CopyRetryCount)"
+          RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
+
+    <!-- Copy items that need to be bin deployed to the bin folder -->
+    <Copy SourceFiles="@(_binDeployableAssemblies)" 
+          DestinationFolder="$(WebProjectOutputDir)\bin\%(_binDeployableAssemblies.DestinationRelPath)" 
+          SkipUnchangedFiles="true" 
+          Retries="$(CopyRetryCount)"
+          RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
+
+  </Target>
+
+  <!--
+	============================================================
+	_BuiltWebOutputGroupOutput
+
+	This target creates and populates BuiltWebOutputGroupOutput
+	with contents of bin along with the @(Content) files
+	============================================================
+	-->
+  <Target Name ="_BuiltWebOutputGroupOutput"
+          Condition="!$(Disable_CopyWebApplication)"
+          Outputs="@(BuiltWebOutputGroupOutput)">
+    <CreateItem Include="$(WebProjectOutputDir)\bin\**\*.*;@(Content->'%(FullPath)')" Condition="'$(OutDir)' == '$(OutputPath)'">
+      <Output ItemName="BuiltWebOutputGroupOutput" TaskParameter="Include"/>
+    </CreateItem>
+
+    <CreateItem Include="$(WebProjectOutputDir)\**\*.*" Condition="'$(OutDir)' != '$(OutputPath)'">
+      <Output ItemName="BuiltWebOutputGroupOutput" TaskParameter="Include"/>
+    </CreateItem>
+  </Target>
+
+  <!--
+    ============================================================
+    _GetSilverlightApplications
+
+    Converts the list of Silverlight Applications that are defined
+    in the property $(SilverlightApplicationList) to ITaskItems that
+    can be used by teh CopySilverlightApplication task
+    The format of $(SilverlightApplicationList) is: 
+      {projGuid}|relPath|tgtFolder;{projGuid2}|relPathToProject2|tgtFolder2;...
+    ============================================================
+    -->
+  <Target
+    Name="_GetSilverlightApplications"
+    Condition="'$(SilverlightApplicationList)' != ''">
+
+    <GetSilverlightItemsFromProperty
+        SilverlightReferences="$(SilverlightApplicationList)"
+        ProjectPath="$(MSBuildProjectFullPath)">
+
+      <Output TaskParameter="SilverlightApplications" ItemName="_AllSilverlightApplications"/>
+    </GetSilverlightItemsFromProperty>
+
+    <!-- Break the silverlight application list into two lists: those that exist on disk and those that don't. -->
+    <ItemGroup>
+      <_SilverlightApplications Include="@(_AllSilverlightApplications)" Condition="Exists('%(Identity)')"/>
+      <_SilverlightApplicationsNotExist Include="@(_AllSilverlightApplications)" Condition="!Exists('%(Identity)')"/>
+    </ItemGroup>
+
+  </Target>
+
+  <!--
+	============================================================
+	CopySilverlightApplications
+
+	This target copies the output xap files from referenced
+	Silverlight application projects to the target folder.
+	============================================================
+	-->
+  <Target
+      Name="CopySilverlightApplications"
+      DependsOnTargets="_GetSilverlightApplications"
+      Outputs="@(_WebApplicationSilverlightXapFiles)"
+      Condition="'$(BuildingInsideVisualStudio)' != 'true'">
+
+    <!--
+        When building this project from the IDE or when building a .SLN from the command-line,
+        just gather the referenced build outputs (Xap files).  The code that builds the .SLN will already have
+        built the project, so there's no need to do it again here. Since Silverlight only supports AnyCPU that is
+        what we use for the platform
+
+        The ContinueOnError setting is here so that, during project load, as
+        much information as possible will be passed to the compilers.
+        -->
+        <MSBuild
+            Projects="@(_SilverlightApplications)"
+            Targets="GetXapOutputFile"
+            BuildInParallel= "false"
+            Properties="%(_MSBuildProjectReferenceExistent.SetConfiguration);Platform=AnyCPU;BuildingSolutionFile=false"
+            Condition="'@(_SilverlightApplications)' != ''"
+            ContinueOnError="!$(BuildingProject)">
+
+      <Output TaskParameter="TargetOutputs" ItemName="_SilverlightXapFiles"/>
+
+    </MSBuild>
+
+    <!--
+        Build referenced projects when building from the command line.
+
+        The $(ProjectReferenceBuildTargets) will normally be blank so that the project's default
+        target is used during a P2P reference. However if a custom build process requires that
+        the referenced project has a different target to build it can be specified.
+        -->
+    <MSBuild
+        Projects="@(_SilverlightApplications)"
+        Targets="$(ProjectReferenceBuildTargets)"
+        Properties="%(_MSBuildProjectReferenceExistent.SetConfiguration);Platform=AnyCPU;BuildingSolutionFile=false"
+        BuildInParallel="false"
+        Condition="'$(BuildingInsideVisualStudio)' != 'true' and '@(_SilverlightApplications)' != ''">
+    </MSBuild>
+
+    <!--Copy the outputs to the target folder-->
+    <CopyFilesToFolders SourceFiles="@(_SilverlightXapFiles)" 
+                        SilverlightApplications="@(_SilverlightApplications)" 
+                        ConfigName="$(Configuration)"  
+                        Condition="'@(_SilverlightXapFiles)' != ''">
+      <Output TaskParameter="DestinationFiles" ItemName="_WebApplicationSilverlightXapFiles" />      
+    </CopyFilesToFolders>
+
+    <!-- Issue a warning for each non-existent project. -->
+    <Warning
+        Text="The referenced Silverlight project '%(_SilverlightApplicationsNotExist.Identity)' does not exist."
+        Condition="'@(_SilverlightApplicationsNotExist)'!=''"/>
+  </Target>
+
+  <!--
+	============================================================
+	_CopyBinDeployableAssemblies
+
+	This target copies the contents of ProjectDir\_bin_deployableAssemblies to the bin
+	folder, preserving the relative paths
+	============================================================
+	-->
+  <Target
+      Name="_CopyBinDeployableAssemblies"
+      Condition="Exists('$(MSBuildProjectDirectory)\_bin_deployableAssemblies')">
+
+    <PropertyGroup>
+      <BinDeployableFolder Condition="'$(BinDeployableFolder)' == ''">_bin_deployableAssemblies\</BinDeployableFolder>
+      <BinDeployableFolderFullPath>$([System.IO.Path]::GetFullPath($(BinDeployableFolder)))</BinDeployableFolderFullPath>
+    </PropertyGroup>
+
+    <!--Pick up the deployable items from the $(None) collection that are under the _bin_deployableAssemblies folder -->
+    <CreateItem Include="@(None->'%(Identity)')" Condition="'%(None.FullPath)' != '' And  $([System.String]::new('%(None.FullPath)').StartsWith($(BinDeployableFolderFullPath), StringComparison.OrdinalIgnoreCase ))" >
+      <Output ItemName="__binDeployableAssemblies" TaskParameter="Include"/>
+    </CreateItem>
+
+    <!--Add metadata which holds the destination relative folder to copy them to-->
+    <ItemGroup>
+      <_binDeployableAssemblies Include ="@(__binDeployableAssemblies)" Condition="'@(__binDeployableAssemblies)' != ''">
+        <DestinationRelPath>$([System.String]::Concat($([System.IO.Path]::GetDirectoryName($([System.String]::new('%(__binDeployableAssemblies.FullPath)')))),'\').SubString($(BinDeployableFolderFullPath.Length)))</DestinationRelPath>
+      </_binDeployableAssemblies>
+    </ItemGroup>
+
+    <!-- Do the copy-->
+    <Copy SourceFiles="@(_binDeployableAssemblies)" DestinationFolder="$(OutDir)%(_binDeployableAssemblies.DestinationRelPath)"
+          SkipUnchangedFiles="true"
+          Retries="$(CopyRetryCount)"
+          RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
+
+    <!--Add the items just copied to the collection of items to delete when doing a clean-->
+    <ItemGroup>
+      <FileWrites Include ="@(_binDeployableAssemblies->'$(OutDir)%(DestinationRelPath)%(Filename)%(Extension)')" />
+    </ItemGroup>
+ </Target>
+
+  <!--Import publishing target-->
+  <Import Project="..\Web\Microsoft.Web.Publishing.targets" Condition="Exists('..\Web\Microsoft.Web.Publishing.targets')" />
+
+
+  <!--Ensure the Siliverlight zap file is created and copied to the bin folder for the Microsoft.Web.Publishing.targets-->
+  <PropertyGroup>
+    <OnBeforePipelineCollectFilesPhase>
+      $(OnBeforePipelineCollectFilesPhase);
+      CopySilverlightApplications;
+    </OnBeforePipelineCollectFilesPhase>
+  </PropertyGroup>
+
+
+</Project>

+ 4 - 0
servicestack/lib/repositories.config

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<repositories>
+  <repository path="..\src\packages.config" />
+</repositories>

+ 26 - 0
servicestack/nginx.conf

@@ -0,0 +1,26 @@
+# worker_processes n;
+pid /tmp/nginx.pid;
+error_log /dev/null crit;
+
+events {
+    worker_connections 8192;
+}
+
+http {
+    access_log off;
+
+    #upstream mono {
+    #    server 127.0.0.1:9001;
+    #}
+    include nginx.upstream.conf;
+
+    server {
+        listen 8080;
+
+        location / {
+            fastcgi_pass mono;
+            include /usr/local/nginx/conf/fastcgi_params;
+            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
+        }
+    }
+}

+ 19 - 0
servicestack/setup_iis.ps1

@@ -0,0 +1,19 @@
+param($action)
+
+$wwwroot = "C:\FrameworkBenchmarks\servicestack\www"
+$source = "C:\FrameworkBenchmarks\servicestack\src"
+
+# Stop
+if (Get-WebSite -Name Benchmarks) { Remove-WebSite -Name Benchmarks }
+Get-ChildItem -Path $wwwroot -Recurse -ErrorAction 'SilentlyContinue' | Remove-Item -Force -Recurse -ErrorAction 'SilentlyContinue'; 
+Remove-Item -Force -Recurse $wwwroot -ErrorAction 'SilentlyContinue'
+
+if ($action -eq 'start') {
+    # Create a website in IIS
+    New-Item -Path $wwwroot -Type directory | Out-Null
+    New-WebSite -Name Benchmarks -Port 8080 -PhysicalPath $wwwroot
+    
+    # Build the project
+    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe "$source\ServiceStackBenchmark.csproj" /p:Configuration=Release /p:Platform="x64" /t:Clean
+    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe "$source\ServiceStackBenchmark.csproj" /p:Configuration=Release /p:Platform="x64" /p:DeployOnBuild=true /p:PublishProfile=IIS
+}

+ 22 - 0
servicestack/setup_iis.py

@@ -0,0 +1,22 @@
+import subprocess
+import sys
+import setup_util
+import os
+
+def start(args):
+  if os.name != 'nt':
+    return 1
+  
+  try:
+    setup_util.replace_text("servicestack/src/Web.config", "localhost", args.database_host)
+    subprocess.check_call("powershell -File setup_iis.ps1 start", cwd="servicestack")
+    return 0
+  except subprocess.CalledProcessError:
+    return 1
+
+def stop():
+  if os.name != 'nt':
+    return 0
+  
+  subprocess.Popen("powershell -File setup_iis.ps1 stop", cwd="servicestack")
+  return 0

+ 39 - 0
servicestack/setup_nginx.py

@@ -0,0 +1,39 @@
+import subprocess
+import sys
+import setup_util
+import os
+
+root = os.getcwd() + "/servicestack"
+app = root + "/src"
+
+def start(args):
+  if os.name == 'nt':
+    return 1
+  
+  setup_util.replace_text(app + "/Web.config", "localhost", args.database_host)
+
+  try:
+    # build
+    subprocess.check_call("rm -rf bin obj", shell=True, cwd=app)
+    subprocess.check_call("xbuild /p:Configuration=Release", shell=True, cwd=app)
+    
+    # nginx
+    workers = 'worker_processes ' + str(args.max_threads) + ';'
+    subprocess.check_call('echo "upstream mono {\n' + ';\n'.join('\tserver 127.0.0.1:' + str(port) for port in range(9001, 9001 + args.max_threads)) + ';\n}" > ' + root + '/nginx.upstream.conf', shell=True);
+    subprocess.check_call('sudo /usr/local/nginx/sbin/nginx -c ' + root + '/nginx.conf -g "' + workers + '"', shell=True)
+    
+    # fastcgi
+    for port in range(9001, 9001 + args.max_threads):
+      subprocess.Popen("fastcgi-mono-server4 /applications=/:. /socket=tcp:127.0.0.1:" + str(port) + " &", shell=True, cwd=app)
+    return 0
+  except subprocess.CalledProcessError:
+    return 1
+
+def stop():
+  if os.name == 'nt':
+    return 0
+  
+  subprocess.check_call("sudo /usr/local/nginx/sbin/nginx -c " + root + "/nginx.conf -s stop", shell=True)
+  subprocess.check_call("rm -f " + root + "/nginx.upstream.conf", shell=True)
+  subprocess.check_call("pkill -9 mono", shell=True)
+  return 0

+ 33 - 0
servicestack/setup_xsp.py

@@ -0,0 +1,33 @@
+import subprocess
+import sys
+import setup_util
+import os
+
+def start(args):
+  if os.name == 'nt':
+    return 1
+  
+  setup_util.replace_text("servicestack/src/Web.config", "localhost", args.database_host)
+
+  try:
+    subprocess.check_call("rm -rf bin obj", shell=True, cwd="aspnet/src")
+    subprocess.check_call("xbuild /p:Configuration=Release", shell=True, cwd="servicestack/src/Web.config")
+    subprocess.Popen("xsp4 --nonstop", shell=True, cwd="servicestack/src/Web.config")
+    return 0
+  except subprocess.CalledProcessError:
+    return 1
+
+def stop():
+  if os.name == 'nt':
+    return 0
+  
+  p = subprocess.Popen(['ps', 'aux'], stdout=subprocess.PIPE)
+  out, err = p.communicate()
+  for line in out.splitlines():
+    if 'xsp4' in line:
+      pid = int(line.split(None, 2)[1])
+      try:
+        os.kill(pid, 9)
+      except OSError:
+        pass
+  return 0

+ 39 - 0
servicestack/src/AppHost.cs

@@ -0,0 +1,39 @@
+using System;
+using System.Linq;
+using System.Configuration;
+using System.Collections.Generic;
+using ServiceStack.Common.Web;
+using ServiceStack.Configuration;
+using ServiceStack.OrmLite;
+using ServiceStack.ServiceInterface;
+using ServiceStack.ServiceInterface.Auth;
+using ServiceStack.ServiceInterface.ServiceModel;
+using ServiceStack.WebHost.Endpoints;
+
+namespace ServiceStackBenchmark
+{
+	public class AppHost
+		: AppHostBase
+	{		
+		public AppHost() //Tell ServiceStack the name and where to find your web services
+            : base("ServiceStackBenchmark", typeof(JsonService).Assembly) { }
+
+		public override void Configure(Funq.Container container)
+		{
+			ServiceStack.Text.JsConfig.EmitCamelCaseNames = true;
+
+            SetConfig(new EndpointHostConfig
+            {
+                DefaultContentType = ContentType.Json
+            });
+
+			//Register all your dependencies
+			//container.Register(new TodoRepository());
+		}
+
+		public static void Start()
+		{
+			new AppHost().Init();
+		}
+	}
+}

+ 64 - 0
servicestack/src/DbService.cs

@@ -0,0 +1,64 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Data;
+using System.Linq;
+using System.Web;
+using ServiceStack.OrmLite;
+using ServiceStack.OrmLite.MySql;
+using ServiceStack.ServiceHost;
+using ServiceStack.ServiceInterface;
+
+namespace ServiceStackBenchmark
+{
+    [Route("/db")]
+    public class DbRequest
+    {
+        public int queries { get; set; }
+    }
+
+    public class World
+    {
+        public int id { get; set; }
+        public int randomNumber { get; set; }
+    }
+
+    public class DbService : Service
+    {
+        private static readonly string MYSQL_CONNECTION_STRING;
+        
+        static DbService()
+        {
+            MYSQL_CONNECTION_STRING = ConfigurationManager.AppSettings["ConnectionString.MySQL"];
+        }
+        
+        public object Get(DbRequest request)
+        {
+            OrmLiteConfig.DialectProvider = MySqlDialectProvider.Instance;
+
+            var random = new Random();
+            using (var db = MYSQL_CONNECTION_STRING.OpenDbConnection())
+            {
+                if (request.queries == 0)
+                    return GetRandomWorld(db, random);
+                else
+                {
+                    var worlds = new World[request.queries];
+
+                    // TODO: Execute these concurrently (or is that cheating?)
+                    for (int i = 0; i < request.queries; ++i)
+                    {
+                        worlds[i] = GetRandomWorld(db, random);
+                    }
+                    return worlds;
+                }
+            }
+        }
+
+        private World GetRandomWorld(IDbConnection db, Random random)
+        {
+            var id = random.Next(1, 10001);
+            return db.GetById<World>(id);
+        }
+    }
+}

+ 1 - 0
servicestack/src/Global.asax

@@ -0,0 +1 @@
+<%@ Application Codebehind="Global.asax.cs" Inherits="ServiceStackBenchmark.Global" Language="C#" %>

+ 14 - 0
servicestack/src/Global.asax.cs

@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Web;
+
+namespace ServiceStackBenchmark
+{
+    public class Global : HttpApplication
+    {
+        protected void Application_Start()
+        {
+            AppHost.Start();
+        }
+    }
+}

+ 23 - 0
servicestack/src/JsonService.cs

@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using ServiceStack.ServiceHost;
+using ServiceStack.ServiceInterface;
+
+namespace ServiceStackBenchmark
+{
+    [Route("/json")]
+    public class Json
+    {
+        public string message { get; set; }
+    }
+
+    public class JsonService : Service
+    {
+        public Json Get(Json empty)
+        {
+            return new Json { message = "Hello, World!" };
+        }
+    }
+}

+ 6 - 0
servicestack/src/NuGet.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+  <config>
+    <add key="repositoryPath" value="..\lib" />
+  </config>
+</configuration>

+ 123 - 0
servicestack/src/ServiceStackBenchmark.csproj

@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.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>{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}</ProjectGuid>
+    <ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>ServiceStackBenchmark</RootNamespace>
+    <AssemblyName>ServiceStackBenchmark</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <TargetFrameworkProfile />
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <Prefer32Bit>false</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <Prefer32Bit>false</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup>
+    <StartupObject />
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="MySql.Data">
+      <HintPath>..\lib\MySql.Data.6.6.5\lib\net40\MySql.Data.dll</HintPath>
+    </Reference>
+    <Reference Include="ServiceStack">
+      <HintPath>..\lib\ServiceStack.3.9.46\lib\net35\ServiceStack.dll</HintPath>
+    </Reference>
+    <Reference Include="ServiceStack.Common">
+      <HintPath>..\lib\ServiceStack.Common.3.9.46\lib\net35\ServiceStack.Common.dll</HintPath>
+    </Reference>
+    <Reference Include="ServiceStack.Interfaces">
+      <HintPath>..\lib\ServiceStack.Common.3.9.46\lib\net35\ServiceStack.Interfaces.dll</HintPath>
+    </Reference>
+    <Reference Include="ServiceStack.OrmLite">
+      <HintPath>..\lib\ServiceStack.OrmLite.MySql.3.9.45\lib\ServiceStack.OrmLite.dll</HintPath>
+    </Reference>
+    <Reference Include="ServiceStack.OrmLite.MySql">
+      <HintPath>..\lib\ServiceStack.OrmLite.MySql.3.9.45\lib\ServiceStack.OrmLite.MySql.dll</HintPath>
+    </Reference>
+    <Reference Include="ServiceStack.OrmLite.SqlServer">
+      <HintPath>..\lib\ServiceStack.OrmLite.SqlServer.3.9.45\lib\ServiceStack.OrmLite.SqlServer.dll</HintPath>
+    </Reference>
+    <Reference Include="ServiceStack.Redis">
+      <HintPath>..\lib\ServiceStack.Redis.3.9.45\lib\net35\ServiceStack.Redis.dll</HintPath>
+    </Reference>
+    <Reference Include="ServiceStack.ServiceInterface">
+      <HintPath>..\lib\ServiceStack.3.9.46\lib\net35\ServiceStack.ServiceInterface.dll</HintPath>
+    </Reference>
+    <Reference Include="ServiceStack.Text">
+      <HintPath>..\lib\ServiceStack.Text.3.9.46\lib\net35\ServiceStack.Text.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Configuration" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="System.Web" />
+    <Reference Include="System.Web.ApplicationServices" />
+    <Reference Include="System.Web.DynamicData" />
+    <Reference Include="System.Web.Entity" />
+    <Reference Include="System.Web.Extensions" />
+    <Reference Include="System.Xml.Linq" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="Web.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="DbService.cs" />
+    <Content Include="Global.asax" />
+    <Compile Include="AppHost.cs" />
+    <Compile Include="Global.asax.cs">
+      <DependentUpon>Global.asax</DependentUpon>
+    </Compile>
+    <Compile Include="JsonService.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="packages.config" />
+    <None Include="Web.Debug.config">
+      <DependentUpon>Web.config</DependentUpon>
+    </None>
+    <None Include="Web.Release.config">
+      <DependentUpon>Web.config</DependentUpon>
+    </None>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <PropertyGroup>
+    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
+    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
+  </PropertyGroup>
+  <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != '' And Exists('$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets')" />
+  <Import Project="..\lib\VisualStudio.MsBuild.11.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' == '' Or !Exists('$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets')" />
+  <Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
+    <AspNetCompiler VirtualPath="/" PhysicalPath="$(WebProjectOutputDir)" />
+  </Target>
+  <ProjectExtensions>
+    <VisualStudio>
+      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
+        <WebProjectProperties>
+          <SaveServerSettingsInUserFile>True</SaveServerSettingsInUserFile>
+        </WebProjectProperties>
+      </FlavorProperties>
+    </VisualStudio>
+  </ProjectExtensions>
+</Project>

+ 25 - 0
servicestack/src/ServiceStackBenchmark.sln

@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceStackBenchmark", "ServiceStackBenchmark.csproj", "{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{0C24E4BD-94BD-4AFD-B912-00A5FF825E6B}"
+	ProjectSection(SolutionItems) = preProject
+		NuGet.config = NuGet.config
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

+ 30 - 0
servicestack/src/Web.Debug.config

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
+
+<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
+  <!--
+    In the example below, the "SetAttributes" transform will change the value of 
+    "connectionString" to use "ReleaseSQLServer" only when the "Match" locator 
+    finds an attribute "name" that has a value of "MyDB".
+    
+    <connectionStrings>
+      <add name="MyDB" 
+        connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" 
+        xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
+    </connectionStrings>
+  -->
+  <system.web>
+    <!--
+      In the example below, the "Replace" transform will replace the entire 
+      <customErrors> section of your web.config file.
+      Note that because there is only one customErrors section under the 
+      <system.web> node, there is no need to use the "xdt:Locator" attribute.
+      
+      <customErrors defaultRedirect="GenericError.htm"
+        mode="RemoteOnly" xdt:Transform="Replace">
+        <error statusCode="500" redirect="InternalError.htm"/>
+      </customErrors>
+    -->
+  </system.web>
+</configuration>

+ 31 - 0
servicestack/src/Web.Release.config

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
+
+<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
+  <!--
+    In the example below, the "SetAttributes" transform will change the value of 
+    "connectionString" to use "ReleaseSQLServer" only when the "Match" locator 
+    finds an attribute "name" that has a value of "MyDB".
+    
+    <connectionStrings>
+      <add name="MyDB" 
+        connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" 
+        xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
+    </connectionStrings>
+  -->
+  <system.web>
+    <compilation xdt:Transform="RemoveAttributes(debug)" />
+    <!--
+      In the example below, the "Replace" transform will replace the entire 
+      <customErrors> section of your web.config file.
+      Note that because there is only one customErrors section under the 
+      <system.web> node, there is no need to use the "xdt:Locator" attribute.
+      
+      <customErrors defaultRedirect="GenericError.htm"
+        mode="RemoteOnly" xdt:Transform="Replace">
+        <error statusCode="500" redirect="InternalError.htm"/>
+      </customErrors>
+    -->
+  </system.web>
+</configuration>

+ 31 - 0
servicestack/src/Web.config

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+  <appSettings>
+    <add key="ConnectionString.MySQL" value="server=localhost;user id=benchmarkdbuser;password=benchmarkdbpass;database=hello_world" />
+    <add key="ConnectionString.PostgreSQL" value="server=localhost;user id=benchmarkdbuser;password=benchmarkdbpass;database=hello_world" />
+    <add key="ConnectionString.MongoDB" value="mongodb://localhost" />
+  </appSettings>
+  <system.web>
+    <customErrors mode="Off" />
+    <compilation debug="false" targetFramework="4.5" />
+    
+    <pages controlRenderingCompatibilityVersion="4.0" />
+    <httpHandlers>
+      <add path="*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*"/>
+    </httpHandlers>
+  </system.web>
+  <system.webServer>
+    <handlers>
+      <add path="*" name="ServiceStack.Factory" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" preCondition="integratedMode" resourceType="Unspecified" allowPathInfo="true" />
+    </handlers>
+  </system.webServer>
+  <runtime>
+    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+      <dependentAssembly>
+        <assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-6.6.5.0" newVersion="6.6.5.0" />
+      </dependentAssembly>
+    </assemblyBinding>
+  </runtime>
+  
+</configuration>

+ 10 - 0
servicestack/src/packages.config

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="MySql.Data" version="6.6.5" targetFramework="net45" />
+  <package id="ServiceStack" version="3.9.46" targetFramework="net45" />
+  <package id="ServiceStack.Common" version="3.9.46" targetFramework="net45" />
+  <package id="ServiceStack.OrmLite.MySql" version="3.9.45" targetFramework="net45" />
+  <package id="ServiceStack.OrmLite.SqlServer" version="3.9.45" targetFramework="net45" />
+  <package id="ServiceStack.Redis" version="3.9.45" targetFramework="net45" />
+  <package id="ServiceStack.Text" version="3.9.46" targetFramework="net45" />
+</packages>