diff --git a/src/csharp/Grpc.Auth/project.json b/src/csharp/Grpc.Auth/project.json
index 22414133595c1b22863e290b58640dc834dbd4d5..72c258a91ac063c8cfba69fef551aca7ef60b3ae 100644
--- a/src/csharp/Grpc.Auth/project.json
+++ b/src/csharp/Grpc.Auth/project.json
@@ -16,7 +16,10 @@
     "define": [ "SIGNED" ],
     "keyFile": "../keys/Grpc.snk",
     "publicSign": true,
-    "xmlDoc": true
+    "xmlDoc": true,
+    "compile": {
+      "includeFiles": [ "../Grpc.Core/Version.cs" ]
+    }
   },
   "dependencies": {
     "Grpc.Core": "0.16.0-dev",
diff --git a/src/csharp/Grpc.Core.Tests/project.json b/src/csharp/Grpc.Core.Tests/project.json
index 6402912d05fc6f492c8c20abaf32c3b3d4bf8ea0..f58bcbb5159e7ddd38f6e8016bab5a8c9cdb23b8 100644
--- a/src/csharp/Grpc.Core.Tests/project.json
+++ b/src/csharp/Grpc.Core.Tests/project.json
@@ -9,6 +9,9 @@
         "keyFile": "../keys/Grpc.snk",
         "publicSign": true,
         "xmlDoc": true,
+        "compile": {
+          "includeFiles": [ "../Grpc.Core/Version.cs" ]
+        },
         "copyToOutput": {
           "mappings": {
             "nativelibs/windows_x64/grpc_csharp_ext.dll": "../../../vsprojects/x64/Debug/grpc_csharp_ext.dll",
@@ -25,6 +28,9 @@
         "keyFile": "../keys/Grpc.snk",
         "publicSign": true,
         "xmlDoc": true,
+        "compile": {
+          "includeFiles": [ "../Grpc.Core/Version.cs" ]
+        },
         "copyToOutput": {
           "mappings": {
             "nativelibs/windows_x64/grpc_csharp_ext.dll": "../../../vsprojects/x64/Release/grpc_csharp_ext.dll",
diff --git a/src/csharp/Grpc.Core/project.json b/src/csharp/Grpc.Core/project.json
index cd3720ddc281c0944fd493da8a8c57ab34152810..201e54880143ae7f0a263c889b2f5daf28b5d826 100644
--- a/src/csharp/Grpc.Core/project.json
+++ b/src/csharp/Grpc.Core/project.json
@@ -23,7 +23,6 @@
       }
     }
   },
-  "shared": "Version.cs",
   "buildOptions": {
     "embed": [ "../../../etc/roots.pem" ],
     "define": [ "SIGNED" ],
diff --git a/src/csharp/Grpc.Examples.MathClient/project.json b/src/csharp/Grpc.Examples.MathClient/project.json
index 378fc8cf8bf83100689b08dc28cd0ed715d42f20..b865cd5011859f0be9f3a529653a03a6ef113695 100644
--- a/src/csharp/Grpc.Examples.MathClient/project.json
+++ b/src/csharp/Grpc.Examples.MathClient/project.json
@@ -9,6 +9,9 @@
         "keyFile": "../keys/Grpc.snk",
         "publicSign": true,
         "xmlDoc": true,
+        "compile": {
+          "includeFiles": [ "../Grpc.Core/Version.cs" ]
+        },
         "copyToOutput": {
           "mappings": {
             "nativelibs/windows_x64/grpc_csharp_ext.dll": "../../../vsprojects/x64/Debug/grpc_csharp_ext.dll",
@@ -25,6 +28,9 @@
         "keyFile": "../keys/Grpc.snk",
         "publicSign": true,
         "xmlDoc": true,
+        "compile": {
+          "includeFiles": [ "../Grpc.Core/Version.cs" ]
+        },
         "copyToOutput": {
           "mappings": {
             "nativelibs/windows_x64/grpc_csharp_ext.dll": "../../../vsprojects/x64/Release/grpc_csharp_ext.dll",
diff --git a/src/csharp/Grpc.Examples.MathServer/project.json b/src/csharp/Grpc.Examples.MathServer/project.json
index 378fc8cf8bf83100689b08dc28cd0ed715d42f20..b865cd5011859f0be9f3a529653a03a6ef113695 100644
--- a/src/csharp/Grpc.Examples.MathServer/project.json
+++ b/src/csharp/Grpc.Examples.MathServer/project.json
@@ -9,6 +9,9 @@
         "keyFile": "../keys/Grpc.snk",
         "publicSign": true,
         "xmlDoc": true,
+        "compile": {
+          "includeFiles": [ "../Grpc.Core/Version.cs" ]
+        },
         "copyToOutput": {
           "mappings": {
             "nativelibs/windows_x64/grpc_csharp_ext.dll": "../../../vsprojects/x64/Debug/grpc_csharp_ext.dll",
@@ -25,6 +28,9 @@
         "keyFile": "../keys/Grpc.snk",
         "publicSign": true,
         "xmlDoc": true,
+        "compile": {
+          "includeFiles": [ "../Grpc.Core/Version.cs" ]
+        },
         "copyToOutput": {
           "mappings": {
             "nativelibs/windows_x64/grpc_csharp_ext.dll": "../../../vsprojects/x64/Release/grpc_csharp_ext.dll",
diff --git a/src/csharp/Grpc.Examples.Tests/project.json b/src/csharp/Grpc.Examples.Tests/project.json
index 6af064544102f09d2fc4bcfa346fa979dc949c82..cc518eb6ff7ce4ec6769f0d3737ce9504cc65831 100644
--- a/src/csharp/Grpc.Examples.Tests/project.json
+++ b/src/csharp/Grpc.Examples.Tests/project.json
@@ -9,6 +9,9 @@
         "keyFile": "../keys/Grpc.snk",
         "publicSign": true,
         "xmlDoc": true,
+        "compile": {
+          "includeFiles": [ "../Grpc.Core/Version.cs" ]
+        },
         "copyToOutput": {
           "mappings": {
             "nativelibs/windows_x64/grpc_csharp_ext.dll": "../../../vsprojects/x64/Debug/grpc_csharp_ext.dll",
@@ -25,6 +28,9 @@
         "keyFile": "../keys/Grpc.snk",
         "publicSign": true,
         "xmlDoc": true,
+        "compile": {
+          "includeFiles": [ "../Grpc.Core/Version.cs" ]
+        },
         "copyToOutput": {
           "mappings": {
             "nativelibs/windows_x64/grpc_csharp_ext.dll": "../../../vsprojects/x64/Release/grpc_csharp_ext.dll",
diff --git a/src/csharp/Grpc.HealthCheck.Tests/project.json b/src/csharp/Grpc.HealthCheck.Tests/project.json
index 0e42fe2da6397e738142c3464133c31d3ab6538f..fbf8d92f04d20f4b8ab68c58686006a6a8ef4f9f 100644
--- a/src/csharp/Grpc.HealthCheck.Tests/project.json
+++ b/src/csharp/Grpc.HealthCheck.Tests/project.json
@@ -9,6 +9,9 @@
         "keyFile": "../keys/Grpc.snk",
         "publicSign": true,
         "xmlDoc": true,
+        "compile": {
+          "includeFiles": [ "../Grpc.Core/Version.cs" ]
+        },
         "copyToOutput": {
           "mappings": {
             "nativelibs/windows_x64/grpc_csharp_ext.dll": "../../../vsprojects/x64/Debug/grpc_csharp_ext.dll",
@@ -25,6 +28,9 @@
         "keyFile": "../keys/Grpc.snk",
         "publicSign": true,
         "xmlDoc": true,
+        "compile": {
+          "includeFiles": [ "../Grpc.Core/Version.cs" ]
+        },
         "copyToOutput": {
           "mappings": {
             "nativelibs/windows_x64/grpc_csharp_ext.dll": "../../../vsprojects/x64/Release/grpc_csharp_ext.dll",
diff --git a/src/csharp/Grpc.HealthCheck/project.json b/src/csharp/Grpc.HealthCheck/project.json
index f2e1ce5a6582fb12bbeca313def5fc7cd4fbd227..d9daef720f1ae7863bfc1e1ccfe88f6c6b36f52c 100644
--- a/src/csharp/Grpc.HealthCheck/project.json
+++ b/src/csharp/Grpc.HealthCheck/project.json
@@ -16,7 +16,10 @@
     "define": [ "SIGNED" ],
     "keyFile": "../keys/Grpc.snk",
     "publicSign": true,
-    "xmlDoc": true
+    "xmlDoc": true,
+    "compile": {
+      "includeFiles": [ "../Grpc.Core/Version.cs" ]
+    }
   },
   "dependencies": {
     "Grpc.Core": "0.16.0-dev",
diff --git a/src/csharp/Grpc.IntegrationTesting.Client/project.json b/src/csharp/Grpc.IntegrationTesting.Client/project.json
index 827e5a8e0fbc11b4788291fed128b97157443307..4a2846feea0d40cc3c8ff115994ce5422d8e51bb 100644
--- a/src/csharp/Grpc.IntegrationTesting.Client/project.json
+++ b/src/csharp/Grpc.IntegrationTesting.Client/project.json
@@ -9,6 +9,9 @@
         "keyFile": "../keys/Grpc.snk",
         "publicSign": true,
         "xmlDoc": true,
+        "compile": {
+          "includeFiles": [ "../Grpc.Core/Version.cs" ]
+        },
         "copyToOutput": {
           "include": "data/*",
           "mappings": {
@@ -26,6 +29,9 @@
         "keyFile": "../keys/Grpc.snk",
         "publicSign": true,
         "xmlDoc": true,
+        "compile": {
+          "includeFiles": [ "../Grpc.Core/Version.cs" ]
+        },
         "copyToOutput": {
           "include": "data/*",
           "mappings": {
diff --git a/src/csharp/Grpc.IntegrationTesting.QpsWorker/project.json b/src/csharp/Grpc.IntegrationTesting.QpsWorker/project.json
index 827e5a8e0fbc11b4788291fed128b97157443307..4a2846feea0d40cc3c8ff115994ce5422d8e51bb 100644
--- a/src/csharp/Grpc.IntegrationTesting.QpsWorker/project.json
+++ b/src/csharp/Grpc.IntegrationTesting.QpsWorker/project.json
@@ -9,6 +9,9 @@
         "keyFile": "../keys/Grpc.snk",
         "publicSign": true,
         "xmlDoc": true,
+        "compile": {
+          "includeFiles": [ "../Grpc.Core/Version.cs" ]
+        },
         "copyToOutput": {
           "include": "data/*",
           "mappings": {
@@ -26,6 +29,9 @@
         "keyFile": "../keys/Grpc.snk",
         "publicSign": true,
         "xmlDoc": true,
+        "compile": {
+          "includeFiles": [ "../Grpc.Core/Version.cs" ]
+        },
         "copyToOutput": {
           "include": "data/*",
           "mappings": {
diff --git a/src/csharp/Grpc.IntegrationTesting.Server/project.json b/src/csharp/Grpc.IntegrationTesting.Server/project.json
index 827e5a8e0fbc11b4788291fed128b97157443307..4a2846feea0d40cc3c8ff115994ce5422d8e51bb 100644
--- a/src/csharp/Grpc.IntegrationTesting.Server/project.json
+++ b/src/csharp/Grpc.IntegrationTesting.Server/project.json
@@ -9,6 +9,9 @@
         "keyFile": "../keys/Grpc.snk",
         "publicSign": true,
         "xmlDoc": true,
+        "compile": {
+          "includeFiles": [ "../Grpc.Core/Version.cs" ]
+        },
         "copyToOutput": {
           "include": "data/*",
           "mappings": {
@@ -26,6 +29,9 @@
         "keyFile": "../keys/Grpc.snk",
         "publicSign": true,
         "xmlDoc": true,
+        "compile": {
+          "includeFiles": [ "../Grpc.Core/Version.cs" ]
+        },
         "copyToOutput": {
           "include": "data/*",
           "mappings": {
diff --git a/src/csharp/Grpc.IntegrationTesting.StressClient/project.json b/src/csharp/Grpc.IntegrationTesting.StressClient/project.json
index 827e5a8e0fbc11b4788291fed128b97157443307..4a2846feea0d40cc3c8ff115994ce5422d8e51bb 100644
--- a/src/csharp/Grpc.IntegrationTesting.StressClient/project.json
+++ b/src/csharp/Grpc.IntegrationTesting.StressClient/project.json
@@ -9,6 +9,9 @@
         "keyFile": "../keys/Grpc.snk",
         "publicSign": true,
         "xmlDoc": true,
+        "compile": {
+          "includeFiles": [ "../Grpc.Core/Version.cs" ]
+        },
         "copyToOutput": {
           "include": "data/*",
           "mappings": {
@@ -26,6 +29,9 @@
         "keyFile": "../keys/Grpc.snk",
         "publicSign": true,
         "xmlDoc": true,
+        "compile": {
+          "includeFiles": [ "../Grpc.Core/Version.cs" ]
+        },
         "copyToOutput": {
           "include": "data/*",
           "mappings": {
diff --git a/src/csharp/Grpc.IntegrationTesting/project.json b/src/csharp/Grpc.IntegrationTesting/project.json
index 9a364f2ff764022a0a79981a57a1486066dcc092..6297600ddc31e58995f532e89c09dad7b8e76615 100644
--- a/src/csharp/Grpc.IntegrationTesting/project.json
+++ b/src/csharp/Grpc.IntegrationTesting/project.json
@@ -9,6 +9,9 @@
         "keyFile": "../keys/Grpc.snk",
         "publicSign": true,
         "xmlDoc": true,
+        "compile": {
+          "includeFiles": [ "../Grpc.Core/Version.cs" ]
+        },
         "copyToOutput": {
           "include": "data/*",
           "mappings": {
@@ -26,6 +29,9 @@
         "keyFile": "../keys/Grpc.snk",
         "publicSign": true,
         "xmlDoc": true,
+        "compile": {
+          "includeFiles": [ "../Grpc.Core/Version.cs" ]
+        },
         "copyToOutput": {
           "include": "data/*",
           "mappings": {