diff --git a/build/Google.ProtocolBuffers.nuspec b/build/Google.ProtocolBuffers.nuspec
new file mode 100644
index 0000000000..fb86471bd8
--- /dev/null
+++ b/build/Google.ProtocolBuffers.nuspec
@@ -0,0 +1,66 @@
+
+
+
+ Google.ProtocolBuffers
+ $version$
+ Jon Skeet
+ Jon Skeet
+ http://code.google.com/p/protobuf-csharp-port/source/browse/license.txt
+ http://code.google.com/p/protobuf-csharp-port/
+ false
+ Copyright 2008 Google Inc. All rights reserved.
+ Protocol Buffers Binary Serialization Format Google
+
+ Google Protocol Buffers
+ A managed code generator and library for Google's data interchange format.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/Google.ProtocolBuffersLite.nuspec b/build/Google.ProtocolBuffersLite.nuspec
new file mode 100644
index 0000000000..9ce8b06299
--- /dev/null
+++ b/build/Google.ProtocolBuffersLite.nuspec
@@ -0,0 +1,66 @@
+
+
+
+ Google.ProtocolBuffersLite
+ $version$
+ Jon Skeet
+ Jon Skeet
+ http://code.google.com/p/protobuf-csharp-port/source/browse/license.txt
+ http://code.google.com/p/protobuf-csharp-port/
+ false
+ Copyright 2008 Google Inc. All rights reserved.
+ Protocol Buffers Binary Serialization Format Google
+
+ Google Protocol Buffers
+ A managed code generator and library for Google's data interchange format.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/PublishRelease.bat b/build/PublishRelease.bat
index 55329e246b..15f7bdcbc7 100644
--- a/build/PublishRelease.bat
+++ b/build/PublishRelease.bat
@@ -1,15 +1,17 @@
REM @ECHO OFF
+@PUSHD %~dp0
@IF "%1" == "version" @GOTO VERSION
@IF "%1" == "build" @GOTO BUILD
@IF "%1" == "fpush" @GOTO FILEPUSH
+@IF "%1" == "nupush" @GOTO NUGETPUSH
@IF "%1" == "push" @GOTO PUSH
@GOTO HELP
:VERSION
-IF NOT EXIST "%~dp0\..\build_temp\" MD "%~dp0\..\build_temp\"
-hg log -l 1 --template "Revision: {rev}" > %~dp0\..\build_temp\revision.txt
-CMD.exe /Q /C "CD %~dp0\.. && lib\StampVersion.exe /major:2 /minor:3 /build:0 /revision:build_temp\revision.txt"
-@TYPE src\ProtocolBuffers\Properties\AssemblyInfo.cs | FIND "AssemblyFileVersion"
+IF NOT EXIST "..\build_temp\" MD "..\build_temp\"
+hg log -l 1 --template "Revision: {rev}" > ..\build_temp\revision.txt
+CMD.exe /Q /C "CD .. && lib\StampVersion.exe /major:2 /minor:4 /build:1 /revision:build_temp\revision.txt"
+@TYPE ..\src\ProtocolBuffers\Properties\AssemblyInfo.cs | FIND "AssemblyFileVersion"
@ECHO.
@ECHO NEXT: Use the above version number to run "%0 build {Version}"
@ECHO.
@@ -19,18 +21,20 @@ CMD.exe /Q /C "CD %~dp0\.. && lib\StampVersion.exe /major:2 /minor:3 /build:0 /r
@IF "%2" == "" @GOTO HELP
IF EXIST "C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\sn.exe" SET WIN7SDK_DIR=C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\
-IF NOT EXIST "%~dp0\..\release-key" hg clone https://bitbucket.org/rknapp/protobuf-csharp-port-keyfile %~dp0\..\release-key
-SET PROTOBUF_KEY_FILE="/p:AssemblyOriginatorKeyFile=%~dp0\..\release-key\Google.ProtocolBuffers.snk"
+IF NOT EXIST "..\release-key" hg clone https://bitbucket.org/rknapp/protobuf-csharp-port-keyfile ..\release-key
+SET PROTOBUF_KEY_FILE="/p:AssemblyOriginatorKeyFile=%~dp0..\release-key\Google.ProtocolBuffers.snk"
-MD "%~dp0\%2"
-CMD.exe /Q /C "CD %~dp0 && GenerateCompletePackage.bat"
-COPY /y %~dp0\..\build_output\AllBinariesAndSource.zip %~dp0\%2\protobuf-csharp-port-%2-full-binaries.zip
-CMD.exe /Q /C "CD %~dp0 && GenerateReleasePackage.bat"
-COPY /y %~dp0\..\build_output\ReleaseBinaries.zip %~dp0\%2\protobuf-csharp-port-%2-release-binaries.zip
-hg archive %~dp0\%2\protobuf-csharp-port-%2-source.zip
+MD "%2"
+CMD.exe /Q /C "GenerateCompletePackage.bat"
+COPY /y ..\build_output\AllBinariesAndSource.zip %2\protobuf-csharp-port-%2-full-binaries.zip
+CMD.exe /Q /C "GenerateReleasePackage.bat"
+COPY /y ..\build_output\ReleaseBinaries.zip %2\protobuf-csharp-port-%2-release-binaries.zip
+..\lib\NuGet.exe pack Google.ProtocolBuffers.nuspec -Symbols -Version %2 -NoPackageAnalysis -OutputDirectory %2
+..\lib\NuGet.exe pack Google.ProtocolBuffersLite.nuspec -Symbols -Version %2 -NoPackageAnalysis -OutputDirectory %2
+hg archive %2\protobuf-csharp-port-%2-source.zip
SET PROTOBUF_KEY_FILE=
-"%WIN7SDK_DIR%sn.exe" -T build_output\Package\Release\Google.ProtocolBuffers.dll
+"%WIN7SDK_DIR%sn.exe" -T ..\build_output\Package\Release\Google.ProtocolBuffers.dll
@ECHO.
@ECHO ***********************************************************
@ECHO IMPORTANT: Verify the above key output is: 55f7125234beb589
@@ -48,15 +52,34 @@ SET PROTOBUF_KEY_FILE=
hg commit -m "version %2"
hg tag %2
hg push
+@ECHO.
+@ECHO NEXT: Verify the repository state and run "%0 fpush %2 {google-code-user} {google-code-password}"
+@ECHO.
+@GOTO EXIT
:FILEPUSH
-SET GOOGLEUPLOAD=python.exe %~dp0\googlecode_upload.py --project protobuf-csharp-port --user "%3" --password "%4"
+SET GOOGLEUPLOAD=python.exe googlecode_upload.py --project protobuf-csharp-port --user "%3" --password "%4"
-%GOOGLEUPLOAD% --labels Type-Source,Featured --summary "Version %2 source" %~dp0\%2\protobuf-csharp-port-%2-source.zip
-%GOOGLEUPLOAD% --labels Type-Executable,Featured --summary "Version %2 binaries (all configurations)" %~dp0\%2\protobuf-csharp-port-%2-full-binaries.zip
-%GOOGLEUPLOAD% --labels Type-Executable,Featured --summary "Version %2 binaries (release only)" %~dp0\%2\protobuf-csharp-port-%2-release-binaries.zip
+%GOOGLEUPLOAD% --labels Type-Source,Featured --summary "Version %2 source" %2\protobuf-csharp-port-%2-source.zip
+%GOOGLEUPLOAD% --labels Type-Executable,Featured --summary "Version %2 binaries (all configurations)" %2\protobuf-csharp-port-%2-full-binaries.zip
+%GOOGLEUPLOAD% --labels Type-Executable,Featured --summary "Version %2 binaries (release only)" %2\protobuf-csharp-port-%2-release-binaries.zip
@SET GOOGLEUPLOAD=
+@ECHO.
+@ECHO NEXT: Verify the uploads and run "%0 nupush %2"
+@ECHO.
+@GOTO EXIT
+
+:NUGETPUSH
+
+..\lib\NuGet.exe push "%2\Google.ProtocolBuffers.%2.nupkg"
+..\lib\NuGet.exe push "%2\Google.ProtocolBuffersLite.%2.nupkg"
+..\lib\NuGet.exe push "%2\Google.ProtocolBuffers.%2.symbols.nupkg"
+..\lib\NuGet.exe push "%2\Google.ProtocolBuffersLite.%2.symbols.nupkg"
+
+@ECHO.
+@ECHO NEXT: Verify the nuget packages at http://nuget.org
+@ECHO.
@GOTO EXIT
:HELP
@@ -65,7 +88,10 @@ SET GOOGLEUPLOAD=python.exe %~dp0\googlecode_upload.py --project protobuf-csharp
@ECHO 1. %0 version
@ECHO 2. %0 build {version from step 1}
@ECHO 3. %0 push {version from step 1} {google-code-user} {google-code-password}
+@ECHO 4. %0 fpush {version from step 1} {google-code-user} {google-code-password}
+@ECHO 5. %0 nupush {version from step 1}
@ECHO.
@GOTO EXIT
-:EXIT
\ No newline at end of file
+:EXIT
+@POPD
\ No newline at end of file
diff --git a/build/build.csproj b/build/build.csproj
index 16dd69a0fe..fb29046181 100644
--- a/build/build.csproj
+++ b/build/build.csproj
@@ -149,14 +149,15 @@
-
+
+
-
+
\protos
diff --git a/build/nuspec.xsd b/build/nuspec.xsd
new file mode 100644
index 0000000000..db744d1a4f
--- /dev/null
+++ b/build/nuspec.xsd
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/NuGet.exe b/lib/NuGet.exe
new file mode 100644
index 0000000000..c3960af621
Binary files /dev/null and b/lib/NuGet.exe differ
diff --git a/src/ProtocolBuffers.Serialization/ProtocolBuffersLite.Serialization.csproj b/src/ProtocolBuffers.Serialization/ProtocolBuffersLite.Serialization.csproj
new file mode 100644
index 0000000000..6f6dd45e3d
--- /dev/null
+++ b/src/ProtocolBuffers.Serialization/ProtocolBuffersLite.Serialization.csproj
@@ -0,0 +1,156 @@
+
+
+
+ Debug
+ AnyCPU
+ 9.0.30729
+ 2.0
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}
+ Library
+ Properties
+ Google.ProtocolBuffers.Serialization
+ Google.ProtocolBuffersLite.Serialization
+ v2.0
+ 512
+ true
+ ..\..\keys\Google.ProtocolBuffers.snk
+
+
+
+
+ 3.5
+ publish\
+ true
+ Disk
+ false
+ Foreground
+ 7
+ Days
+ false
+ false
+ true
+ 0
+ 1.0.0.%2a
+ false
+ false
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\
+ $(OutputPath)\$(AssemblyName).xml
+ 1591, 1570, 1571, 1572, 1573, 1574
+ DEBUG;TRACE
+ prompt
+ 4
+ true
+ AllRules.ruleset
+
+
+ pdbonly
+ true
+ bin\Release\
+ $(OutputPath)\$(AssemblyName).xml
+ 1591, 1570, 1571, 1572, 1573, 1574
+ TRACE
+ prompt
+ 4
+ true
+ AllRules.ruleset
+
+
+ true
+ full
+ false
+ bin\Debug_Silverlight2\
+ $(OutputPath)\$(AssemblyName).xml
+ 1591, 1570, 1571, 1572, 1573, 1574
+ DEBUG;TRACE;SILVERLIGHT2
+ prompt
+ 4
+ true
+ AllRules.ruleset
+
+
+ pdbonly
+ true
+ bin\Release_Silverlight2\
+ $(OutputPath)\$(AssemblyName).xml
+ 1591, 1570, 1571, 1572, 1573, 1574
+ TRACE;SILVERLIGHT2
+ prompt
+ 4
+ true
+ AllRules.ruleset
+
+
+
+
+
+
+
+ False
+ ..\..\lib\System.Core\System.Core.dll
+ False
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ False
+ .NET Framework 3.5 SP1 Client Profile
+ false
+
+
+ False
+ .NET Framework 3.5 SP1
+ true
+
+
+ False
+ Windows Installer 3.1
+ true
+
+
+
+
+ {6969BDCE-D925-43F3-94AC-A531E6DF2591}
+ ProtocolBuffersLite
+ False
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/ProtocolBuffers.sln b/src/ProtocolBuffers.sln
index 6d326c231a..03b4601a1c 100644
--- a/src/ProtocolBuffers.sln
+++ b/src/ProtocolBuffers.sln
@@ -1,5 +1,5 @@
Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
+-# Visual Studio 2010
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "proto", "proto", "{1F896D5C-5FC2-4671-9216-781CB8187EC7}"
ProjectSection(SolutionItems) = preProject
..\protos\tutorial\addressbook.proto = ..\protos\tutorial\addressbook.proto
@@ -63,12 +63,16 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{66ED1950
..\build\Common.targets = ..\build\Common.targets
..\build\GenerateCompletePackage.bat = ..\build\GenerateCompletePackage.bat
..\build\GenerateReleasePackage.bat = ..\build\GenerateReleasePackage.bat
+ ..\build\Google.ProtocolBuffers.nuspec = ..\build\Google.ProtocolBuffers.nuspec
+ ..\build\Google.ProtocolBuffersLite.nuspec = ..\build\Google.ProtocolBuffersLite.nuspec
..\build\PublishRelease.bat = ..\build\PublishRelease.bat
..\build\RunBenchmarks.bat = ..\build\RunBenchmarks.bat
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffers.Serialization", "ProtocolBuffers.Serialization\ProtocolBuffers.Serialization.csproj", "{231391AF-449C-4A39-986C-AD7F270F4750}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffersLite.Serialization", "ProtocolBuffers.Serialization\ProtocolBuffersLite.Serialization.csproj", "{E067A59D-9D0A-4A1F-92B1-38E4457241D1}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug_Silverlight2|Any CPU = Debug_Silverlight2|Any CPU
@@ -155,6 +159,14 @@ Global
{231391AF-449C-4A39-986C-AD7F270F4750}.Release_Silverlight2|Any CPU.Build.0 = Release_Silverlight2|Any CPU
{231391AF-449C-4A39-986C-AD7F270F4750}.Release|Any CPU.ActiveCfg = Release|Any CPU
{231391AF-449C-4A39-986C-AD7F270F4750}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}.Debug_Silverlight2|Any CPU.ActiveCfg = Debug_Silverlight2|Any CPU
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}.Debug_Silverlight2|Any CPU.Build.0 = Debug_Silverlight2|Any CPU
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}.Release_Silverlight2|Any CPU.ActiveCfg = Release_Silverlight2|Any CPU
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}.Release_Silverlight2|Any CPU.Build.0 = Release_Silverlight2|Any CPU
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/src/ProtocolBuffers/ProtocolBuffersLite.csproj b/src/ProtocolBuffers/ProtocolBuffersLite.csproj
index e2d44785ab..bc58bf1145 100644
--- a/src/ProtocolBuffers/ProtocolBuffersLite.csproj
+++ b/src/ProtocolBuffers/ProtocolBuffersLite.csproj
@@ -99,6 +99,7 @@
+
@@ -109,17 +110,18 @@
Code
+
-
\ No newline at end of file
diff --git a/src/ProtocolBuffers2008.sln b/src/ProtocolBuffers2008.sln
index 26924c605f..f0a1e4d10f 100644
--- a/src/ProtocolBuffers2008.sln
+++ b/src/ProtocolBuffers2008.sln
@@ -23,6 +23,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "unittest", "unittest", "{C8
..\protos\extest\unittest_generic_services.proto = ..\protos\extest\unittest_generic_services.proto
..\protos\google\protobuf\unittest_import.proto = ..\protos\google\protobuf\unittest_import.proto
..\protos\google\protobuf\unittest_import_lite.proto = ..\protos\google\protobuf\unittest_import_lite.proto
+ ..\protos\extest\unittest_issues.proto = ..\protos\extest\unittest_issues.proto
..\protos\google\protobuf\unittest_lite.proto = ..\protos\google\protobuf\unittest_lite.proto
..\protos\google\protobuf\unittest_lite_imports_nonlite.proto = ..\protos\google\protobuf\unittest_lite_imports_nonlite.proto
..\protos\google\protobuf\unittest_mset.proto = ..\protos\google\protobuf\unittest_mset.proto
@@ -63,12 +64,16 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{66ED1950
..\build\Common.targets = ..\build\Common.targets
..\build\GenerateCompletePackage.bat = ..\build\GenerateCompletePackage.bat
..\build\GenerateReleasePackage.bat = ..\build\GenerateReleasePackage.bat
+ ..\build\Google.ProtocolBuffers.nuspec = ..\build\Google.ProtocolBuffers.nuspec
+ ..\build\Google.ProtocolBuffersLite.nuspec = ..\build\Google.ProtocolBuffersLite.nuspec
..\build\PublishRelease.bat = ..\build\PublishRelease.bat
..\build\RunBenchmarks.bat = ..\build\RunBenchmarks.bat
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffers.Serialization", "ProtocolBuffers.Serialization\ProtocolBuffers.Serialization.csproj", "{231391AF-449C-4A39-986C-AD7F270F4750}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffersLite.Serialization", "ProtocolBuffers.Serialization\ProtocolBuffersLite.Serialization.csproj", "{E067A59D-9D0A-4A1F-92B1-38E4457241D1}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug_Silverlight2|Any CPU = Debug_Silverlight2|Any CPU
@@ -155,6 +160,14 @@ Global
{231391AF-449C-4A39-986C-AD7F270F4750}.Release_Silverlight2|Any CPU.Build.0 = Release_Silverlight2|Any CPU
{231391AF-449C-4A39-986C-AD7F270F4750}.Release|Any CPU.ActiveCfg = Release|Any CPU
{231391AF-449C-4A39-986C-AD7F270F4750}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}.Debug_Silverlight2|Any CPU.ActiveCfg = Debug_Silverlight2|Any CPU
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}.Debug_Silverlight2|Any CPU.Build.0 = Debug_Silverlight2|Any CPU
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}.Release_Silverlight2|Any CPU.ActiveCfg = Release_Silverlight2|Any CPU
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}.Release_Silverlight2|Any CPU.Build.0 = Release_Silverlight2|Any CPU
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE