diff --git a/samples/AzCopyCore/AzCopyCore.sln b/samples/AzCopyCore/AzCopyCore.sln
new file mode 100644
index 00000000000..5f45f5a23de
--- /dev/null
+++ b/samples/AzCopyCore/AzCopyCore.sln
@@ -0,0 +1,28 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.27323.2
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AzCopyCore", "AzCopyCore\AzCopyCore.csproj", "{0D5ECA4A-2037-46FD-A684-372C7DDCB577}"
+EndProject
+Global
+ GlobalSection(Performance) = preSolution
+ HasPerformanceSessions = true
+ EndGlobalSection
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {0D5ECA4A-2037-46FD-A684-372C7DDCB577}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0D5ECA4A-2037-46FD-A684-372C7DDCB577}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0D5ECA4A-2037-46FD-A684-372C7DDCB577}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0D5ECA4A-2037-46FD-A684-372C7DDCB577}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {1C22ED6F-9702-40F9-8BFC-CB5192009D9E}
+ EndGlobalSection
+EndGlobal
diff --git a/samples/AzCopyCore/AzCopyCore/AzCopyCore.csproj b/samples/AzCopyCore/AzCopyCore/AzCopyCore.csproj
new file mode 100644
index 00000000000..141dd99c4c2
--- /dev/null
+++ b/samples/AzCopyCore/AzCopyCore/AzCopyCore.csproj
@@ -0,0 +1,29 @@
+
+
+
+ Exe
+ netcoreapp2.1
+ 2.1.0-preview2-26209-04
+
+
+
+ 7.2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/AzCopyCore/AzCopyCore/Program.cs b/samples/AzCopyCore/AzCopyCore/Program.cs
new file mode 100644
index 00000000000..87d95aa8ffd
--- /dev/null
+++ b/samples/AzCopyCore/AzCopyCore/Program.cs
@@ -0,0 +1,168 @@
+using System;
+using System.Azure.Authentication;
+using System.Azure.Storage;
+using System.Azure.Storage.Requests;
+using System.Buffers;
+using System.Diagnostics;
+using System.IO;
+using System.Threading.Tasks;
+
+static class Program
+{
+ internal static TraceSource Log = new TraceSource("AzCopyCore");
+
+ static void PrintUsage()
+ {
+ Console.WriteLine("dotnet AzCopyCore.dll /Source: