diff --git a/spannerlib/wrappers/spannerlib-dotnet/.gitignore b/spannerlib/wrappers/spannerlib-dotnet/.gitignore
index 0f52e2c5..1732425d 100644
--- a/spannerlib/wrappers/spannerlib-dotnet/.gitignore
+++ b/spannerlib/wrappers/spannerlib-dotnet/.gitignore
@@ -3,3 +3,4 @@ obj
bin
*DotSettings.user
binaries
+runtimes
diff --git a/spannerlib/wrappers/spannerlib-dotnet/build-grpc-server.sh b/spannerlib/wrappers/spannerlib-dotnet/build-grpc-server.sh
index b4aedb36..757478fc 100755
--- a/spannerlib/wrappers/spannerlib-dotnet/build-grpc-server.sh
+++ b/spannerlib/wrappers/spannerlib-dotnet/build-grpc-server.sh
@@ -9,15 +9,15 @@ copy_binary() {
local platform=$1 # e.g., osx-arm64
local ext=${2:-}
local src_dir="../../grpc-server/binaries/${platform}"
- local dest_dir="spannerlib-dotnet-grpc-server/binaries/${platform}"
+ local dest_dir="spannerlib-dotnet-grpc-server/runtimes/${platform}/native"
local filename="spannerlib_grpc_server${ext}"
mkdir -p "${dest_dir}"
cp "${src_dir}/${filename}" "${dest_dir}/${filename}"
}
-mkdir -p spannerlib-dotnet-grpc-server/binaries/any
-rm spannerlib-dotnet-grpc-server/binaries/any/spannerlib_grpc_server 2> /dev/null
+mkdir -p spannerlib-dotnet-grpc-server/runtimes/any/native
+rm spannerlib-dotnet-grpc-server/runtimes/any/native/spannerlib_grpc_server 2> /dev/null
copy_binary "osx-arm64"
copy_binary "linux-x64"
diff --git a/spannerlib/wrappers/spannerlib-dotnet/build.sh b/spannerlib/wrappers/spannerlib-dotnet/build.sh
index 2e71a82d..02958879 100755
--- a/spannerlib/wrappers/spannerlib-dotnet/build.sh
+++ b/spannerlib/wrappers/spannerlib-dotnet/build.sh
@@ -39,6 +39,8 @@ echo "Skip windows: $SKIP_WINDOWS"
# Remove existing builds
rm -r ./spannerlib-dotnet-native/libraries 2> /dev/null
rm -r ./spannerlib-dotnet-grpc-server/binaries 2> /dev/null
+rm -r ./spannerlib-dotnet-native/runtimes 2> /dev/null
+rm -r ./spannerlib-dotnet-grpc-server/runtimes 2> /dev/null
rm -r ./*/bin 2> /dev/null
rm -r ./*/obj 2> /dev/null
# Remove all local nuget packages to force the use of the new ones that will be built in this script.
diff --git a/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-grpc-impl/spannerlib-dotnet-grpc-impl.csproj b/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-grpc-impl/spannerlib-dotnet-grpc-impl.csproj
index 11f32352..6bf450fa 100644
--- a/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-grpc-impl/spannerlib-dotnet-grpc-impl.csproj
+++ b/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-grpc-impl/spannerlib-dotnet-grpc-impl.csproj
@@ -12,10 +12,10 @@
-
+
diff --git a/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-grpc-server/spannerlib-dotnet-grpc-server.csproj b/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-grpc-server/spannerlib-dotnet-grpc-server.csproj
index 32cdb91b..c15c1f2c 100644
--- a/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-grpc-server/spannerlib-dotnet-grpc-server.csproj
+++ b/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-grpc-server/spannerlib-dotnet-grpc-server.csproj
@@ -16,10 +16,10 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-grpc-tests/spannerlib-dotnet-grpc-tests.csproj b/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-grpc-tests/spannerlib-dotnet-grpc-tests.csproj
index dd920a16..6a18964b 100644
--- a/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-grpc-tests/spannerlib-dotnet-grpc-tests.csproj
+++ b/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-grpc-tests/spannerlib-dotnet-grpc-tests.csproj
@@ -24,6 +24,7 @@
+
diff --git a/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-tests/spannerlib-dotnet-tests.csproj b/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-tests/spannerlib-dotnet-tests.csproj
index c7db7956..af0ac403 100644
--- a/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-tests/spannerlib-dotnet-tests.csproj
+++ b/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-tests/spannerlib-dotnet-tests.csproj
@@ -25,6 +25,7 @@
+