diff --git a/Compiler/Analyzers/DeadCodeAnalyzer/JSIL.DeadCodeAnalyzer.csproj b/Compiler/Analyzers/DeadCodeAnalyzer/JSIL.DeadCodeAnalyzer.csproj
index 4c228093d..ebfa6f638 100644
--- a/Compiler/Analyzers/DeadCodeAnalyzer/JSIL.DeadCodeAnalyzer.csproj
+++ b/Compiler/Analyzers/DeadCodeAnalyzer/JSIL.DeadCodeAnalyzer.csproj
@@ -49,6 +49,9 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="..\..\..\JSIL\Properties\GlobalAssemblyInfo.cs">
+      <Link>Properties\GlobalAssemblyInfo.cs</Link>
+    </Compile>
     <Compile Include="Annotations.cs" />
     <Compile Include="Configuration.cs" />
     <Compile Include="DeadCodeInfoProvider.cs" />
diff --git a/Compiler/Analyzers/DeadCodeAnalyzer/Properties/AssemblyInfo.cs b/Compiler/Analyzers/DeadCodeAnalyzer/Properties/AssemblyInfo.cs
index eb7309db9..ad3936617 100644
--- a/Compiler/Analyzers/DeadCodeAnalyzer/Properties/AssemblyInfo.cs
+++ b/Compiler/Analyzers/DeadCodeAnalyzer/Properties/AssemblyInfo.cs
@@ -1,5 +1,4 @@
 using System.Reflection;
-using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
 
 // General Information about an assembly is controlled through the following 
