diff --git a/eng/tools/XplatPackageSigner/XplatPackageSigner.proj b/eng/tools/XplatPackageSigner/XplatPackageSigner.proj
new file mode 100644
index 0000000000..d3cdde63cc
--- /dev/null
+++ b/eng/tools/XplatPackageSigner/XplatPackageSigner.proj
@@ -0,0 +1,38 @@
+
+
+
+ $([MSBuild]::ValueOrDefault($(SignType),'real'))
+
+
+
+
+
+
+
+ $(RepositoryRoot)bin\$(MSBuildProjectName)\
+ $(RepositoryRoot)obj\$(MSBuildProjectName)\
+
+
+
+
+
+ $(PackageSigningCertName)
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/eng/tools/XplatPackageSigner/sign-packages.cmd b/eng/tools/XplatPackageSigner/sign-packages.cmd
new file mode 100644
index 0000000000..e5cdaf5b48
--- /dev/null
+++ b/eng/tools/XplatPackageSigner/sign-packages.cmd
@@ -0,0 +1,15 @@
+@ECHO OFF
+
+SET DirToSign=%1
+
+IF "%DirToSign%"=="" (
+ echo Error^: Expected argument ^
+ echo Usage^: sign-packages.cmd ^
+
+ exit /b 1
+)
+
+SET RepoRoot=%~dp0..\..\..
+SET Project=%~dp0\XplatPackageSigner.proj
+
+%RepoRoot%\build.cmd "-restore:$false" -projects %project% /p:DirectoryToSign=%DirToSign% /bl:%RepoRoot%\artifacts\logs\XplatSign.binlog