diff --git a/.github/workflows/publish-dotnet-wrapper.yml b/.github/workflows/publish-dotnet-wrapper.yml
new file mode 100644
index 00000000..40272750
--- /dev/null
+++ b/.github/workflows/publish-dotnet-wrapper.yml
@@ -0,0 +1,56 @@
+name: Publish SpannerLib .NET NuGet Package
+
+on:
+ # TODO: Remove
+ pull_request:
+ workflow_dispatch:
+
+env:
+ DOTNET_VERSION: '8.0.x' # Set your .NET version here
+ PROJECT_PATH: 'spannerlib/wrappers/spannerlib-dotnet'
+
+jobs:
+ publish:
+ runs-on: ubuntu-latest
+
+ # These permissions are required to push packages to GitHub
+ permissions:
+ packages: write
+ contents: read
+
+ steps:
+ - name: Checkout Code
+ uses: actions/checkout@v4
+
+ - name: Setup .NET SDK
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: ${{ env.DOTNET_VERSION }}
+ source-url: https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json
+ env:
+ # This automatically authenticates the setup-dotnet step
+ NUGET_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Build library
+ run: ./build.sh
+ working-directory: ${{ env.PROJECT_PATH }}
+
+ - name: Restore Dependencies
+ run: dotnet restore ${{ env.PROJECT_PATH }}
+
+ - name: Build
+ run: dotnet build ${{ env.PROJECT_PATH }} --no-restore --configuration Release
+
+ - name: Pack
+ run: |
+ dotnet pack ${{ env.PROJECT_PATH }} \
+ --no-build \
+ --configuration Release \
+ --output ./nupkgs
+
+ - name: Publish to GitHub Packages
+ run: |
+ dotnet nuget push ./nupkgs/*.nupkg \
+ --source https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json \
+ --api-key ${{ secrets.GITHUB_TOKEN }} \
+ --skip-duplicate
diff --git a/spannerlib/wrappers/spannerlib-dotnet/publish.sh b/spannerlib/wrappers/spannerlib-dotnet/publish.sh
index fb4a37c9..be78f93d 100755
--- a/spannerlib/wrappers/spannerlib-dotnet/publish.sh
+++ b/spannerlib/wrappers/spannerlib-dotnet/publish.sh
@@ -12,6 +12,7 @@
# Remove existing packages to ensure that only the packages that are built in the next step will be pushed to nuget.
find ./**/bin/Release -type f -name "Alpha*.nupkg" -exec rm {} \;
+dotnet build
# Pack and publish to nuget
dotnet pack
find ./**/bin/Release -type f -name "Alpha*.nupkg" -exec \
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..2818e40f 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
@@ -6,13 +6,21 @@
enable
default
Alpha.Google.Cloud.SpannerLib.GrpcImpl
- 1.0.0-alpha.20260119112406
+ 1.0.0-alpha.20260120171456
Google
+ true
+ true
+ https://github.com/googleapis/go-sql-spanner
+ true
+
+
+ true
-
+
+
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 72f9b641..9d870a48 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
@@ -8,11 +8,19 @@
Alpha.Google.Cloud.SpannerLib.GrpcServer
SpannerLib Grpc Server
Google
- 1.0.0-alpha.20260119112406
+ 1.0.0-alpha.20260120171456
+ true
+ true
+ https://github.com/googleapis/go-sql-spanner
+ true
+
+
+ true
+
diff --git a/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-grpc-v1/spannerlib-dotnet-grpc-v1.csproj b/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-grpc-v1/spannerlib-dotnet-grpc-v1.csproj
index 2fab35ae..e49a7ab5 100644
--- a/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-grpc-v1/spannerlib-dotnet-grpc-v1.csproj
+++ b/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-grpc-v1/spannerlib-dotnet-grpc-v1.csproj
@@ -6,13 +6,22 @@
enable
default
Alpha.Google.Cloud.SpannerLib.Grpc.V1
- 1.0.0-alpha.20260119112406
+ 1.0.0-alpha.20260120171456
Google
+ true
+ true
+ https://github.com/googleapis/go-sql-spanner
+ true
+
+ true
+
+
+
diff --git a/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-mockserver/spannerlib-dotnet-mockserver.csproj b/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-mockserver/spannerlib-dotnet-mockserver.csproj
index e45a0fa9..d726bc45 100644
--- a/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-mockserver/spannerlib-dotnet-mockserver.csproj
+++ b/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-mockserver/spannerlib-dotnet-mockserver.csproj
@@ -6,15 +6,23 @@
enable
enable
Alpha.Google.Cloud.SpannerLib.MockServer
- 1.0.0-alpha.20260119112406
+ 1.0.0-alpha.20260120171456
Google
default
+ true
+ true
+ https://github.com/googleapis/go-sql-spanner
+ true
+
+
+ true
+
diff --git a/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-native-impl/spannerlib-dotnet-native-impl.csproj b/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-native-impl/spannerlib-dotnet-native-impl.csproj
index 63fe9a1b..ff81cc82 100644
--- a/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-native-impl/spannerlib-dotnet-native-impl.csproj
+++ b/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-native-impl/spannerlib-dotnet-native-impl.csproj
@@ -6,8 +6,15 @@
enable
default
Alpha.Google.Cloud.SpannerLib.NativeImpl
- 1.0.0-alpha.20260119112406
+ 1.0.0-alpha.20260120171456
Google
+ true
+ true
+ https://github.com/googleapis/go-sql-spanner
+ true
+
+
+ true
@@ -16,7 +23,8 @@
-
+
+
diff --git a/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-native/spannerlib-dotnet-native.csproj b/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-native/spannerlib-dotnet-native.csproj
index 749687ca..a9bfa368 100644
--- a/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-native/spannerlib-dotnet-native.csproj
+++ b/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-native/spannerlib-dotnet-native.csproj
@@ -9,11 +9,19 @@
Alpha.Google.Cloud.SpannerLib.Native
.NET wrapper for the native SpannerLib shared library
Google
- 1.0.0-alpha.20260119112406
+ 1.0.0-alpha.20260120171456
+ true
+ true
+ https://github.com/googleapis/go-sql-spanner
+ true
+
+
+ true
+
diff --git a/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet/spannerlib-dotnet.csproj b/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet/spannerlib-dotnet.csproj
index 379d1c1d..65334924 100644
--- a/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet/spannerlib-dotnet.csproj
+++ b/spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet/spannerlib-dotnet.csproj
@@ -6,13 +6,30 @@
enable
default
Alpha.Google.Cloud.SpannerLib
- 1.0.0-alpha.20260119112406
+ 1.0.0-alpha.20260120171501
+ $(Version)
+ portable
Google
+ true
+ true
+ https://github.com/googleapis/go-sql-spanner
+ true
+ true
+
+
+
+ true
+ snupkg
+
+
+
+ true
+