diff --git a/ProGen/progen.properties b/ProGen/progen.properties
index 0f6c5289b..db541c257 100644
--- a/ProGen/progen.properties
+++ b/ProGen/progen.properties
@@ -25,5 +25,11 @@ progen.postprocess.upgrade2008to2019.deleteOriginalFile = true
progen.postprocess.upgrade2008to2019.deleteFiles = Backup;_UpgradeReport_Files;UpgradeLog.XML;UpgradeLog.htm
progen.postprocess.upgrade2008to2019.fix2019ProjectFile = true
+progen.postprocess.upgrade2008to2022.tool = ${system.env.VS150COMNTOOLS}\\..\\IDE\\DevEnv.exe
+progen.postprocess.upgrade2008to2022.args = %;/Upgrade
+progen.postprocess.upgrade2008to2022.deleteOriginalFile = true
+progen.postprocess.upgrade2008to2022.deleteFiles = Backup;_UpgradeReport_Files;UpgradeLog.XML;UpgradeLog.htm
+progen.postprocess.upgrade2008to2022.fix2022ProjectFile = true
+
progen.backupProjectFile = false
progen.solution.applicationGUID = 8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942
diff --git a/ProGen/src/ProGen.cpp b/ProGen/src/ProGen.cpp
index b1875c4c3..20cb2bc1d 100644
--- a/ProGen/src/ProGen.cpp
+++ b/ProGen/src/ProGen.cpp
@@ -3,7 +3,7 @@
//
// Visual Studio project file generator.
//
-// Copyright (c) 2010, Applied Informatics Software Engineering GmbH.
+// Copyright (c) 2010-2022, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
@@ -151,15 +151,15 @@ protected:
helpFormatter.setHeader(
"\n"
"The POCO C++ Libraries Visual Studio Project File Generator.\n"
- "Copyright (c) 2010-2020 by Applied Informatics Software Engineering GmbH.\n"
+ "Copyright (c) 2010-2022 by Applied Informatics Software Engineering GmbH.\n"
"All rights reserved.\n\n"
"This program generates project and solution files "
- "for Visual Studio .NET 2003, 2005, 2008 and 2010, 2012, 2013 and 2015 from "
- "global project templates and project-specific property files."
+ "for Visual Studio 2010 - 2022 from global project "
+ "templates and project-specific property files."
);
helpFormatter.setFooter(
"For more information, please see the POCO C++ Libraries "
- "documentation at ."
+ "documentation at ."
);
helpFormatter.format(std::cout);
}
@@ -330,6 +330,11 @@ protected:
solutionStream << "Microsoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio Version 16\r\n";
generateSolution80(solutionStream, solutionPath, solutionGUID, projectConfig, templateProps, platform, tool);
}
+ else if (tool == "vs170")
+ {
+ solutionStream << "Microsoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio Version 17\r\n";
+ generateSolution80(solutionStream, solutionPath, solutionGUID, projectConfig, templateProps, platform, tool);
+ }
}
void generateSolution80(std::ostream& solutionStream, const Poco::Path& solutionPath, const std::string& solutionGUID, const Poco::Util::AbstractConfiguration& projectConfig, const Poco::Util::AbstractConfiguration& templateProps, const std::string& platform, const std::string& tool)
@@ -545,7 +550,7 @@ protected:
}
}
- void fix2013Project(Poco::AutoPtr pProjectDoc, const std::set& configSet, const std::string& platform, const Poco::Util::AbstractConfiguration& projectProps, const Poco::Util::AbstractConfiguration& templateProps)
+ void fix20XXProject(Poco::AutoPtr pProjectDoc, const std::set& configSet, const std::string& platform, const Poco::Util::AbstractConfiguration& projectProps, const Poco::Util::AbstractConfiguration& templateProps, const std::string& platformToolset)
{
fix2010Project(pProjectDoc, configSet, platform, projectProps, templateProps);
Poco::AutoPtr pConfigurationTypeList = pProjectDoc->getElementsByTagName("ConfigurationType");
@@ -553,44 +558,33 @@ protected:
{
Poco::XML::Element* pConfigurationTypeElem = static_cast(pConfigurationTypeList->item(i));
removeElement(pConfigurationTypeElem->parentNode(), "PlatformToolset");
- appendElement(pConfigurationTypeElem->parentNode(), "PlatformToolset", "v120");
+ appendElement(pConfigurationTypeElem->parentNode(), "PlatformToolset", platformToolset);
}
}
+ void fix2013Project(Poco::AutoPtr pProjectDoc, const std::set& configSet, const std::string& platform, const Poco::Util::AbstractConfiguration& projectProps, const Poco::Util::AbstractConfiguration& templateProps)
+ {
+ fix20XXProject(pProjectDoc, configSet, platform, projectProps, templateProps, "v120");
+ }
+
void fix2015Project(Poco::AutoPtr pProjectDoc, const std::set& configSet, const std::string& platform, const Poco::Util::AbstractConfiguration& projectProps, const Poco::Util::AbstractConfiguration& templateProps)
{
- fix2010Project(pProjectDoc, configSet, platform, projectProps, templateProps);
- Poco::AutoPtr pConfigurationTypeList = pProjectDoc->getElementsByTagName("ConfigurationType");
- for (unsigned long i = 0; i < pConfigurationTypeList->length(); i++)
- {
- Poco::XML::Element* pConfigurationTypeElem = static_cast(pConfigurationTypeList->item(i));
- removeElement(pConfigurationTypeElem->parentNode(), "PlatformToolset");
- appendElement(pConfigurationTypeElem->parentNode(), "PlatformToolset", "v140");
- }
+ fix20XXProject(pProjectDoc, configSet, platform, projectProps, templateProps, "v140");
}
void fix2017Project(Poco::AutoPtr pProjectDoc, const std::set& configSet, const std::string& platform, const Poco::Util::AbstractConfiguration& projectProps, const Poco::Util::AbstractConfiguration& templateProps)
{
- fix2010Project(pProjectDoc, configSet, platform, projectProps, templateProps);
- Poco::AutoPtr pConfigurationTypeList = pProjectDoc->getElementsByTagName("ConfigurationType");
- for (unsigned long i = 0; i < pConfigurationTypeList->length(); i++)
- {
- Poco::XML::Element* pConfigurationTypeElem = static_cast(pConfigurationTypeList->item(i));
- removeElement(pConfigurationTypeElem->parentNode(), "PlatformToolset");
- appendElement(pConfigurationTypeElem->parentNode(), "PlatformToolset", "v141");
- }
+ fix20XXProject(pProjectDoc, configSet, platform, projectProps, templateProps, "v141");
}
void fix2019Project(Poco::AutoPtr pProjectDoc, const std::set& configSet, const std::string& platform, const Poco::Util::AbstractConfiguration& projectProps, const Poco::Util::AbstractConfiguration& templateProps)
{
- fix2010Project(pProjectDoc, configSet, platform, projectProps, templateProps);
- Poco::AutoPtr pConfigurationTypeList = pProjectDoc->getElementsByTagName("ConfigurationType");
- for (unsigned long i = 0; i < pConfigurationTypeList->length(); i++)
- {
- Poco::XML::Element* pConfigurationTypeElem = static_cast(pConfigurationTypeList->item(i));
- removeElement(pConfigurationTypeElem->parentNode(), "PlatformToolset");
- appendElement(pConfigurationTypeElem->parentNode(), "PlatformToolset", "v142");
- }
+ fix20XXProject(pProjectDoc, configSet, platform, projectProps, templateProps, "v142");
+ }
+
+ void fix2022Project(Poco::AutoPtr pProjectDoc, const std::set& configSet, const std::string& platform, const Poco::Util::AbstractConfiguration& projectProps, const Poco::Util::AbstractConfiguration& templateProps)
+ {
+ fix20XXProject(pProjectDoc, configSet, platform, projectProps, templateProps, "v143");
}
void appendElement(Poco::XML::Node* pParentNode, const std::string& elemName, const std::string& text)
@@ -871,6 +865,16 @@ protected:
writeProject(pProjectDoc, vcxprojPath.toString());
}
}
+ if (config().getBool("progen.postprocess." + postprocess + ".fix2022ProjectFile", false))
+ {
+ if (projectFile.exists())
+ {
+ logger().information("Fixing Visual Studio 2022 project file: " + vcxprojPath.toString());
+ Poco::AutoPtr pProjectDoc = domParser.parse(vcxprojPath.toString());
+ fix2022Project(pProjectDoc, configSet, pTemplateProps->getString("project.platform", platform), *pProps, *pTemplateProps);
+ writeProject(pProjectDoc, vcxprojPath.toString());
+ }
+ }
if (config().getBool("progen.postprocess." + postprocess + ".deleteOriginalFile", false))
{
Poco::File projectFile(vcprojPath.toString());
diff --git a/ProGen/templates/vs170/Win32/executable/debug_shared-Win32.template b/ProGen/templates/vs170/Win32/executable/debug_shared-Win32.template
new file mode 100644
index 000000000..801cc8067
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/executable/debug_shared-Win32.template
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/executable/debug_shared-x64.template b/ProGen/templates/vs170/Win32/executable/debug_shared-x64.template
new file mode 100644
index 000000000..44f8b2f54
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/executable/debug_shared-x64.template
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/executable/debug_static_md-Win32.template b/ProGen/templates/vs170/Win32/executable/debug_static_md-Win32.template
new file mode 100644
index 000000000..2654e35af
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/executable/debug_static_md-Win32.template
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/executable/debug_static_md-x64.template b/ProGen/templates/vs170/Win32/executable/debug_static_md-x64.template
new file mode 100644
index 000000000..644ff2a42
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/executable/debug_static_md-x64.template
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/executable/debug_static_mt-Win32.template b/ProGen/templates/vs170/Win32/executable/debug_static_mt-Win32.template
new file mode 100644
index 000000000..0884c8f07
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/executable/debug_static_mt-Win32.template
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/executable/debug_static_mt-x64.template b/ProGen/templates/vs170/Win32/executable/debug_static_mt-x64.template
new file mode 100644
index 000000000..b52d79a78
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/executable/debug_static_mt-x64.template
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/executable/project.properties b/ProGen/templates/vs170/Win32/executable/project.properties
new file mode 100644
index 000000000..38c4d63fd
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/executable/project.properties
@@ -0,0 +1,12 @@
+project.suffix = _vs170.vcproj
+project.targetSuffix.debug_shared = d
+project.targetSuffix.release_shared =
+project.targetSuffix.debug_static_md = d
+project.targetSuffix.release_static_md =
+project.targetSuffix.debug_static_mt = d
+project.targetSuffix.release_static_mt =
+project.postprocess = upgrade2008to2022
+project.finalSuffix = _vs170.vcxproj
+project.architectures = Win32, x64
+project.targetArchitecture.Win32 = IA32
+project.targetArchitecture.x64 = AMD64
\ No newline at end of file
diff --git a/ProGen/templates/vs170/Win32/executable/project.template b/ProGen/templates/vs170/Win32/executable/project.template
new file mode 100644
index 000000000..1445a20cb
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/executable/project.template
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/executable/release_shared-Win32.template b/ProGen/templates/vs170/Win32/executable/release_shared-Win32.template
new file mode 100644
index 000000000..6a8dccbbd
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/executable/release_shared-Win32.template
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/executable/release_shared-x64.template b/ProGen/templates/vs170/Win32/executable/release_shared-x64.template
new file mode 100644
index 000000000..369c69169
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/executable/release_shared-x64.template
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/executable/release_static_md-Win32.template b/ProGen/templates/vs170/Win32/executable/release_static_md-Win32.template
new file mode 100644
index 000000000..d9dd10406
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/executable/release_static_md-Win32.template
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/executable/release_static_md-x64.template b/ProGen/templates/vs170/Win32/executable/release_static_md-x64.template
new file mode 100644
index 000000000..5992c40cf
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/executable/release_static_md-x64.template
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/executable/release_static_mt-Win32.template b/ProGen/templates/vs170/Win32/executable/release_static_mt-Win32.template
new file mode 100644
index 000000000..5477c2b8c
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/executable/release_static_mt-Win32.template
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/executable/release_static_mt-x64.template b/ProGen/templates/vs170/Win32/executable/release_static_mt-x64.template
new file mode 100644
index 000000000..f04f3a998
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/executable/release_static_mt-x64.template
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/library/debug_shared-Win32.template b/ProGen/templates/vs170/Win32/library/debug_shared-Win32.template
new file mode 100644
index 000000000..5d547438b
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/library/debug_shared-Win32.template
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/library/debug_shared-x64.template b/ProGen/templates/vs170/Win32/library/debug_shared-x64.template
new file mode 100644
index 000000000..f2257dda0
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/library/debug_shared-x64.template
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/library/debug_static_md-Win32.template b/ProGen/templates/vs170/Win32/library/debug_static_md-Win32.template
new file mode 100644
index 000000000..e4db26930
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/library/debug_static_md-Win32.template
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/library/debug_static_md-x64.template b/ProGen/templates/vs170/Win32/library/debug_static_md-x64.template
new file mode 100644
index 000000000..8cdfbae91
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/library/debug_static_md-x64.template
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/library/debug_static_mt-Win32.template b/ProGen/templates/vs170/Win32/library/debug_static_mt-Win32.template
new file mode 100644
index 000000000..486a9c7a3
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/library/debug_static_mt-Win32.template
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/library/debug_static_mt-x64.template b/ProGen/templates/vs170/Win32/library/debug_static_mt-x64.template
new file mode 100644
index 000000000..b02b7a56f
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/library/debug_static_mt-x64.template
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/library/project.properties b/ProGen/templates/vs170/Win32/library/project.properties
new file mode 100644
index 000000000..9bb661428
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/library/project.properties
@@ -0,0 +1,14 @@
+project.suffix = _vs170.vcproj
+project.targetSuffix.debug_shared = d
+project.targetSuffix.release_shared =
+project.targetSuffix.debug_shared.x64 = 64d
+project.targetSuffix.release_shared.x64 = 64
+project.targetSuffix.debug_static_md = mdd
+project.targetSuffix.release_static_md = md
+project.targetSuffix.debug_static_mt = mtd
+project.targetSuffix.release_static_mt = mt
+project.postprocess = upgrade2008to2022
+project.finalSuffix = _vs170.vcxproj
+project.architectures = Win32, x64
+project.targetArchitecture.Win32 = IA32
+project.targetArchitecture.x64 = AMD64
\ No newline at end of file
diff --git a/ProGen/templates/vs170/Win32/library/project.template b/ProGen/templates/vs170/Win32/library/project.template
new file mode 100644
index 000000000..1445a20cb
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/library/project.template
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/library/release_shared-Win32.template b/ProGen/templates/vs170/Win32/library/release_shared-Win32.template
new file mode 100644
index 000000000..51211d8e5
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/library/release_shared-Win32.template
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/library/release_shared-x64.template b/ProGen/templates/vs170/Win32/library/release_shared-x64.template
new file mode 100644
index 000000000..598a27939
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/library/release_shared-x64.template
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/library/release_static_md-Win32.template b/ProGen/templates/vs170/Win32/library/release_static_md-Win32.template
new file mode 100644
index 000000000..59c197fe0
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/library/release_static_md-Win32.template
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/library/release_static_md-x64.template b/ProGen/templates/vs170/Win32/library/release_static_md-x64.template
new file mode 100644
index 000000000..dbc15deec
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/library/release_static_md-x64.template
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/library/release_static_mt-Win32.template b/ProGen/templates/vs170/Win32/library/release_static_mt-Win32.template
new file mode 100644
index 000000000..bc35acb96
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/library/release_static_mt-Win32.template
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/library/release_static_mt-x64.template b/ProGen/templates/vs170/Win32/library/release_static_mt-x64.template
new file mode 100644
index 000000000..acebfc406
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/library/release_static_mt-x64.template
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/plugin/debug_shared-Win32.template b/ProGen/templates/vs170/Win32/plugin/debug_shared-Win32.template
new file mode 100644
index 000000000..d238a563d
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/plugin/debug_shared-Win32.template
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/plugin/debug_shared-x64.template b/ProGen/templates/vs170/Win32/plugin/debug_shared-x64.template
new file mode 100644
index 000000000..6778cf133
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/plugin/debug_shared-x64.template
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/plugin/project.properties b/ProGen/templates/vs170/Win32/plugin/project.properties
new file mode 100644
index 000000000..8e15775e4
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/plugin/project.properties
@@ -0,0 +1,8 @@
+project.suffix = _vs170.vcproj
+project.targetSuffix.debug_shared = d
+project.targetSuffix.release_shared =
+project.postprocess = upgrade2008to2022
+project.finalSuffix = _vs170.vcxproj
+project.architectures = Win32, x64
+project.targetArchitecture.Win32 = IA32
+project.targetArchitecture.x64 = AMD64
\ No newline at end of file
diff --git a/ProGen/templates/vs170/Win32/plugin/project.template b/ProGen/templates/vs170/Win32/plugin/project.template
new file mode 100644
index 000000000..1445a20cb
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/plugin/project.template
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/plugin/release_shared-Win32.template b/ProGen/templates/vs170/Win32/plugin/release_shared-Win32.template
new file mode 100644
index 000000000..862c9c6af
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/plugin/release_shared-Win32.template
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/plugin/release_shared-x64.template b/ProGen/templates/vs170/Win32/plugin/release_shared-x64.template
new file mode 100644
index 000000000..65d659177
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/plugin/release_shared-x64.template
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/testsuite/debug_shared-Win32.template b/ProGen/templates/vs170/Win32/testsuite/debug_shared-Win32.template
new file mode 100644
index 000000000..908b44c3f
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/testsuite/debug_shared-Win32.template
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/testsuite/debug_shared-x64.template b/ProGen/templates/vs170/Win32/testsuite/debug_shared-x64.template
new file mode 100644
index 000000000..56255cbf4
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/testsuite/debug_shared-x64.template
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/testsuite/debug_static_md-Win32.template b/ProGen/templates/vs170/Win32/testsuite/debug_static_md-Win32.template
new file mode 100644
index 000000000..f9d422527
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/testsuite/debug_static_md-Win32.template
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/testsuite/debug_static_md-x64.template b/ProGen/templates/vs170/Win32/testsuite/debug_static_md-x64.template
new file mode 100644
index 000000000..f8a3aa416
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/testsuite/debug_static_md-x64.template
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-Win32.template b/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-Win32.template
new file mode 100644
index 000000000..83d67eca3
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-Win32.template
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-x64.template b/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-x64.template
new file mode 100644
index 000000000..2769034f9
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-x64.template
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/testsuite/project.properties b/ProGen/templates/vs170/Win32/testsuite/project.properties
new file mode 100644
index 000000000..f3744c79a
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/testsuite/project.properties
@@ -0,0 +1,13 @@
+project.suffix = _vs170.vcproj
+project.targetSuffix.debug_shared = d
+project.targetSuffix.release_shared =
+project.targetSuffix.debug_static_md = d
+project.targetSuffix.release_static_md =
+project.targetSuffix.debug_static_mt = d
+project.targetSuffix.release_static_mt =
+project.postprocess = upgrade2008to2022
+project.finalSuffix = _vs170.vcxproj
+project.replaceSourceFiles = .\\src\\WinDriver.cpp > .\\src\\Driver.cpp
+project.architectures = Win32, x64
+project.targetArchitecture.Win32 = IA32
+project.targetArchitecture.x64 = AMD64
\ No newline at end of file
diff --git a/ProGen/templates/vs170/Win32/testsuite/project.template b/ProGen/templates/vs170/Win32/testsuite/project.template
new file mode 100644
index 000000000..1445a20cb
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/testsuite/project.template
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/testsuite/release_shared-Win32.template b/ProGen/templates/vs170/Win32/testsuite/release_shared-Win32.template
new file mode 100644
index 000000000..c467ca9d0
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/testsuite/release_shared-Win32.template
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/testsuite/release_shared-x64.template b/ProGen/templates/vs170/Win32/testsuite/release_shared-x64.template
new file mode 100644
index 000000000..64f778e24
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/testsuite/release_shared-x64.template
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/testsuite/release_static_md-Win32.template b/ProGen/templates/vs170/Win32/testsuite/release_static_md-Win32.template
new file mode 100644
index 000000000..6a8013d56
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/testsuite/release_static_md-Win32.template
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/testsuite/release_static_md-x64.template b/ProGen/templates/vs170/Win32/testsuite/release_static_md-x64.template
new file mode 100644
index 000000000..e58ce0734
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/testsuite/release_static_md-x64.template
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/testsuite/release_static_mt-Win32.template b/ProGen/templates/vs170/Win32/testsuite/release_static_mt-Win32.template
new file mode 100644
index 000000000..3e4baa030
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/testsuite/release_static_mt-Win32.template
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ProGen/templates/vs170/Win32/testsuite/release_static_mt-x64.template b/ProGen/templates/vs170/Win32/testsuite/release_static_mt-x64.template
new file mode 100644
index 000000000..75d4bcb9d
--- /dev/null
+++ b/ProGen/templates/vs170/Win32/testsuite/release_static_mt-x64.template
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+