diff --git a/Resources/GameData/kOS/kOS.version.versiontemplate b/Resources/GameData/kOS/kOS.version.versiontemplate
new file mode 100644
index 000000000..54003984d
--- /dev/null
+++ b/Resources/GameData/kOS/kOS.version.versiontemplate
@@ -0,0 +1,32 @@
+{
+ "NAME": "kOS",
+ "URL": "https://raw.githubusercontent.com/KSP-KOS/KOS/master/Resources/GameData/kOS/kOS.version",
+ "DOWNLOAD": "https://github.com/KSP-KOS/KOS/releases",
+ "CHANGE_LOG_URL": "https://raw.githubusercontent.com/KSP-KOS/KOS/master/CHANGELOG.md",
+ "GITHUB": {
+ "USERNAME": "KSP-KOS",
+ "REPOSITORY": "KOS",
+ "ALLOW_PRE_RELEASE": false
+ },
+ "VERSION": {
+ "MAJOR": @VERSION_MAJOR@,
+ "MINOR": @VERSION_MINOR@,
+ "PATCH": @VERSION_PATCH@,
+ "BUILD": @VERSION_BUILD@
+ },
+ "KSP_VERSION": {
+ "MAJOR": 1,
+ "MINOR": 12,
+ "PATCH": 5
+ },
+ "KSP_VERSION_MIN": {
+ "MAJOR": 1,
+ "MINOR": 12,
+ "PATCH": 3
+ },
+ "KSP_VERSION_MAX": {
+ "MAJOR": 1,
+ "MINOR": 12,
+ "PATCH": 99
+ }
+}
diff --git a/src/kOS.Safe.Test/Properties/AssemblyInfo.cs.versiontemplate b/src/kOS.Safe.Test/Properties/AssemblyInfo.cs.versiontemplate
new file mode 100644
index 000000000..ca4b587b3
--- /dev/null
+++ b/src/kOS.Safe.Test/Properties/AssemblyInfo.cs.versiontemplate
@@ -0,0 +1,26 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("kOS.Safe.Test")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("kOS.Safe.Test")]
+[assembly: AssemblyCopyright("Copyright 2019")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("651e637f-78f4-4f85-a22b-33fe26e5aeca")]
+
+[assembly: AssemblyFileVersion("@VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@.@VERSION_BUILD@")]
+[assembly: AssemblyVersion("@VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@.@VERSION_BUILD@")]
\ No newline at end of file
diff --git a/src/kOS.Safe.Test/kOS.Safe.Test.csproj b/src/kOS.Safe.Test/kOS.Safe.Test.csproj
index 695d9fe8b..e735f58d6 100644
--- a/src/kOS.Safe.Test/kOS.Safe.Test.csproj
+++ b/src/kOS.Safe.Test/kOS.Safe.Test.csproj
@@ -96,6 +96,7 @@
+
diff --git a/src/kOS.Safe/Properties/AssemblyInfo.cs.versiontemplate b/src/kOS.Safe/Properties/AssemblyInfo.cs.versiontemplate
new file mode 100644
index 000000000..6098f435f
--- /dev/null
+++ b/src/kOS.Safe/Properties/AssemblyInfo.cs.versiontemplate
@@ -0,0 +1,26 @@
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("kOS.Safe")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("kOS.Safe")]
+[assembly: AssemblyCopyright("Copyright © 2019")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("c1a3b326-28f5-4b98-bf0f-8bd25363fbd7")]
+
+[assembly: AssemblyFileVersion("@VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@.@VERSION_BUILD@")]
+[assembly: AssemblyVersion("@VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@.@VERSION_BUILD@")]
+[assembly: KSPAssembly("kOS.Safe", @VERSION_MAJOR@, @VERSION_MINOR@)]
diff --git a/src/kOS.Safe/kOS.Safe.csproj b/src/kOS.Safe/kOS.Safe.csproj
index 09b54e402..e82f4b858 100644
--- a/src/kOS.Safe/kOS.Safe.csproj
+++ b/src/kOS.Safe/kOS.Safe.csproj
@@ -284,6 +284,7 @@
+
diff --git a/src/kOS/Properties/AssemblyInfo.cs.versiontemplate b/src/kOS/Properties/AssemblyInfo.cs.versiontemplate
new file mode 100644
index 000000000..2d9a83365
--- /dev/null
+++ b/src/kOS/Properties/AssemblyInfo.cs.versiontemplate
@@ -0,0 +1,23 @@
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("kOS")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("kOS")]
+[assembly: AssemblyCopyright("Copyright © 2019")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("324da3fe-391b-421d-93b7-29499dcf9ef3")]
+
+[assembly: AssemblyFileVersion("@VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@.@VERSION_BUILD@")]
+[assembly: AssemblyVersion("@VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@.@VERSION_BUILD@")]
+[assembly: KSPAssembly("kOS", @VERSION_MAJOR@, @VERSION_MINOR@)]
diff --git a/src/kOS/kOS.csproj b/src/kOS/kOS.csproj
index d5c3eae3d..ebece0933 100644
--- a/src/kOS/kOS.csproj
+++ b/src/kOS/kOS.csproj
@@ -263,5 +263,6 @@
+
\ No newline at end of file