+ $(MSBuildThisFileDirectory)
+
+
+ 1
+ 0
+ 0.0
+ false
+
+
+ $(Major).0.0.0
+
+
+
+
+ $(Major).$(Minor).$(Build_BuildNumber)
+ $(Major).$(Minor).0
+ preview
+ $(VersionPrefix)-$(VersionSuffix)
+ version=$(PackageVersion)
+
win-x64;win-x86;ubuntu.14.04-x64;ubuntu.16.04-x64;centos.7-x64;rhel.7.2-x64;debian.8-x64;fedora.23-x64;opensuse.13.2-x64;osx.10.11-x64;osx-x64;osx-arm64;linux-x64
true
true
diff --git a/Packages.props b/Packages.props
index 882c9ca6..73287fa1 100644
--- a/Packages.props
+++ b/Packages.props
@@ -1,13 +1,10 @@
-
-
-
@@ -20,8 +17,6 @@
-
-
@@ -34,6 +29,7 @@
+
@@ -47,4 +43,13 @@
+
+
+
+
+
+
+
+
diff --git a/SQL2003.snk b/SQL2003.snk
new file mode 100644
index 0000000000000000000000000000000000000000..dde1f6b9c366a5532664b692ee48a15b2bb61493
GIT binary patch
literal 160
zcmV;R0AK$ABme*efB*oL000060ssI2Bme+XQ$aBR1ONa50096eCpN8aUzLWs!qqYA
zygJNgY%h+;dHR(2_pma3FY@hDG)VY7JzQPV-^aX}#VBhm5>XewT)reLok4X6GP1q@
z=1IoyxaCr9Qg7W80F~_9d-4!~oNU_If={ZNz%dHL%c80UBUXDY`hVh3vk$DjV$|%J
Oxk|)*eLE=e_T
public class BuildPlan
{
+ public string[] FxBuildProjects { get; set; }
+ public string[] FxFrameworks { get; set; }
public IDictionary TestProjects { get; set; }
public string BuildToolsFolder { get; set; }
public string ArtifactsFolder { get; set; }
@@ -62,6 +65,7 @@ var buildPlan = JsonConvert.DeserializeObject(
var dotnetFolder = System.IO.Path.Combine(workingDirectory, buildPlan.DotNetFolder);
var dotnetcli = buildPlan.UseSystemDotNetPath ? "dotnet" : System.IO.Path.Combine(System.IO.Path.GetFullPath(dotnetFolder), "dotnet");
var toolsFolder = System.IO.Path.Combine(workingDirectory, buildPlan.BuildToolsFolder);
+var nugetcli = System.IO.Path.Combine(toolsFolder, "nuget.exe");
var sourceFolder = System.IO.Path.Combine(workingDirectory, "src");
var testFolder = System.IO.Path.Combine(workingDirectory, "test");
@@ -216,6 +220,7 @@ Task("Restore")
Task("BuildTest")
.IsDependentOn("Setup")
.IsDependentOn("Restore")
+ .IsDependentOn("BuildFx")
.Does(() =>
{
foreach (var pair in buildPlan.TestProjects)
@@ -239,6 +244,33 @@ Task("BuildTest")
}
});
+///
+/// Build .NET Framework projects.
+///
+Task("BuildFx")
+ .IsDependentOn("Setup")
+ .IsDependentOn("Restore")
+ .Does(() =>
+{
+ foreach (var project in buildPlan.FxBuildProjects)
+ {
+ foreach (var framework in buildPlan.FxFrameworks)
+ {
+ var projectFolder = System.IO.Path.Combine(sourceFolder, project);
+ var logPath = System.IO.Path.Combine(logFolder, $"{project}-{framework}-build.log");
+ using (var logWriter = new StreamWriter(logPath)) {
+ Run(dotnetcli, $"build --framework {framework} --configuration {configuration} \"{projectFolder}\"",
+ new RunOptions
+ {
+ StandardOutputWriter = logWriter,
+ StandardErrorWriter = logWriter
+ })
+ .ExceptionOnError($"Building test {project} failed for {framework}. See {logPath} for more details.");
+ }
+ }
+ }
+});
+
///
/// Packages projects specified in PackageProjects
///
@@ -263,6 +295,7 @@ Task("DotnetPack")
/// currently.
///
Task("DotnetPackPublished")
+ .IsDependentOn("DotnetPackNuspec")
.Does(() =>
{
foreach (var project in buildPlan.PackagePublishedProjects)
@@ -274,6 +307,23 @@ Task("DotnetPackPublished")
}
});
+///
+/// Packages projects specified in FxBuildProjects using available Nupecs, these projects require that publishing be done first. Note that we
+/// don't do the publishing here because we need the binaries to be signed before being packaged up and that is done by the pipeline
+/// currently.
+///
+Task("DotnetPackNuspec")
+ .Does(() =>
+{
+ foreach (var project in buildPlan.FxBuildProjects)
+ {
+ // For now, putting all nugets in the 1 directory
+ var outputFolder = System.IO.Path.Combine(nugetPackageFolder);
+ var projectFolder = System.IO.Path.Combine(packagesFolder, project);
+ DotnetPackNuspec(outputFolder, projectFolder, project);
+ }
+});
+
///
/// Packages dotnet tool projects specified in DotnetToolProjects.
///
@@ -407,6 +457,19 @@ Task("OnlyPublish")
}
}
+ if (buildPlan.FxBuildProjects.Contains(project))
+ {
+ foreach(var framework in buildPlan.FxFrameworks)
+ {
+ var outputFolder = System.IO.Path.Combine(publishFolder, packageName, "default", framework);
+ var publishArguments = "publish";
+ publishArguments = $"{publishArguments} --framework {framework} --configuration {configuration}";
+ publishArguments = $"{publishArguments} --output \"{outputFolder}\" \"{projectFolder}\"";
+ Run(dotnetcli, publishArguments)
+ .ExceptionOnError($"Failed to publish {project} / {framework}");
+ }
+ }
+
if (requireArchive)
{
foreach (var framework in buildPlan.Frameworks)
diff --git a/build.json b/build.json
index 36f60e58..ebe1eb05 100644
--- a/build.json
+++ b/build.json
@@ -24,11 +24,19 @@
"Frameworks": [
"net6.0"
],
+ "FxFrameworks":[
+ "net472",
+ "net6.0"
+ ],
"MainProjects": [
"Microsoft.SqlTools.Credentials",
"Microsoft.SqlTools.ResourceProvider",
"Microsoft.Kusto.ServiceLayer",
- "Microsoft.SqlTools.ServiceLayer"
+ "Microsoft.SqlTools.ServiceLayer",
+ "Microsoft.SqlTools.ManagedBatchParser"
+ ],
+ "FxBuildProjects": [
+ "Microsoft.SqlTools.ManagedBatchParser"
],
"PackageProjects": [
"Microsoft.SqlTools.Hosting"
diff --git a/packages/Directory.Build.props b/packages/Directory.Build.props
index 4b7afc25..06169e9a 100644
--- a/packages/Directory.Build.props
+++ b/packages/Directory.Build.props
@@ -9,12 +9,6 @@