enable building nuget package
diff --git a/csharp/.gitignore b/csharp/.gitignore
index d7dcef5..91baa54 100644
--- a/csharp/.gitignore
+++ b/csharp/.gitignore
@@ -5,23 +5,10 @@
 src/AddressBook/obj
 src/ProtocolBuffers/bin/
 src/ProtocolBuffers/obj/
-src/ProtocolBuffers/objCF
-src/ProtocolBuffers.Serialization/bin/
-src/ProtocolBuffers.Serialization/obj/
 src/ProtocolBuffers.Test/bin/
 src/ProtocolBuffers.Test/obj/
-src/ProtocolBuffersLite.Test/bin/
-src/ProtocolBuffersLite.Test/obj/
-src/ProtoBench/bin/
-src/ProtoBench/obj/
 src/ProtoDump/bin/
 src/ProtoDump/obj/
-src/ProtoGen/bin/
-src/ProtoGen/obj/
-src/ProtoGen.Test/bin/
-src/ProtoGen.Test/obj/
-src/ProtoMunge/bin/
-src/ProtoMunge/obj/
 mono/bin
 mono/tmp
 mono/protoc
@@ -36,6 +23,7 @@
 #
 *.user
 *.suo
+*.nupkg
 _ReSharper.*
 *.sln.cache
 mono/TestResult.xml
diff --git a/csharp/build_packages.bat b/csharp/build_packages.bat
new file mode 100644
index 0000000..315c150
--- /dev/null
+++ b/csharp/build_packages.bat
@@ -0,0 +1,13 @@
+@rem Builds Google.Protobuf NuGet packages
+
+@rem Adjust the location of nuget.exe
+set NUGET=C:\nuget\nuget.exe
+
+@rem Build src/ProtocolBuffers.sln solution in Release configuration first.
+%NUGET% pack src\ProtocolBuffers\Google.Protobuf.nuspec -Symbols || goto :error
+
+goto :EOF
+
+:error
+echo Failed!
+exit /b %errorlevel%
diff --git a/csharp/src/ProtocolBuffers/Google.Protobuf.nuspec b/csharp/src/ProtocolBuffers/Google.Protobuf.nuspec
new file mode 100644
index 0000000..4970499
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Google.Protobuf.nuspec
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<package>
+  <metadata>
+    <id>Google.Protobuf</id>
+    <title>Google Protocol Buffers C#</title>
+    <summary>C# runtime library for Protocol Buffers - Google's data interchange format.</summary>
+    <description>See project site for more info.</description>
+    <version>3.0.0-experimental</version>
+    <authors>Google Inc.</authors>
+    <owners>protobuf-packages</owners>
+    <licenseUrl>https://github.com/google/protobuf/blob/master/LICENSE</licenseUrl>
+    <projectUrl>https://github.com/google/protobuf</projectUrl>
+    <requireLicenseAcceptance>false</requireLicenseAcceptance>
+    <releaseNotes>Experimental version of C# Protocol Buffers</releaseNotes>
+    <copyright>Copyright 2015, Google Inc.</copyright>
+    <tags>Protocol Buffers Binary Serialization Format Google proto proto3</tags>
+  </metadata>
+  <files>
+    <file src="bin/Release/Google.Protobuf.dll" target="lib/portable-net45+win8+wp8+wpa81" />
+	  <file src="bin/Release/Google.Protobuf.pdb" target="lib/portable-net45+win8+wp8+wpa81" />
+	  <file src="bin/Release/Google.Protobuf.xml" target="lib/portable-net45+win8+wp8+wpa81" />
+	  <file src="**\*.cs" target="src" />
+  </files>
+</package>
diff --git a/csharp/src/ProtocolBuffers/ProtocolBuffers.csproj b/csharp/src/ProtocolBuffers/ProtocolBuffers.csproj
index aa4adcc..acfade5 100644
--- a/csharp/src/ProtocolBuffers/ProtocolBuffers.csproj
+++ b/csharp/src/ProtocolBuffers/ProtocolBuffers.csproj
@@ -97,6 +97,9 @@
     <Compile Include="ThrowHelper.cs" />

     <Compile Include="WireFormat.cs" />

   </ItemGroup>

+  <ItemGroup>

+    <None Include="Google.Protobuf.nuspec" />

+  </ItemGroup>

   <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />

   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 

        Other similar extension points exist, see Microsoft.Common.targets.