diff --git a/Source/chocolatey-language-server/Engine/TextPositions.cs b/Source/chocolatey-language-server/Engine/TextPositions.cs
index cfc375c..c8be6ef 100644
--- a/Source/chocolatey-language-server/Engine/TextPositions.cs
+++ b/Source/chocolatey-language-server/Engine/TextPositions.cs
@@ -27,6 +27,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
using System;
using System.Collections.Generic;
using OmniSharp.Extensions.LanguageServer.Protocol.Models;
+using Range = OmniSharp.Extensions.LanguageServer.Protocol.Models.Range;
namespace Chocolatey.Language.Server.Engine
{
diff --git a/Source/chocolatey-language-server/chocolatey-language-server.csproj b/Source/chocolatey-language-server/chocolatey-language-server.csproj
index 120c520..38f3ff0 100644
--- a/Source/chocolatey-language-server/chocolatey-language-server.csproj
+++ b/Source/chocolatey-language-server/chocolatey-language-server.csproj
@@ -2,7 +2,7 @@
Exe
- netcoreapp2.1
+ netcoreapp3.1
latest
diff --git a/nuspec/nuget/chocolatey-lsp.nuspec b/nuspec/nuget/chocolatey-lsp.nuspec
new file mode 100644
index 0000000..ef87609
--- /dev/null
+++ b/nuspec/nuget/chocolatey-lsp.nuspec
@@ -0,0 +1,21 @@
+
+
+
+ chocolatey-lsp-win64
+ $version$
+ Codecov
+ Larz White, Kim J. Nordmo
+ Larz White, Kim J. Nordmo
+ MIT
+ https://github.com/codecov/codecov-exe
+ https://cdn.jsdelivr.net/gh/codecov/media@0953f4e0d5315fb6d526a248bc88e1bc16506a37/logos/pink.png
+ false
+ Codecov global executable uploader.
+
+Codecov global executable uploader for PowerShell and .NET applications/libraries. Supports Windows, Linux and OSX.
+
+ Copyright (c) 2017-Present Larz White, Kim J. Nordmo
+ All release notes for Codecov can be found on the GitHub site - https://github.com/codecov/codecov-exe/releases/tag/$version$
+ coverage codecov
+
+
\ No newline at end of file
diff --git a/recipe.cake b/recipe.cake
index dc33b9c..5b49946 100644
--- a/recipe.cake
+++ b/recipe.cake
@@ -23,4 +23,82 @@ ToolSettings.SetToolSettings(context: Context,
testCoverageExcludeByAttribute: "*.ExcludeFromCodeCoverage*",
testCoverageExcludeByFile: "*/*Designer.cs;*/*.g.cs;*/*.g.i.cs");
+var NativeRuntimes = new Dictionary
+{
+ [PlatformFamily.Windows] = "win-x64",
+ [PlatformFamily.Linux] = "linux-x64",
+ [PlatformFamily.OSX] = "osx-x64",
+};
+
+Task("DotNetCore-Publish")
+ .IsDependeeOf("Create-NuGet-Packages")
+ .IsDependentOn("DotNetCore-Test")
+ .Does(() =>
+{
+ foreach(var runtime in NativeRuntimes)
+ {
+ var runtimeName = runtime.Value;
+
+ var settings = new DotNetCorePublishSettings
+ {
+ Framework = "netcoreapp3.1",
+ Runtime = runtimeName,
+ NoRestore = false,
+ Configuration = BuildParameters.Configuration,
+ OutputDirectory = BuildParameters.Paths.Directories.TempBuild.Combine("Native").Combine(runtimeName),
+ MSBuildSettings = new DotNetCoreMSBuildSettings()
+ .WithProperty("Version", BuildParameters.Version.SemVersion)
+ .WithProperty("AssemblyVersion", BuildParameters.Version.Version)
+ .WithProperty("FileVersion", BuildParameters.Version.Version)
+ .WithProperty("AssemblyInformationalVersion", BuildParameters.Version.InformationalVersion)
+ };
+
+ settings.ArgumentCustomization =
+ arg => arg
+ .Append("/p:PublishTrimmed=true");
+
+ DotNetCorePublish(BuildParameters.SolutionFilePath.FullPath, settings);
+ }
+});
+
+((CakeTask)BuildParameters.Tasks.CreateNuGetPackagesTask.Task).Actions.Clear();
+
+BuildParameters.Tasks.CreateNuGetPackagesTask.Does(() =>
+{
+ var nuspecFiles = GetFiles(BuildParameters.Paths.Directories.NugetNuspecDirectory + "/**/*.nuspec");
+
+ EnsureDirectoryExists(BuildParameters.Paths.Directories.NuGetPackages);
+
+ foreach (var nuspecFile in nuspecFiles)
+ {
+ foreach (var runtime in NativeRuntimes)
+ {
+ var runtimeName = runtime.Value;
+ var baseDirectory = BuildParameters.Paths.Directories.TempBuild.Combine("Native").Combine(runtimeName);
+ if (!DirectoryExists(baseDirectory))
+ {
+ Warning("Published directory for " + runtimeName + "Does not exist");
+ continue;
+ }
+
+ NuGetPack(nuspecFile, new NuGetPackSettings
+ {
+ Id = nuspecFile.GetFilenameWithoutExtension() + ".Runtime." + runtimeName,
+ Version = BuildParameters.Version.SemVersion,
+ BasePath = baseDirectory,
+ OutputDirectory = BuildParameters.Paths.Directories.NuGetPackages,
+ Symbols = false,
+ NoPackageAnalysis = true,
+ Files = GetFiles(baseDirectory + "/*").Select(f => new NuSpecContent
+ {
+ Source = f.FullPath,
+ Target = string.Format("tools/{0}/{1}", runtimeName, f.GetFilename())
+ }).ToList()
+ });
+ }
+ }
+});
+
+
+
Build.RunDotNetCore();
\ No newline at end of file