diff --git a/Directory.Build.props b/Directory.Build.props
index 6fa3e578a..047ba5396 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -5,4 +5,10 @@
true
+
+ $(MSBuildThisFileDirectory)
+ $(RepoRoot)eng/
+ $(EngRoot)build/
+
+
diff --git a/eng/build/WorkerExtensions.targets b/eng/build/WorkerExtensions.targets
new file mode 100644
index 000000000..f7be5ee82
--- /dev/null
+++ b/eng/build/WorkerExtensions.targets
@@ -0,0 +1,11 @@
+
+
+
+ <_ExtensionInformationAttribute Include="@(WebJobsExtension->'Microsoft.Azure.Functions.Worker.Extensions.Abstractions.ExtensionInformationAttribute')">
+ <_Parameter1>%(WebJobsExtension.Identity)
+ <_Parameter2>%(WebJobsExtension.Version)
+
+
+
+
+
\ No newline at end of file
diff --git a/extensions/Directory.Build.targets b/extensions/Directory.Build.targets
new file mode 100644
index 000000000..711472655
--- /dev/null
+++ b/extensions/Directory.Build.targets
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/extensions/Worker.Extensions.CosmosDB/src/Properties/AssemblyInfo.cs b/extensions/Worker.Extensions.CosmosDB/src/Properties/AssemblyInfo.cs
index f4ab975d0..fa1c7b2fa 100644
--- a/extensions/Worker.Extensions.CosmosDB/src/Properties/AssemblyInfo.cs
+++ b/extensions/Worker.Extensions.CosmosDB/src/Properties/AssemblyInfo.cs
@@ -2,8 +2,6 @@
// Licensed under the MIT License. See License.txt in the project root for license information.
using System.Runtime.CompilerServices;
-using Microsoft.Azure.Functions.Worker.Extensions.Abstractions;
-[assembly: ExtensionInformation("Microsoft.Azure.WebJobs.Extensions.CosmosDB", "4.8.0")]
[assembly: InternalsVisibleTo("Microsoft.Azure.Functions.Worker.Extensions.Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001005148be37ac1d9f58bd40a2e472c9d380d635b6048278f7d47480b08c928858f0f7fe17a6e4ce98da0e7a7f0b8c308aecd9e9b02d7e9680a5b5b75ac7773cec096fbbc64aebd429e77cb5f89a569a79b28e9c76426783f624b6b70327eb37341eb498a2c3918af97c4860db6cdca4732787150841e395a29cfacb959c1fd971c1")]
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]
diff --git a/extensions/Worker.Extensions.CosmosDB/src/Worker.Extensions.CosmosDB.csproj b/extensions/Worker.Extensions.CosmosDB/src/Worker.Extensions.CosmosDB.csproj
index 7eb148a9d..93bfdf713 100644
--- a/extensions/Worker.Extensions.CosmosDB/src/Worker.Extensions.CosmosDB.csproj
+++ b/extensions/Worker.Extensions.CosmosDB/src/Worker.Extensions.CosmosDB.csproj
@@ -30,4 +30,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/extensions/Worker.Extensions.EventGrid/src/Properties/AssemblyInfo.cs b/extensions/Worker.Extensions.EventGrid/src/Properties/AssemblyInfo.cs
index 863e07157..ef657b5c3 100644
--- a/extensions/Worker.Extensions.EventGrid/src/Properties/AssemblyInfo.cs
+++ b/extensions/Worker.Extensions.EventGrid/src/Properties/AssemblyInfo.cs
@@ -4,5 +4,4 @@
using System.Runtime.CompilerServices;
using Microsoft.Azure.Functions.Worker.Extensions.Abstractions;
-[assembly: ExtensionInformation("Microsoft.Azure.WebJobs.Extensions.EventGrid", "3.4.2")]
[assembly: InternalsVisibleTo("Microsoft.Azure.Functions.Worker.Extensions.Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001005148be37ac1d9f58bd40a2e472c9d380d635b6048278f7d47480b08c928858f0f7fe17a6e4ce98da0e7a7f0b8c308aecd9e9b02d7e9680a5b5b75ac7773cec096fbbc64aebd429e77cb5f89a569a79b28e9c76426783f624b6b70327eb37341eb498a2c3918af97c4860db6cdca4732787150841e395a29cfacb959c1fd971c1")]
diff --git a/extensions/Worker.Extensions.EventGrid/src/Worker.Extensions.EventGrid.csproj b/extensions/Worker.Extensions.EventGrid/src/Worker.Extensions.EventGrid.csproj
index 172a7595e..35443895d 100644
--- a/extensions/Worker.Extensions.EventGrid/src/Worker.Extensions.EventGrid.csproj
+++ b/extensions/Worker.Extensions.EventGrid/src/Worker.Extensions.EventGrid.csproj
@@ -23,4 +23,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/extensions/Worker.Extensions.EventHubs/src/Properties/AssemblyInfo.cs b/extensions/Worker.Extensions.EventHubs/src/Properties/AssemblyInfo.cs
index 50d300fa5..1cde8f92b 100644
--- a/extensions/Worker.Extensions.EventHubs/src/Properties/AssemblyInfo.cs
+++ b/extensions/Worker.Extensions.EventHubs/src/Properties/AssemblyInfo.cs
@@ -2,7 +2,5 @@
// Licensed under the MIT License. See License.txt in the project root for license information.
using System.Runtime.CompilerServices;
-using Microsoft.Azure.Functions.Worker.Extensions.Abstractions;
-[assembly: ExtensionInformation("Microsoft.Azure.WebJobs.Extensions.EventHubs", "6.3.5")]
[assembly: InternalsVisibleTo("Microsoft.Azure.Functions.Worker.Extensions.Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001005148be37ac1d9f58bd40a2e472c9d380d635b6048278f7d47480b08c928858f0f7fe17a6e4ce98da0e7a7f0b8c308aecd9e9b02d7e9680a5b5b75ac7773cec096fbbc64aebd429e77cb5f89a569a79b28e9c76426783f624b6b70327eb37341eb498a2c3918af97c4860db6cdca4732787150841e395a29cfacb959c1fd971c1")]
diff --git a/extensions/Worker.Extensions.EventHubs/src/Worker.Extensions.EventHubs.csproj b/extensions/Worker.Extensions.EventHubs/src/Worker.Extensions.EventHubs.csproj
index 483997042..48fc0247e 100644
--- a/extensions/Worker.Extensions.EventHubs/src/Worker.Extensions.EventHubs.csproj
+++ b/extensions/Worker.Extensions.EventHubs/src/Worker.Extensions.EventHubs.csproj
@@ -26,4 +26,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/extensions/Worker.Extensions.Kafka/src/Properties/AssemblyInfo.cs b/extensions/Worker.Extensions.Kafka/src/Properties/AssemblyInfo.cs
deleted file mode 100644
index 6b39cbf04..000000000
--- a/extensions/Worker.Extensions.Kafka/src/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the MIT License. See License.txt in the project root for license information.
-
-using Microsoft.Azure.Functions.Worker.Extensions.Abstractions;
-
-[assembly: ExtensionInformation("Microsoft.Azure.WebJobs.Extensions.Kafka", "3.9.0")]
diff --git a/extensions/Worker.Extensions.Kafka/src/Worker.Extensions.Kafka.csproj b/extensions/Worker.Extensions.Kafka/src/Worker.Extensions.Kafka.csproj
index d72dba8fe..03ea9f9a1 100644
--- a/extensions/Worker.Extensions.Kafka/src/Worker.Extensions.Kafka.csproj
+++ b/extensions/Worker.Extensions.Kafka/src/Worker.Extensions.Kafka.csproj
@@ -1,4 +1,5 @@
+
Microsoft.Azure.Functions.Worker.Extensions.Kafka
Microsoft.Azure.Functions.Worker.Extensions.Kafka
@@ -18,4 +19,9 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/extensions/Worker.Extensions.RabbitMQ/src/Properties/AssemblyInfo.cs b/extensions/Worker.Extensions.RabbitMQ/src/Properties/AssemblyInfo.cs
deleted file mode 100644
index cd940dcb3..000000000
--- a/extensions/Worker.Extensions.RabbitMQ/src/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the MIT License. See License.txt in the project root for license information.
-
-using Microsoft.Azure.Functions.Worker.Extensions.Abstractions;
-
-[assembly: ExtensionInformation("Microsoft.Azure.WebJobs.Extensions.RabbitMQ", "2.0.3")]
diff --git a/extensions/Worker.Extensions.RabbitMQ/src/Worker.Extensions.RabbitMQ.csproj b/extensions/Worker.Extensions.RabbitMQ/src/Worker.Extensions.RabbitMQ.csproj
index 5984c9f17..0868de5ac 100644
--- a/extensions/Worker.Extensions.RabbitMQ/src/Worker.Extensions.RabbitMQ.csproj
+++ b/extensions/Worker.Extensions.RabbitMQ/src/Worker.Extensions.RabbitMQ.csproj
@@ -18,4 +18,8 @@
+
+
+
+
diff --git a/extensions/Worker.Extensions.SendGrid/src/Properties/AssemblyInfo.cs b/extensions/Worker.Extensions.SendGrid/src/Properties/AssemblyInfo.cs
deleted file mode 100644
index f99ccf250..000000000
--- a/extensions/Worker.Extensions.SendGrid/src/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the MIT License. See License.txt in the project root for license information.
-
-using Microsoft.Azure.Functions.Worker.Extensions.Abstractions;
-
-[assembly: ExtensionInformation("Microsoft.Azure.WebJobs.Extensions.SendGrid", "3.0.3")]
diff --git a/extensions/Worker.Extensions.SendGrid/src/Worker.Extensions.SendGrid.csproj b/extensions/Worker.Extensions.SendGrid/src/Worker.Extensions.SendGrid.csproj
index d3160ec6f..44e1f3221 100644
--- a/extensions/Worker.Extensions.SendGrid/src/Worker.Extensions.SendGrid.csproj
+++ b/extensions/Worker.Extensions.SendGrid/src/Worker.Extensions.SendGrid.csproj
@@ -18,4 +18,8 @@
+
+
+
+
diff --git a/extensions/Worker.Extensions.ServiceBus/src/Properties/AssemblyInfo.cs b/extensions/Worker.Extensions.ServiceBus/src/Properties/AssemblyInfo.cs
index c192d57e4..1cde8f92b 100644
--- a/extensions/Worker.Extensions.ServiceBus/src/Properties/AssemblyInfo.cs
+++ b/extensions/Worker.Extensions.ServiceBus/src/Properties/AssemblyInfo.cs
@@ -2,7 +2,5 @@
// Licensed under the MIT License. See License.txt in the project root for license information.
using System.Runtime.CompilerServices;
-using Microsoft.Azure.Functions.Worker.Extensions.Abstractions;
-[assembly: ExtensionInformation("Microsoft.Azure.WebJobs.Extensions.ServiceBus", "5.16.4")]
[assembly: InternalsVisibleTo("Microsoft.Azure.Functions.Worker.Extensions.Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001005148be37ac1d9f58bd40a2e472c9d380d635b6048278f7d47480b08c928858f0f7fe17a6e4ce98da0e7a7f0b8c308aecd9e9b02d7e9680a5b5b75ac7773cec096fbbc64aebd429e77cb5f89a569a79b28e9c76426783f624b6b70327eb37341eb498a2c3918af97c4860db6cdca4732787150841e395a29cfacb959c1fd971c1")]
diff --git a/extensions/Worker.Extensions.ServiceBus/src/Worker.Extensions.ServiceBus.csproj b/extensions/Worker.Extensions.ServiceBus/src/Worker.Extensions.ServiceBus.csproj
index 4e0192263..38d7c0075 100644
--- a/extensions/Worker.Extensions.ServiceBus/src/Worker.Extensions.ServiceBus.csproj
+++ b/extensions/Worker.Extensions.ServiceBus/src/Worker.Extensions.ServiceBus.csproj
@@ -35,4 +35,9 @@
+
+
+
+
+
diff --git a/extensions/Worker.Extensions.SignalRService/src/Properties/AssemblyInfo.cs b/extensions/Worker.Extensions.SignalRService/src/Properties/AssemblyInfo.cs
deleted file mode 100644
index a66521d25..000000000
--- a/extensions/Worker.Extensions.SignalRService/src/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the MIT License. See License.txt in the project root for license information.
-
-using Microsoft.Azure.Functions.Worker.Extensions.Abstractions;
-
-[assembly: ExtensionInformation("Microsoft.Azure.WebJobs.Extensions.SignalRService", "1.14.0")]
diff --git a/extensions/Worker.Extensions.SignalRService/src/Worker.Extensions.SignalRService.csproj b/extensions/Worker.Extensions.SignalRService/src/Worker.Extensions.SignalRService.csproj
index a8744bbae..3b9468e6b 100644
--- a/extensions/Worker.Extensions.SignalRService/src/Worker.Extensions.SignalRService.csproj
+++ b/extensions/Worker.Extensions.SignalRService/src/Worker.Extensions.SignalRService.csproj
@@ -26,4 +26,8 @@
+
+
+
+
diff --git a/extensions/Worker.Extensions.Storage.Blobs/src/Properties/AssemblyInfo.cs b/extensions/Worker.Extensions.Storage.Blobs/src/Properties/AssemblyInfo.cs
index e84e64ac5..2a67c8eb2 100644
--- a/extensions/Worker.Extensions.Storage.Blobs/src/Properties/AssemblyInfo.cs
+++ b/extensions/Worker.Extensions.Storage.Blobs/src/Properties/AssemblyInfo.cs
@@ -2,9 +2,7 @@
// Licensed under the MIT License. See License.txt in the project root for license information.
using System.Runtime.CompilerServices;
-using Microsoft.Azure.Functions.Worker.Extensions.Abstractions;
-[assembly: ExtensionInformation("Microsoft.Azure.WebJobs.Extensions.Storage.Blobs", "5.3.1")]
[assembly: InternalsVisibleTo("Microsoft.Azure.Functions.Worker.Extensions.Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001005148be37ac1d9f58bd40a2e472c9d380d635b6048278f7d47480b08c928858f0f7fe17a6e4ce98da0e7a7f0b8c308aecd9e9b02d7e9680a5b5b75ac7773cec096fbbc64aebd429e77cb5f89a569a79b28e9c76426783f624b6b70327eb37341eb498a2c3918af97c4860db6cdca4732787150841e395a29cfacb959c1fd971c1")]
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]
diff --git a/extensions/Worker.Extensions.Storage.Blobs/src/Worker.Extensions.Storage.Blobs.csproj b/extensions/Worker.Extensions.Storage.Blobs/src/Worker.Extensions.Storage.Blobs.csproj
index db94a7f64..cd0eb9504 100644
--- a/extensions/Worker.Extensions.Storage.Blobs/src/Worker.Extensions.Storage.Blobs.csproj
+++ b/extensions/Worker.Extensions.Storage.Blobs/src/Worker.Extensions.Storage.Blobs.csproj
@@ -29,4 +29,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/extensions/Worker.Extensions.Storage.Queues/src/Properties/AssemblyInfo.cs b/extensions/Worker.Extensions.Storage.Queues/src/Properties/AssemblyInfo.cs
index 117516432..1cde8f92b 100644
--- a/extensions/Worker.Extensions.Storage.Queues/src/Properties/AssemblyInfo.cs
+++ b/extensions/Worker.Extensions.Storage.Queues/src/Properties/AssemblyInfo.cs
@@ -2,7 +2,5 @@
// Licensed under the MIT License. See License.txt in the project root for license information.
using System.Runtime.CompilerServices;
-using Microsoft.Azure.Functions.Worker.Extensions.Abstractions;
-[assembly: ExtensionInformation("Microsoft.Azure.WebJobs.Extensions.Storage.Queues", "5.3.1")]
[assembly: InternalsVisibleTo("Microsoft.Azure.Functions.Worker.Extensions.Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001005148be37ac1d9f58bd40a2e472c9d380d635b6048278f7d47480b08c928858f0f7fe17a6e4ce98da0e7a7f0b8c308aecd9e9b02d7e9680a5b5b75ac7773cec096fbbc64aebd429e77cb5f89a569a79b28e9c76426783f624b6b70327eb37341eb498a2c3918af97c4860db6cdca4732787150841e395a29cfacb959c1fd971c1")]
diff --git a/extensions/Worker.Extensions.Storage.Queues/src/Worker.Extensions.Storage.Queues.csproj b/extensions/Worker.Extensions.Storage.Queues/src/Worker.Extensions.Storage.Queues.csproj
index a22a3b6cb..e70a7b744 100644
--- a/extensions/Worker.Extensions.Storage.Queues/src/Worker.Extensions.Storage.Queues.csproj
+++ b/extensions/Worker.Extensions.Storage.Queues/src/Worker.Extensions.Storage.Queues.csproj
@@ -27,4 +27,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/extensions/Worker.Extensions.Tables/src/Properties/AssemblyInfo.cs b/extensions/Worker.Extensions.Tables/src/Properties/AssemblyInfo.cs
index 4726d32e8..fa1c7b2fa 100644
--- a/extensions/Worker.Extensions.Tables/src/Properties/AssemblyInfo.cs
+++ b/extensions/Worker.Extensions.Tables/src/Properties/AssemblyInfo.cs
@@ -2,8 +2,6 @@
// Licensed under the MIT License. See License.txt in the project root for license information.
using System.Runtime.CompilerServices;
-using Microsoft.Azure.Functions.Worker.Extensions.Abstractions;
-[assembly: ExtensionInformation("Microsoft.Azure.WebJobs.Extensions.Tables", "1.3.2")]
[assembly: InternalsVisibleTo("Microsoft.Azure.Functions.Worker.Extensions.Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001005148be37ac1d9f58bd40a2e472c9d380d635b6048278f7d47480b08c928858f0f7fe17a6e4ce98da0e7a7f0b8c308aecd9e9b02d7e9680a5b5b75ac7773cec096fbbc64aebd429e77cb5f89a569a79b28e9c76426783f624b6b70327eb37341eb498a2c3918af97c4860db6cdca4732787150841e395a29cfacb959c1fd971c1")]
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]
diff --git a/extensions/Worker.Extensions.Tables/src/Worker.Extensions.Tables.csproj b/extensions/Worker.Extensions.Tables/src/Worker.Extensions.Tables.csproj
index 6f2046012..ec390ab98 100644
--- a/extensions/Worker.Extensions.Tables/src/Worker.Extensions.Tables.csproj
+++ b/extensions/Worker.Extensions.Tables/src/Worker.Extensions.Tables.csproj
@@ -27,5 +27,9 @@
+
+
+
+
\ No newline at end of file