diff --git a/.gitignore b/.gitignore
index a0574c32f..032c86b86 100644
--- a/.gitignore
+++ b/.gitignore
@@ -66,6 +66,8 @@ local.properties
**/*.dotCover
**/packages/
+packages
+
# Visual C++ cache files
ipch/
*.aps
diff --git a/Squirrel.sln b/Squirrel.sln
index d4f1089bf..5922116c3 100644
--- a/Squirrel.sln
+++ b/Squirrel.sln
@@ -18,6 +18,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Update", "src\Update\Update
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SyncGitHubReleases", "src\SyncGitHubReleases\SyncGitHubReleases.csproj", "{EB521191-1EBF-4D06-8541-ED192E2EE378}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "misc", "misc", "{ED657D2C-F8A0-4012-A64F-7367D41BE4D2}"
+ ProjectSection(SolutionItems) = preProject
+ src\SolutionAssemblyInfo.cs = src\SolutionAssemblyInfo.cs
+ src\Squirrel.nuspec = src\Squirrel.nuspec
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
CIBuild|Any CPU = CIBuild|Any CPU
diff --git a/src/SolutionAssemblyInfo.cs b/src/SolutionAssemblyInfo.cs
new file mode 100644
index 000000000..6e7a2cb87
--- /dev/null
+++ b/src/SolutionAssemblyInfo.cs
@@ -0,0 +1,31 @@
+#pragma warning disable 1699 // 1699 = Use command line option '/keyfile' or appropriate project settings instead of 'AssemblyKeyFile'
+
+using System.Reflection;
+using System.Resources;
+
+// Shared assembly info that is common for all assemblies of this project
+
+////[assembly: AssemblyTitle("DEFINED IN ACTUAL ASSEMBLYINFO")]
+////[assembly: AssemblyProduct("DEFINED IN ACTUAL ASSEMBLYINFO")]
+////[assembly: AssemblyDescription("DEFINED IN ACTUAL ASSEMBLYINFO")]
+
+[assembly: AssemblyCompany("Paul Betts")]
+[assembly: AssemblyCopyright("Copyright © Paul Betts 2013 - 2014")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+[assembly: NeutralResourcesLanguage("en-US")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+
+// NOTE: Restamp on build server, I prefer GitVersion but anything can be used. Changing manually is not recommended but is possible
+
+[assembly: AssemblyVersion("0.5.5")]
+[assembly: AssemblyInformationalVersion("0.5.5, manually built in Visual Studio")]
\ No newline at end of file
diff --git a/src/Squirrel/Properties/AssemblyInfo.cs b/src/Squirrel/Properties/AssemblyInfo.cs
index c22b8def4..07e6314af 100644
--- a/src/Squirrel/Properties/AssemblyInfo.cs
+++ b/src/Squirrel/Properties/AssemblyInfo.cs
@@ -2,38 +2,21 @@
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.
+// All other assembly info is defined in SharedAssembly.cs
+
[assembly: AssemblyTitle("Squirrel")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Squirrel")]
-[assembly: AssemblyCopyright("Copyright © 2014")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
+[assembly: AssemblyDescription("Squirrel")]
-// 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
+// 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("3c25a7f9-3e99-4556-aba3-f820c74bb4da")]
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("0.5.5")]
-[assembly: AssemblyFileVersion("0.5.5")]
[assembly: InternalsVisibleTo("Squirrel.Tests")]
[assembly: InternalsVisibleTo("Update")]
[assembly: InternalsVisibleTo("SyncGitHubReleases")]
diff --git a/src/Squirrel/Squirrel.csproj b/src/Squirrel/Squirrel.csproj
index 3b624e928..974c8f006 100644
--- a/src/Squirrel/Squirrel.csproj
+++ b/src/Squirrel/Squirrel.csproj
@@ -76,6 +76,9 @@
+
+ Properties\SolutionAssemblyInfo.cs
+
diff --git a/src/SyncGitHubReleases/Properties/AssemblyInfo.cs b/src/SyncGitHubReleases/Properties/AssemblyInfo.cs
index 7858f6345..8931a88f1 100644
--- a/src/SyncGitHubReleases/Properties/AssemblyInfo.cs
+++ b/src/SyncGitHubReleases/Properties/AssemblyInfo.cs
@@ -1,36 +1,17 @@
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.
+// All other assembly info is defined in SharedAssembly.cs
+
[assembly: AssemblyTitle("SyncGitHubReleases")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("SyncGitHubReleases")]
-[assembly: AssemblyCopyright("Copyright © 2014")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
+[assembly: AssemblyDescription("SyncGitHubReleases")]
// 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("9f6c5659-5606-4d1f-a482-bc2d5aefee5a")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("0.5.5")]
-[assembly: AssemblyFileVersion("0.5.5")]
diff --git a/src/SyncGitHubReleases/SyncGitHubReleases.csproj b/src/SyncGitHubReleases/SyncGitHubReleases.csproj
index f3303ef75..95814fa57 100644
--- a/src/SyncGitHubReleases/SyncGitHubReleases.csproj
+++ b/src/SyncGitHubReleases/SyncGitHubReleases.csproj
@@ -59,6 +59,9 @@
+
+ Properties\SolutionAssemblyInfo.cs
+
@@ -80,4 +83,4 @@
del "$(TargetFileName)"
ren "$(TargetFileName).tmp" "$(TargetFileName)"
-
+
\ No newline at end of file
diff --git a/src/Update/Properties/AssemblyInfo.cs b/src/Update/Properties/AssemblyInfo.cs
index f3c2af5a3..7faadb4cf 100644
--- a/src/Update/Properties/AssemblyInfo.cs
+++ b/src/Update/Properties/AssemblyInfo.cs
@@ -1,37 +1,19 @@
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.
+// All other assembly info is defined in SharedAssembly.cs
+
[assembly: AssemblyTitle("Update")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Update")]
-[assembly: AssemblyCopyright("Copyright © 2014")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
+[assembly: AssemblyDescription("Update")]
-// 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
+// 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("a0663459-8b01-4fcd-96b8-c4235eb4dc51")]
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("0.5.5")]
-[assembly: AssemblyFileVersion("0.5.5")]
-[assembly: AssemblyMetadata("SquirrelAwareVersion", "1")]
+[assembly: AssemblyMetadata("SquirrelAwareVersion", "1")]
\ No newline at end of file
diff --git a/src/Update/Update.csproj b/src/Update/Update.csproj
index 5b7c34c44..67ca0680a 100644
--- a/src/Update/Update.csproj
+++ b/src/Update/Update.csproj
@@ -75,6 +75,9 @@
+
+ Properties\SolutionAssemblyInfo.cs
+
@@ -118,4 +121,4 @@ ren "$(TargetFileName).tmp" "$(TargetFileName)"
-->
-
+
\ No newline at end of file
diff --git a/test/Properties/AssemblyInfo.cs b/test/Properties/AssemblyInfo.cs
index 6d0d0b085..cd4053fcc 100644
--- a/test/Properties/AssemblyInfo.cs
+++ b/test/Properties/AssemblyInfo.cs
@@ -1,37 +1,17 @@
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.
+// All other assembly info is defined in SharedAssembly.cs
+
[assembly: AssemblyTitle("Squirrel.Tests")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Squirrel.Tests")]
-[assembly: AssemblyCopyright("Copyright © 2014")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
+[assembly: AssemblyDescription("Squirrel.Tests")]
-// 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
+// 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("f781bbe0-d19d-41aa-a78b-c689b1943094")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
-[assembly: AssemblyInformationalVersion("0.1.0-pre")]
+[assembly: Guid("f781bbe0-d19d-41aa-a78b-c689b1943094")]
\ No newline at end of file
diff --git a/test/Squirrel.Tests.csproj b/test/Squirrel.Tests.csproj
index 0bbdd8d9d..233e28ab8 100644
--- a/test/Squirrel.Tests.csproj
+++ b/test/Squirrel.Tests.csproj
@@ -75,6 +75,9 @@
+
+ Properties\SolutionAssemblyInfo.cs
+