diff --git a/SignList.xml b/SignList.xml
new file mode 100644
index 000000000..987d2748e
--- /dev/null
+++ b/SignList.xml
@@ -0,0 +1,13 @@
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <FirstParty Include="Xamarin.*.dll" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <!-- <ThirdParty Include="Newtonsoft.Json.dll" /> -->
+  </ItemGroup>
+
+  <ItemGroup>
+    <!-- <Skip Include="System.*.dll" /> -->
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index a63748b0c..0f54a68b5 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -19,6 +19,7 @@ resources:
       type: github
       name: xamarin/yaml-templates
       endpoint: xamarin
+      ref: refs/heads/main
 
 trigger:
   branches:
@@ -77,6 +78,10 @@ jobs:
           solution: $(PathToCsproj)
           configuration: Release
           msbuildArguments: '/restore /t:Build /p:ContinuousIntegrationBuild=true /p:Deterministic=false'
+      - task: CopyFiles@2
+        inputs:
+          Contents: 'SignList.xml'
+          TargetFolder: '$(Build.ArtifactStagingDirectory)/nuget'
       - task: MSBuild@1
         displayName: Pack NuGets
         inputs:
@@ -172,23 +177,7 @@ jobs:
           configuration: Release
           msbuildArguments: '/t:Pack /p:PackageVersion=$(NugetPackageVersion) /p:PackageOutputPath="$(Build.ArtifactStagingDirectory)/nuget"'
 
-    # only sign the packages when running on Windows, and using the private server which has the certificates
   - ${{ if eq(variables['System.TeamProject'], 'devdiv') }}:
-    - job: signing
-      displayName: Signing NuGets
-      dependsOn: build_windows
-      pool:
-        vmImage: 'windows-latest'
-      condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/'))
-      steps:
-        # don't checkout code and sign the packages
-        - checkout: none
-        - template: sign-artifacts/jobs/v2.yml@internal-templates
-          parameters:
-            targetFolder: '$(Build.ArtifactStagingDirectory)/signed'
-        # publish the signed packages
-        - task: PublishBuildArtifacts@1
-          displayName: 'Publish Signed NuGets'
-          inputs:
-            artifactName: nuget-signed
-            pathToPublish: '$(Build.ArtifactStagingDirectory)/signed'
+    - template: sign-artifacts/jobs/v2.yml@internal-templates
+      parameters:
+        dependsOn: [ build_windows ]