diff --git a/msvc/pugixml_vs2012.sln b/msvc/pugixml_vs2012.sln
new file mode 100644
index 0000000..f885d7e
--- /dev/null
+++ b/msvc/pugixml_vs2012.sln
@@ -0,0 +1,36 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pugixml_vs2012", "pugixml_vs2012.vcxproj", "{89A1E353-E2DC-495C-B403-742BE206ACED}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pugixml_vs2012_static", "pugixml_vs2012_static.vcxproj", "{068BB22F-F8D8-417F-AA4A-41795D4594C6}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {89A1E353-E2DC-495C-B403-742BE206ACED}.Debug|Win32.ActiveCfg = Debug|Win32
+ {89A1E353-E2DC-495C-B403-742BE206ACED}.Debug|Win32.Build.0 = Debug|Win32
+ {89A1E353-E2DC-495C-B403-742BE206ACED}.Debug|x64.ActiveCfg = Debug|x64
+ {89A1E353-E2DC-495C-B403-742BE206ACED}.Debug|x64.Build.0 = Debug|x64
+ {89A1E353-E2DC-495C-B403-742BE206ACED}.Release|Win32.ActiveCfg = Release|Win32
+ {89A1E353-E2DC-495C-B403-742BE206ACED}.Release|Win32.Build.0 = Release|Win32
+ {89A1E353-E2DC-495C-B403-742BE206ACED}.Release|x64.ActiveCfg = Release|x64
+ {89A1E353-E2DC-495C-B403-742BE206ACED}.Release|x64.Build.0 = Release|x64
+ {068BB22F-F8D8-417F-AA4A-41795D4594C6}.Debug|Win32.ActiveCfg = Debug|Win32
+ {068BB22F-F8D8-417F-AA4A-41795D4594C6}.Debug|Win32.Build.0 = Debug|Win32
+ {068BB22F-F8D8-417F-AA4A-41795D4594C6}.Debug|x64.ActiveCfg = Debug|x64
+ {068BB22F-F8D8-417F-AA4A-41795D4594C6}.Debug|x64.Build.0 = Debug|x64
+ {068BB22F-F8D8-417F-AA4A-41795D4594C6}.Release|Win32.ActiveCfg = Release|Win32
+ {068BB22F-F8D8-417F-AA4A-41795D4594C6}.Release|Win32.Build.0 = Release|Win32
+ {068BB22F-F8D8-417F-AA4A-41795D4594C6}.Release|x64.ActiveCfg = Release|x64
+ {068BB22F-F8D8-417F-AA4A-41795D4594C6}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/msvc/pugixml_vs2012.vcxproj b/msvc/pugixml_vs2012.vcxproj
new file mode 100644
index 0000000..d7ea77b
--- /dev/null
+++ b/msvc/pugixml_vs2012.vcxproj
@@ -0,0 +1,90 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+ {89A1E353-E2DC-495C-B403-742BE206ACED}
+ pugixml
+ Win32Proj
+
+
+
+ StaticLibrary
+ MultiByte
+ true
+ v110
+
+
+ StaticLibrary
+ MultiByte
+ true
+ v110
+
+
+ StaticLibrary
+ MultiByte
+ true
+ false
+ v110
+
+
+ StaticLibrary
+ MultiByte
+ true
+ false
+ v110
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.30319.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/msvc/pugixml_vs2012_static.vcxproj b/msvc/pugixml_vs2012_static.vcxproj
new file mode 100644
index 0000000..63ecea7
--- /dev/null
+++ b/msvc/pugixml_vs2012_static.vcxproj
@@ -0,0 +1,94 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+ {068BB22F-F8D8-417F-AA4A-41795D4594C6}
+ pugixml
+ Win32Proj
+
+
+
+ StaticLibrary
+ MultiByte
+ true
+ v110
+
+
+ StaticLibrary
+ MultiByte
+ true
+ v110
+
+
+ StaticLibrary
+ MultiByte
+ true
+ false
+ v110
+
+
+ StaticLibrary
+ MultiByte
+ true
+ false
+ v110
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.30319.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file