@@ -8,10 +7,6 @@
 [assembly: AssemblyTitle("Dead code analyzer")]
 [assembly: AssemblyDescription(".NET assembly dead code analyzer for JSIL")]
 [assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Dead code analyzer")]
-[assembly: AssemblyCopyright("Copyright ©  2014")]
-[assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
 
 // Setting ComVisible to false makes the types in this assembly not visible 
@@ -20,16 +15,4 @@
 [assembly: ComVisible(false)]
 
 // The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("8d203439-f730-4ea9-aff7-a2885947080a")]
-
-// 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.1.0.0")]
\ No newline at end of file
+[assembly: Guid("8d203439-f730-4ea9-aff7-a2885947080a")]
\ No newline at end of file
diff --git a/Compiler/Compiler.Executor.32bit.csproj b/Compiler/Compiler.Executor.32bit.csproj
index 349f96a36..6a1db640b 100644
--- a/Compiler/Compiler.Executor.32bit.csproj
+++ b/Compiler/Compiler.Executor.32bit.csproj
@@ -14,7 +14,7 @@
     <FileAlignment>512</FileAlignment>
     <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
     <TargetFrameworkProfile />
-    <LangVersion>5</LangVersion>    
+    <LangVersion>5</LangVersion>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
     <DebugSymbols>true</DebugSymbols>
@@ -37,6 +37,10 @@
     <ApplicationIcon>jsil.ico</ApplicationIcon>
   </PropertyGroup>
   <ItemGroup>
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="..\JSIL\Properties\GlobalAssemblyInfo.cs">
+      <Link>Properties\GlobalAssemblyInfo.cs</Link>
+    </Compile>
     <Compile Include="Executor.cs" />
   </ItemGroup>
   <ItemGroup>
diff --git a/Compiler/Compiler.csproj b/Compiler/Compiler.csproj
index 9df4c4021..7d3670273 100644
--- a/Compiler/Compiler.csproj
+++ b/Compiler/Compiler.csproj
@@ -63,6 +63,10 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="..\JSIL\Properties\GlobalAssemblyInfo.cs">
+      <Link>Properties\GlobalAssemblyInfo.cs</Link>
+    </Compile>
     <Compile Include="..\Upstream\Options.cs" />
     <Compile Include="BuildGroup.cs" />
     <Compile Include="Configuration.cs" />
@@ -75,7 +79,6 @@
     <Compile Include="Profiles\ResourceConverter.cs" />
     <Compile Include="Program.cs" />
     <Compile Include="SolutionBuilder.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="VariableSet.cs" />
   </ItemGroup>
   <ItemGroup>
diff --git a/Compiler/Configuration.cs b/Compiler/Configuration.cs
index 7d97adfbb..18f34de9b 100644
--- a/Compiler/Configuration.cs
+++ b/Compiler/Configuration.cs
@@ -43,6 +43,7 @@ public void MergeInto (SolutionBuildConfiguration result) {
         public bool? ReuseTypeInfoAcrossAssemblies;
         public bool? ProxyWarnings;
         public string OutputDirectory;
+        public string JsLibrariesOutputDirectory;
         public string FileOutputDirectory;
         public string Profile;
         public Dictionary<string, object> ProfileSettings = new Dictionary<string, object>();
@@ -66,6 +67,8 @@ public override void MergeInto (JSIL.Translator.Configuration result) {
                 cc.ReuseTypeInfoAcrossAssemblies = ReuseTypeInfoAcrossAssemblies;
             if (OutputDirectory != null)
                 cc.OutputDirectory = OutputDirectory;
+            if (JsLibrariesOutputDirectory != null)
+                cc.JsLibrariesOutputDirectory = JsLibrariesOutputDirectory;
             if (FileOutputDirectory != null)
                 cc.FileOutputDirectory = FileOutputDirectory;
             if (Profile != null)
@@ -108,6 +111,7 @@ public VariableSet ApplyTo (VariableSet variables) {
             result["CurrentDirectory"] = () => Environment.CurrentDirectory;
             result["ConfigDirectory"] = () => Path;
             result["OutputDirectory"] = () => OutputDirectory;
+            result["JsLibrariesOutputDirectory"] = () => JsLibrariesOutputDirectory;
             result["FileOutputDirectory"] = () => FileOutputDirectory;
             result["Profile"] = () => Profile;
 
diff --git a/Compiler/Extensibility/IProfile.cs b/Compiler/Extensibility/IProfile.cs
index 3e323b7da..76ec17de4 100644
--- a/Compiler/Extensibility/IProfile.cs
+++ b/Compiler/Extensibility/IProfile.cs
@@ -18,7 +18,7 @@ TranslationResultCollection Translate (
             Configuration configuration, string assemblyPath, bool scanForProxies
         );
         void WriteOutputs (
-            VariableSet variables, TranslationResultCollection result, string path, bool quiet
+            VariableSet variables, TranslationResultCollection result, Configuration path, bool quiet
         );
 
         void RegisterPostprocessors (IEnumerable<IEmitterGroupFactory> emitters, Configuration configuration, string assemblyPath, string[] skippedAssemblies);
diff --git a/Compiler/Profiles/Base.cs b/Compiler/Profiles/Base.cs
index e470d20d5..4b11b3d6e 100644
--- a/Compiler/Profiles/Base.cs
+++ b/Compiler/Profiles/Base.cs
@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.IO;
+using System.Reflection;
 using JSIL.Compiler.Extensibility;
 using JSIL.Utilities;
 
@@ -24,7 +25,7 @@ public virtual TranslationResultCollection Translate (
         public virtual void RegisterPostprocessors (IEnumerable<IEmitterGroupFactory> emitters, Configuration configuration, string assemblyPath, string[] skippedAssemblies) {
         }
 
-        public virtual void WriteOutputs (VariableSet variables, TranslationResultCollection result, string path,bool quiet) {
+        public virtual void WriteOutputs (VariableSet variables, TranslationResultCollection result, Configuration configuration, bool quiet) {
             foreach (var translationResult in result.TranslationResults) {
                 if (!quiet)
                 {
@@ -32,7 +33,27 @@ public virtual void WriteOutputs (VariableSet variables, TranslationResultCollec
                         Console.WriteLine(fe.Filename);
                 }
 
-                translationResult.WriteToDirectory(path);
+                translationResult.WriteToDirectory(configuration.OutputDirectory);
+            }
+
+            var jsilPath = Path.GetDirectoryName(JSIL.Internal.Util.GetPathOfAssembly(Assembly.GetExecutingAssembly()));
+            var searchPath = Path.Combine(jsilPath, "JS Libraries\\JsLibraries\\");
+            if (!string.IsNullOrEmpty(configuration.JsLibrariesOutputDirectory) && Directory.Exists(searchPath))
+            {
+                foreach (var file in Directory.GetFiles(searchPath, "*", SearchOption.AllDirectories)) {
+                    var target = Uri.UnescapeDataString(Path.Combine(configuration.JsLibrariesOutputDirectory, new Uri(searchPath).MakeRelativeUri(new Uri(file)).ToString()))
+                        .Replace('/', Path.DirectorySeparatorChar);
+                    var directory = Path.GetDirectoryName(target);
+                    if (!Directory.Exists(directory))
+                        Directory.CreateDirectory(directory);
+
+                    File.Copy(file, target, true);
+
+                    if (!quiet)
+                    {
+                            Console.WriteLine(target);
+                    }
+                }
             }
         }
 
diff --git a/Compiler/Profiles/XNA4/Profiles.XNA4.csproj b/Compiler/Profiles/XNA4/Profiles.XNA4.csproj
index 5300ea9a9..09f6fef57 100644
--- a/Compiler/Profiles/XNA4/Profiles.XNA4.csproj
+++ b/Compiler/Profiles/XNA4/Profiles.XNA4.csproj
@@ -45,6 +45,9 @@
     <Reference Include="System.XML" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="..\..\..\JSIL\Properties\GlobalAssemblyInfo.cs">
+      <Link>Properties\GlobalAssemblyInfo.cs</Link>
+    </Compile>
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="..\XNACommon.cs" />
     <Compile Include="XNA4Profile.cs" />
diff --git a/Compiler/Profiles/XNA4/Properties/AssemblyInfo.cs b/Compiler/Profiles/XNA4/Properties/AssemblyInfo.cs
index 1347deca0..1cc5cd80e 100644
--- a/Compiler/Profiles/XNA4/Properties/AssemblyInfo.cs
+++ b/Compiler/Profiles/XNA4/Properties/AssemblyInfo.cs
@@ -1,5 +1,4 @@
 using System.Reflection;
-using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
 
 // General Information about an assembly is controlled through the following 
@@ -8,10 +7,6 @@
 [assembly: AssemblyTitle("XNA4")]
 [assembly: AssemblyDescription("")]
 [assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("XNA4")]
-[assembly: AssemblyCopyright("Copyright ©  2012")]
-[assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
 
 // Setting ComVisible to false makes the types in this assembly not visible 
@@ -20,17 +15,4 @@
 [assembly: ComVisible(false)]
 
 // The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("d8124711-3e7f-47ac-a08d-4ab7de555aee")]
-
-// 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: Guid("d8124711-3e7f-47ac-a08d-4ab7de555aee")]
\ No newline at end of file
diff --git a/Compiler/Program.cs b/Compiler/Program.cs
index 0dfa6e519..b86baa5ea 100644
--- a/Compiler/Program.cs
+++ b/Compiler/Program.cs
@@ -188,6 +188,9 @@ AssemblyCache assemblyCache
                     {"o=|out=", 
                         "Specifies the output directory for generated javascript and manifests.",
                         (path) => commandLineConfig.OutputDirectory = Path.GetFullPath(path) },
+                    {"outLibraries=",
+                        "Specifies the output directory for JSIL Libraries.",
+                        (path) => commandLineConfig.JsLibrariesOutputDirectory = Path.GetFullPath(path) },
                     {"q|quiet",
                         "Suppresses non-error/non-warning stderr messages.",
                         (_) => commandLineConfig.Quiet = Quiet = true },
@@ -822,10 +825,16 @@ static void InternalMain (string[] arguments) {
                         if (localConfig.OutputDirectory == null)
                             throw new Exception("No output directory was specified!");
 
-                        var outputDir = MapPath(localConfig.OutputDirectory, localVariables, false);
-                        CopiedOutputGatherer.EnsureDirectoryExists(outputDir);
+                        localConfig.OutputDirectory = MapPath(localConfig.OutputDirectory, localVariables, false);
+                        CopiedOutputGatherer.EnsureDirectoryExists(localConfig.OutputDirectory);
 
-                        InformationWriteLine("// Saving output to '{0}'.", ShortenPath(outputDir) + Path.DirectorySeparatorChar);
+                        InformationWriteLine("// Saving output to '{0}'.", ShortenPath(localConfig.OutputDirectory) + Path.DirectorySeparatorChar);
+
+                        if (!string.IsNullOrEmpty(localConfig.JsLibrariesOutputDirectory))
+                        {
+                            localConfig.JsLibrariesOutputDirectory = MapPath(localConfig.JsLibrariesOutputDirectory, localVariables, false);
+                            CopiedOutputGatherer.EnsureDirectoryExists(localConfig.JsLibrariesOutputDirectory);
+                        }
 
                         // Ensures that the log file contains the name of the profile that was actually used.
                         localConfig.Profile = localProfile.GetType().Name;
@@ -833,9 +842,9 @@ static void InternalMain (string[] arguments) {
                         if (ignoredMethods.Count > 0)
                             Console.Error.WriteLine("// {0} method(s) were ignored during translation. See the log for a list.", ignoredMethods.Count);
 
-                        EmitLog(outputDir, localConfig, filename, outputs, ignoredMethods);
+                        EmitLog(localConfig.OutputDirectory, localConfig, filename, outputs, ignoredMethods);
 
-                        buildGroup.Profile.WriteOutputs(localVariables, outputs, outputDir, Quiet);
+                        buildGroup.Profile.WriteOutputs(localVariables, outputs, localConfig, Quiet);
 
                         totalFailureCount += translator.Failures.Count;
                     }
diff --git a/Compiler/Properties/AssemblyInfo.cs b/Compiler/Properties/AssemblyInfo.cs
index ab6121707..50a6cd9cd 100644
--- a/Compiler/Properties/AssemblyInfo.cs
+++ b/Compiler/Properties/AssemblyInfo.cs
@@ -1,5 +1,4 @@
 using System.Reflection;
-using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
 
 // General Information about an assembly is controlled through the following 
@@ -8,10 +7,6 @@
 [assembly: AssemblyTitle("JSILc")]
 [assembly: AssemblyDescription("JSIL Command Line Compiler")]
 [assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("Squared Interactive")]
-[assembly: AssemblyProduct("JSIL")]
-[assembly: AssemblyCopyright("Copyright © Squared Interactive 2011")]
-[assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
 
 // Setting ComVisible to false makes the types in this assembly not visible 
@@ -20,16 +15,4 @@
 [assembly: ComVisible(false)]
 
 // The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("e2342fc2-c01e-470e-8191-fd22b94bb455")]
-
-// 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.8.2.*")]
+[assembly: Guid("e2342fc2-c01e-470e-8191-fd22b94bb455")]
\ No newline at end of file
diff --git a/GitVersion.yml b/GitVersion.yml
new file mode 100644
index 000000000..2d0a1a661
--- /dev/null
+++ b/GitVersion.yml
@@ -0,0 +1,6 @@
+assembly-versioning-scheme: MajorMinorPatch
+mode: ContinuousDeployment
+next-version: 0.9.1
+branches: {}
+ignore:
+  sha: []
diff --git a/JSIL.mscorlib/JSIL.mscorlib.csproj b/JSIL.mscorlib/JSIL.mscorlib.csproj
index 3e44b6dcd..5f9d2797d 100644
--- a/JSIL.mscorlib/JSIL.mscorlib.csproj
+++ b/JSIL.mscorlib/JSIL.mscorlib.csproj
@@ -41,6 +41,9 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="..\JSIL\Properties\GlobalAssemblyInfo.cs">
+      <Link>Properties\GlobalAssemblyInfo.cs</Link>
+    </Compile>
     <Compile Include="Imports.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="JSIL\System\NumberFormatter.cs" />
diff --git a/JSIL.mscorlib/Properties/AssemblyInfo.cs b/JSIL.mscorlib/Properties/AssemblyInfo.cs
index 3a9b1e13e..56874004c 100644
--- a/JSIL.mscorlib/Properties/AssemblyInfo.cs
+++ b/JSIL.mscorlib/Properties/AssemblyInfo.cs
@@ -9,10 +9,6 @@
 [assembly: AssemblyTitle("JSIL.mscorlib")]
 [assembly: AssemblyDescription("")]
 [assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("JSIL.mscorlib")]
-[assembly: AssemblyCopyright("Copyright ©  2015")]
-[assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
 
 // Setting ComVisible to false makes the types in this assembly not visible 
@@ -23,17 +19,5 @@
 // The following GUID is for the ID of the typelib if this project is exposed to COM
 [assembly: Guid("aef2633e-e92c-4a0d-b8e0-a072ed404af7")]
 
-// 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: JSRepaceAssemblyDeclaration("mscorlib")]
 [assembly: JSOverrideAssemblyReference(typeof(object), "mscorlib")]
\ No newline at end of file
diff --git a/JSIL.nuspec b/JSIL.nuspec
new file mode 100644
index 000000000..d16a8348d
--- /dev/null
+++ b/JSIL.nuspec
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
+  <metadata>
+    <id>JSIL.Compiler</id>
+    <version>$version$</version>
+    <authors>Squared Interactive</authors>
+    <description>JSIL Command Line Compiler</description>
+    <language>en-US</language>
+    <projectUrl>https://github.com/sq/JSIL</projectUrl>
+    <licenseUrl>https://github.com/sq/JSIL/blob/master/LICENSE</licenseUrl>
+  </metadata>
+  <files>
+    <file src="bin\defaults.jsilconfig" target="tools" />
+    <file src="bin\ICSharpCode.Decompiler.dll" target="tools" />
+    <file src="bin\ICSharpCode.NRefactory.CSharp.dll" target="tools" />
+    <file src="bin\ICSharpCode.NRefactory.dll" target="tools" />
+    <file src="bin\JSIL.dll" target="tools" />
+    <file src="bin\JSIL.Meta.dll" target="tools" />
+    <file src="bin\JSIL.Proxies.4.0.dll" target="tools" />
+    <file src="bin\JSIL.Proxies.Bcl.dll" target="tools" />
+    <file src="bin\JSILc.exe" target="tools" />
+    <file src="bin\JSILc.exe.config" target="tools" />
+    <file src="bin\JSILc.AnyCPU.exe" target="tools" />
+    <file src="bin\JSILc.AnyCPU.exe.config" target="tools" />    
+    <file src="bin\JSIL.Analysis.DCE.dll" target="tools" />
+    <file src="bin\Mono.Cecil.dll" target="tools" />
+    <file src="bin\Mono.Cecil.Mdb.dll" target="tools" />
+    <file src="bin\Mono.Cecil.Pdb.dll" target="tools" />
+    <file src="bin\JSIL.ExpressionInterpreter.dll" target="tools" />
+    <file src="bin\JSIL.ExpressionInterpreter.pdb" target="tools" />
+    <file src="bin\JS Libraries\**" target="tools\JS Libraries" />
+    <file src="Libraries\" target="tools\JS Libraries\JsLibraries" />
+  </files>
+</package>
\ No newline at end of file
diff --git a/JSIL/JSIL.csproj b/JSIL/JSIL.csproj
index 0a1dea55b..41fc605b6 100644
--- a/JSIL/JSIL.csproj
+++ b/JSIL/JSIL.csproj
@@ -85,6 +85,7 @@
     <Compile Include="PackedStructArray.cs" />
     <Compile Include="Progress.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="Properties\GlobalAssemblyInfo.cs" />
     <Compile Include="SourceMapBuilder.cs" />
     <Compile Include="SpecialIdentifiers.cs" />
     <Compile Include="Threading.cs" />
diff --git a/JSIL/Properties/AssemblyInfo.cs b/JSIL/Properties/AssemblyInfo.cs
index b6fa9bba6..aa9cb52b1 100644
--- a/JSIL/Properties/AssemblyInfo.cs
+++ b/JSIL/Properties/AssemblyInfo.cs
@@ -1,5 +1,4 @@
 using System.Reflection;
-using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
 
 // General Information about an assembly is controlled through the following 
@@ -8,10 +7,6 @@
 [assembly: AssemblyTitle("JSIL")]
 [assembly: AssemblyDescription("MSIL to Javascript Translator Library")]
 [assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("Squared Interactive")]
-[assembly: AssemblyProduct("JSIL")]
-[assembly: AssemblyCopyright("Copyright © Squared Interactive 2011")]
-[assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
 
 // Setting ComVisible to false makes the types in this assembly not visible 
@@ -21,15 +16,3 @@
 
 // The following GUID is for the ID of the typelib if this project is exposed to COM
 [assembly: Guid("ab70f926-4c13-4da0-926c-05642b4857a7")]
-
-// 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.8.2.*")]
diff --git a/JSIL/Properties/GlobalAssemblyInfo.cs b/JSIL/Properties/GlobalAssemblyInfo.cs
new file mode 100644
index 000000000..a67054205
--- /dev/null
+++ b/JSIL/Properties/GlobalAssemblyInfo.cs
@@ -0,0 +1,13 @@
+using System.Reflection;
+
+// 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: AssemblyCompany("Squared Interactive")]
+[assembly: AssemblyProduct("JSIL")]
+[assembly: AssemblyCopyright("Copyright © Squared Interactive 2011")]
+[assembly: AssemblyTrademark("")]
+
+[assembly: AssemblyVersion("0.9.0.0")]
+[assembly: AssemblyInformationalVersion("0.9.0-local")]
+[assembly: AssemblyFileVersion("0.9.0.0")]
\ No newline at end of file
diff --git a/MsBuild/JSIL.MsBuild.nuspec b/MsBuild/JSIL.MsBuild.nuspec
new file mode 100644
index 000000000..71986cf93
--- /dev/null
+++ b/MsBuild/JSIL.MsBuild.nuspec
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
+  <metadata>
+    <id>JSIL.MsBuild</id>
+    <version>$version$</version>
+    <authors>Squared Interactive</authors>
+    <description>JSIL MsBuild Integration</description>
+    <language>en-US</language>
+    <projectUrl>https://github.com/sq/JSIL</projectUrl>
+    <licenseUrl>https://github.com/sq/JSIL/blob/master/LICENSE</licenseUrl>
+    <dependencies>
+      <dependency id="JSIL.Compiler" version="[$version$]" />
+    </dependencies>
+  </metadata>
+  <files>
+    <file src="JSIL.MsBuild.targets" target="build" />
+  </files>
+</package>
\ No newline at end of file
diff --git a/MsBuild/JSIL.MsBuild.targets b/MsBuild/JSIL.MsBuild.targets
new file mode 100644
index 000000000..324e2fdc0
--- /dev/null
+++ b/MsBuild/JSIL.MsBuild.targets
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+    <Target Name="JsilTranslation" AfterTargets="AfterBuild">
+        <Exec Command="$(MSBuildThisFileDirectory)..\..\JSIL.Compiler.%VERSION%\tools\jsilc &quot;$(TargetPath)&quot;" WorkingDirectory="$(TargetDir)" />
+    </Target>
+</Project>
\ No newline at end of file
diff --git a/Proxies/BCL/Properties/AssemblyInfo.cs b/Proxies/BCL/Properties/AssemblyInfo.cs
index a279c8589..4b504dad8 100644
--- a/Proxies/BCL/Properties/AssemblyInfo.cs
+++ b/Proxies/BCL/Properties/AssemblyInfo.cs
@@ -1,5 +1,4 @@
 using System.Reflection;
-using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
 
 // General Information about an assembly is controlled through the following 
@@ -8,10 +7,6 @@
 [assembly: AssemblyTitle("JSIL Proxies BLC")]
 [assembly: AssemblyDescription("JSIL Standard Type Proxies for BCL assemblies")]
 [assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("Squared Interactive")]
-[assembly: AssemblyProduct("JSIL")]
-[assembly: AssemblyCopyright("Copyright © Squared Interactive 2011")]
-[assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
 
 // Setting ComVisible to false makes the types in this assembly not visible 
@@ -20,17 +15,4 @@
 [assembly: ComVisible(false)]
 
 // The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("8BB79C50-0821-4C59-AFF8-21F25591F0E4")]
-
-// 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: Guid("8BB79C50-0821-4C59-AFF8-21F25591F0E4")]
\ No newline at end of file
diff --git a/Proxies/BCL/Proxies.Bcl.csproj b/Proxies/BCL/Proxies.Bcl.csproj
index a115dad89..1873d74eb 100644
--- a/Proxies/BCL/Proxies.Bcl.csproj
+++ b/Proxies/BCL/Proxies.Bcl.csproj
@@ -36,6 +36,9 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="..\..\JSIL\Properties\GlobalAssemblyInfo.cs">
+      <Link>Properties\GlobalAssemblyInfo.cs</Link>
+    </Compile>
     <Compile Include="JSIL.Async.cs" />
     <Compile Include="JSIL.Bootstrap.cs" />
     <Compile Include="JSIL.Bootstrap.DateTime.cs" />
diff --git a/Proxies/Properties/AssemblyInfo.cs b/Proxies/Properties/AssemblyInfo.cs
index a91ae75f4..0501077f5 100644
--- a/Proxies/Properties/AssemblyInfo.cs
+++ b/Proxies/Properties/AssemblyInfo.cs
@@ -1,5 +1,4 @@
 using System.Reflection;
-using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
 
 // General Information about an assembly is controlled through the following 
@@ -8,10 +7,6 @@
 [assembly: AssemblyTitle("JSIL Proxies")]
 [assembly: AssemblyDescription("JSIL Standard Type Proxies")]
 [assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("Squared Interactive")]
-[assembly: AssemblyProduct("JSIL")]
-[assembly: AssemblyCopyright("Copyright © Squared Interactive 2011")]
-[assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
 
 // Setting ComVisible to false makes the types in this assembly not visible 
@@ -20,17 +15,4 @@
 [assembly: ComVisible(false)]
 
 // The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("28ac4af1-39f8-41f5-9d58-83b0b906156f")]
-
-// 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: Guid("28ac4af1-39f8-41f5-9d58-83b0b906156f")]
\ No newline at end of file
diff --git a/Proxies/Proxies.4.0.csproj b/Proxies/Proxies.4.0.csproj
index 741b4772a..b0104ccfc 100644
--- a/Proxies/Proxies.4.0.csproj
+++ b/Proxies/Proxies.4.0.csproj
@@ -35,6 +35,9 @@
     <Reference Include="System" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="..\JSIL\Properties\GlobalAssemblyInfo.cs">
+      <Link>Properties\GlobalAssemblyInfo.cs</Link>
+    </Compile>
     <Compile Include="Array.cs" />
     <Compile Include="Console.cs" />
     <Compile Include="Collections.cs" />
diff --git a/Proxies/XNA4/Properties/AssemblyInfo.cs b/Proxies/XNA4/Properties/AssemblyInfo.cs
index c2636547b..e29c9a7fd 100644
--- a/Proxies/XNA4/Properties/AssemblyInfo.cs
+++ b/Proxies/XNA4/Properties/AssemblyInfo.cs
@@ -1,5 +1,4 @@
 using System.Reflection;
-using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
 
 // General Information about an assembly is controlled through the following 
@@ -8,10 +7,6 @@
 [assembly: AssemblyTitle("JSIL Proxies")]
 [assembly: AssemblyDescription("JSIL XNA Type Proxies")]
 [assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("Squared Interactive")]
-[assembly: AssemblyProduct("JSIL")]
-[assembly: AssemblyCopyright("Copyright © Squared Interactive 2011")]
-[assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
 
 // Setting ComVisible to false makes the types in this assembly not visible 
@@ -21,16 +16,3 @@
 
 // The following GUID is for the ID of the typelib if this project is exposed to COM
 [assembly: Guid("e5eb9c65-1323-4620-bae8-c856b9df3a99")]
-
-// 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")]
diff --git a/Proxies/XNA4/Proxies.XNA4.csproj b/Proxies/XNA4/Proxies.XNA4.csproj
index c65c2d004..55831776d 100644
--- a/Proxies/XNA4/Proxies.XNA4.csproj
+++ b/Proxies/XNA4/Proxies.XNA4.csproj
@@ -45,6 +45,9 @@
     <Reference Include="System.Core" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="..\..\JSIL\Properties\GlobalAssemblyInfo.cs">
+      <Link>Properties\GlobalAssemblyInfo.cs</Link>
+    </Compile>
     <Compile Include="..\XNACommon\Primitives.cs" />
     <Compile Include="..\XNACommon\UnsafeNativeMethods.cs" />
     <Compile Include="..\XNACommon\Content.cs" />
diff --git a/Tests.DCE/Properties/AssemblyInfo.cs b/Tests.DCE/Properties/AssemblyInfo.cs
index 06be022a3..6c6934c82 100644
--- a/Tests.DCE/Properties/AssemblyInfo.cs
+++ b/Tests.DCE/Properties/AssemblyInfo.cs
@@ -1,5 +1,4 @@
 using System.Reflection;
-using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
 
 // General Information about an assembly is controlled through the following 
@@ -8,10 +7,6 @@
 [assembly: AssemblyTitle("Tests.DCE")]
 [assembly: AssemblyDescription("")]
 [assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Tests.DCE")]
-[assembly: AssemblyCopyright("Copyright ©  2015")]
-[assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
 
 // Setting ComVisible to false makes the types in this assembly not visible 
@@ -20,17 +15,4 @@
 [assembly: ComVisible(false)]
 
 // The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("940a7fc1-3cff-43cf-bac7-a27ab18cd0b1")]
-
-// 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: Guid("940a7fc1-3cff-43cf-bac7-a27ab18cd0b1")]
\ No newline at end of file
diff --git a/Tests.DCE/Tests.DCE.csproj b/Tests.DCE/Tests.DCE.csproj
index 3087e38bb..8ddaa0863 100644
--- a/Tests.DCE/Tests.DCE.csproj
+++ b/Tests.DCE/Tests.DCE.csproj
@@ -76,6 +76,9 @@
     <None Include="DCETests\DCEMetaAttributesOnProxies.cs" />
     <None Include="DCETests\StripOuterTypes.cs" />
     <None Include="DCETests\StripInterfaceImplementation.cs" />
+    <Compile Include="..\JSIL\Properties\GlobalAssemblyInfo.cs">
+      <Link>Properties\GlobalAssemblyInfo.cs</Link>
+    </Compile>
     <Compile Include="DeadCodeEliminationTest.cs" />
     <None Include="app.config" />
     <Compile Include="Properties\AssemblyInfo.cs" />
diff --git a/Tests/Properties/AssemblyInfo.cs b/Tests/Properties/AssemblyInfo.cs
index 51071f128..9ada073fa 100644
--- a/Tests/Properties/AssemblyInfo.cs
+++ b/Tests/Properties/AssemblyInfo.cs
@@ -1,5 +1,4 @@
 using System.Reflection;
-using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
 
 // General Information about an assembly is controlled through the following 
@@ -8,10 +7,6 @@
 [assembly: AssemblyTitle("Tests")]
 [assembly: AssemblyDescription("JSIL Test Suite")]
 [assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("Squared Interactive")]
-[assembly: AssemblyProduct("JSIL")]
-[assembly: AssemblyCopyright("Copyright © Squared Interactive 2011")]
-[assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
 
 // Setting ComVisible to false makes the types in this assembly not visible 
@@ -20,17 +15,4 @@
 [assembly: ComVisible(false)]
 
 // The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("ca7c359b-0f27-40c7-ba51-7220a6c69e65")]
-
-// 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: Guid("ca7c359b-0f27-40c7-ba51-7220a6c69e65")]
\ No newline at end of file
diff --git a/Tests/SimpleTests.csproj b/Tests/SimpleTests.csproj
index 6c9957201..91b562b5d 100644
--- a/Tests/SimpleTests.csproj
+++ b/Tests/SimpleTests.csproj
@@ -110,6 +110,9 @@
     <None Include="SimpleTestCases\RawTypeIsObject_Issue754.cs" />
     <None Include="SimpleTestCases\HashSetSameHash_Issue752.cs" />
     <None Include="SimpleTestCases\ArrayClearGeneric.cs" />
+    <Compile Include="..\JSIL\Properties\GlobalAssemblyInfo.cs">
+      <Link>Properties\GlobalAssemblyInfo.cs</Link>
+    </Compile>
     <Compile Include="SimpleTestCasesForStubbedBcl.cs" />
     <None Include="SimpleTestCasesForTranslatedBcl\FailsOnMono\Attributes.cs" />
     <Compile Include="SimpleTestCasesForTranslatedBcl.cs" />
diff --git a/Tests/Tests.csproj b/Tests/Tests.csproj
index 3a5f55f23..6a6df9223 100644
--- a/Tests/Tests.csproj
+++ b/Tests/Tests.csproj
@@ -161,6 +161,9 @@
     <None Include="EmscriptenTestCases\OutUnionParameter.cs" />
     <None Include="EmscriptenTestCases\OutComplexUnionParameter.cs" />
     <None Include="EmscriptenTestCases\ReturnEnum.cs" />
+    <Compile Include="..\JSIL\Properties\GlobalAssemblyInfo.cs">
+      <Link>Properties\GlobalAssemblyInfo.cs</Link>
+    </Compile>
     <Compile Include="EmscriptenTestCases\ProxiedExternFunction.cs" />
     <None Include="EmscriptenTestCases\IntPtrZeroEquality.cs" />
     <None Include="EmscriptenTestCases\StringArrayParameter.cs" />
diff --git a/appveyor.yml b/appveyor.yml
index 9413e561f..690fa56c2 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -5,7 +5,22 @@ cache:
 install:
   - git submodule update --init --recursive
   - nuget restore JSIL.sln
+  - choco install gitversion.portable -pre -y
+  - ps: gitversion /l console /output buildserver /updateAssemblyInfo JSIL\Properties\GlobalAssemblyInfo.cs
 build_script:
   - msbuild "JSIL.sln" /m /verbosity:minimal /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" /P:Platform=NoXNA
+after_build:
+  - ps: (gc MsBuild\JSIL.MsBuild.targets) -replace '%VERSION%', $Env:GitVersion_NuGetVersion | Out-File -Encoding "UTF8" MsBuild\JSIL.MsBuild.targets
+  - cmd: nuget pack JSIL.nuspec -version "%GitVersion_NuGetVersion%"
+  - cmd: nuget pack MsBuild\JSIL.MsBuild.nuspec -version "%GitVersion_NuGetVersion%"
 test_script:
-  - nunit-console-x86 bin\Tests.DCE.dll bin\SimpleTests.dll bin\Tests.dll /include:"FailsOnMono|(FailsOnMonoWhenStubbed+Stubbed)|(FailsOnMonoWhenStubbed+Translated)"
\ No newline at end of file
+  - nunit-console-x86 bin\Tests.DCE.dll bin\SimpleTests.dll bin\Tests.dll /include:"FailsOnMono|(FailsOnMonoWhenStubbed+Stubbed)|(FailsOnMonoWhenStubbed+Translated)"
+artifacts:
+  - path: '*.nupkg' 
+deploy:
+  provider: NuGet
+  server: https://www.myget.org/F/jsil/api/v2/package
+  api_key:
+    secure: EBvntnmrV7ni1xQY8grb2sUAOeMlNqGkkqRSdMJrLPG5N42YRCxhZ7DT5Nor/l6k
+  skip_symbols: true
+  artifact: /.*\.nupkg/
\ No newline at end of file