diff --git a/.gitignore b/.gitignore
index ef8b1fd..4e6ef42 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,26 +15,11 @@
x64/
[Bb]in/
[Oo]bj/
+.dotnet/
+.tools/
-# Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets
-!packages/*/build/
-
-# NuGet restore semaphore
-build/ToolsetPackages/toolsetpackages.semaphore
-
-# NuGet
-nuget.exe
-
-# MSTest test Results
-[Tt]est[Rr]esult*/
-[Bb]uild[Ll]og.*
-UnitTestResults.html
-
-# NuGet V3 artifacts
-*-packages.config
-*.nuget.props
-*.nuget.targets
-project.lock.json
+# Per-user project properties
+launchSettings.json
*_i.c
*_p.c
@@ -60,9 +45,6 @@ project.lock.json
*.log
*.scc
-# Visual Studio cache files
-*.sln.ide/
-
# Visual C++ cache files
ipch/
*.aps
@@ -94,35 +76,6 @@ _TeamCity*
*.ncrunch*
.*crunch*.local.xml
-# Installshield output folder
-[Ee]xpress/
-
-# DocProject is a documentation generator add-in
-DocProject/buildhelp/
-DocProject/Help/*.HxT
-DocProject/Help/*.HxC
-DocProject/Help/*.hhc
-DocProject/Help/*.hhk
-DocProject/Help/*.hhp
-DocProject/Help/Html2
-DocProject/Help/html
-
-# Click-Once directory
-publish/
-
-# Publish Web Output
-*.Publish.xml
-
-# NuGet Packages Directory
-packages/
-
-# Windows Azure Build Output
-csx
-*.build.csdef
-
-# Windows Store app package directory
-AppPackages/
-
# Others
sql/
*.Cache
@@ -135,26 +88,10 @@ ClientBin/
*.pfx
*.publishsettings
-# RIA/Silverlight projects
-Generated_Code/
-
-# Backup & report files from converting an old project file to a newer
-# Visual Studio version. Backup files are not needed, because we have git ;-)
-_UpgradeReport_Files/
-Backup*/
-UpgradeLog*.XML
-UpgradeLog*.htm
-
# SQL Server files
App_Data/*.mdf
App_Data/*.ldf
-
-#LightSwitch generated files
-GeneratedArtifacts/
-_Pvt_Extensions/
-ModelManifest.xml
-
# =========================
# Windows detritus
# =========================
diff --git a/Build.cmd b/Build.cmd
index 378d964..8b996c8 100644
--- a/Build.cmd
+++ b/Build.cmd
@@ -1,3 +1,3 @@
@echo off
-powershell -ExecutionPolicy ByPass .\build\Scripts\Windows\Build.ps1 %*
+powershell -ExecutionPolicy ByPass %~dp0build\Build.ps1 -restore -build %*
exit /b %ErrorLevel%
diff --git a/CIBuild.cmd b/CIBuild.cmd
new file mode 100644
index 0000000..66fabd4
--- /dev/null
+++ b/CIBuild.cmd
@@ -0,0 +1,3 @@
+@echo off
+powershell -ExecutionPolicy ByPass %~dp0build\Build.ps1 -restore -build -test -sign -pack -ci %*
+exit /b %ErrorLevel%
diff --git a/Directory.Build.props b/Directory.Build.props
new file mode 100644
index 0000000..f3a2d55
--- /dev/null
+++ b/Directory.Build.props
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+ Debug
+
+ $([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)\'))
+ $(RepoRoot)build\SignToolData.json
+ $(RepoRoot)build\Versions.props
+ $(NuGetPackageRoot)RoslynTools.Microsoft.RepoToolset\$(RoslynToolsMicrosoftRepoToolsetVersion)\tools\
+
+ https://github.com/dotnet/symreader
+ $(RepositoryUrl)
+
+
+ true
+ $(RepoRoot)
+
+
\ No newline at end of file
diff --git a/Restore.cmd b/Restore.cmd
index 13b57a2..2b11bfc 100644
--- a/Restore.cmd
+++ b/Restore.cmd
@@ -1 +1,3 @@
-@call %~dp0build.cmd -skipBuild -skipTest %*
+@echo off
+powershell -ExecutionPolicy ByPass %~dp0build\Build.ps1 -restore %*
+exit /b %ErrorLevel%
diff --git a/SymReader.sln b/SymReader.sln
index 395bcd6..d990731 100644
--- a/SymReader.sln
+++ b/SymReader.sln
@@ -1,39 +1,26 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
-VisualStudioVersion = 15.0.26021.0
+VisualStudioVersion = 15.0.26510.0
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Microsoft.DiaSymReader", "src\Microsoft.DiaSymReader\Shared\Microsoft.DiaSymReader.shproj", "{F9127F0F-95C8-4576-8081-96E004C1652F}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DiaSymReader.UnitTests", "src\Microsoft.DiaSymReader.Tests\Microsoft.DiaSymReader.UnitTests.csproj", "{D9CAEB67-A062-4874-96E9-51BAF1373EBB}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.DiaSymReader.NetFX20", "src\Microsoft.DiaSymReader\NetFX20\Microsoft.DiaSymReader.NetFX20.csproj", "{FA2C8969-BD1F-457A-A6E3-CA772135FF73}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.DiaSymReader.Portable", "src\Microsoft.DiaSymReader\Portable\Microsoft.DiaSymReader.Portable.csproj", "{316FD2AD-8514-41BD-98D5-61A821F3320E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.DiaSymReader.UnitTests", "src\Microsoft.DiaSymReader.Tests\Microsoft.DiaSymReader.UnitTests.csproj", "{D9CAEB67-A062-4874-96E9-51BAF1373EBB}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DiaSymReader", "src\Microsoft.DiaSymReader\Microsoft.DiaSymReader.csproj", "{13BB18F6-0FD5-42EF-A67A-A3B1E27F2ED0}"
EndProject
Global
- GlobalSection(SharedMSBuildProjectFiles) = preSolution
- src\Microsoft.DiaSymReader\Shared\Microsoft.DiaSymReader.projitems*{316fd2ad-8514-41bd-98d5-61a821f3320e}*SharedItemsImports = 4
- src\Microsoft.DiaSymReader\Shared\Microsoft.DiaSymReader.projitems*{f9127f0f-95c8-4576-8081-96e004c1652f}*SharedItemsImports = 13
- src\Microsoft.DiaSymReader\Shared\Microsoft.DiaSymReader.projitems*{fa2c8969-bd1f-457a-a6e3-ca772135ff73}*SharedItemsImports = 4
- EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {FA2C8969-BD1F-457A-A6E3-CA772135FF73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FA2C8969-BD1F-457A-A6E3-CA772135FF73}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FA2C8969-BD1F-457A-A6E3-CA772135FF73}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FA2C8969-BD1F-457A-A6E3-CA772135FF73}.Release|Any CPU.Build.0 = Release|Any CPU
- {316FD2AD-8514-41BD-98D5-61A821F3320E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {316FD2AD-8514-41BD-98D5-61A821F3320E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {316FD2AD-8514-41BD-98D5-61A821F3320E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {316FD2AD-8514-41BD-98D5-61A821F3320E}.Release|Any CPU.Build.0 = Release|Any CPU
{D9CAEB67-A062-4874-96E9-51BAF1373EBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D9CAEB67-A062-4874-96E9-51BAF1373EBB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D9CAEB67-A062-4874-96E9-51BAF1373EBB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D9CAEB67-A062-4874-96E9-51BAF1373EBB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {13BB18F6-0FD5-42EF-A67A-A3B1E27F2ED0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {13BB18F6-0FD5-42EF-A67A-A3B1E27F2ED0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {13BB18F6-0FD5-42EF-A67A-A3B1E27F2ED0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {13BB18F6-0FD5-42EF-A67A-A3B1E27F2ED0}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/Test.cmd b/Test.cmd
index c4934cb..8da52a8 100644
--- a/Test.cmd
+++ b/Test.cmd
@@ -1 +1,3 @@
-@call %~dp0build.cmd -skipRestore -skipBuild %*
+@echo off
+powershell -ExecutionPolicy ByPass %~dp0build\Build.ps1 -test %*
+exit /b %ErrorLevel%
\ No newline at end of file
diff --git a/build/NuGet.props b/build/NuGet.props
new file mode 100644
index 0000000..128dea0
--- /dev/null
+++ b/build/NuGet.props
@@ -0,0 +1,10 @@
+
+
+
+
+ $(NUGET_PACKAGES)
+ $(UserProfile)\.nuget\packages\
+ $([System.Environment]::GetFolderPath(SpecialFolder.Personal))\.nuget\packages\
+ $(NuGetPackageRoot)\
+
+
\ No newline at end of file
diff --git a/build/Packaging/pack.csx b/build/Packaging/pack.csx
deleted file mode 100644
index 05e4f00..0000000
--- a/build/Packaging/pack.csx
+++ /dev/null
@@ -1,107 +0,0 @@
-#r "System.Xml.Linq"
-
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.IO;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Text;
-using System.Xml.Linq;
-
-var errors = new List();
-
-void ReportError(string message)
-{
- var color = Console.ForegroundColor;
- Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine(message);
- Console.ForegroundColor = color;
-}
-
-void ReportSuccess(string message)
-{
- var color = Console.ForegroundColor;
- Console.ForegroundColor = ConsoleColor.Green;
- Console.WriteLine(message);
- Console.ForegroundColor = color;
-}
-
-string usage = @"usage: pack.csx ";
-
-if (Args.Count() != 4)
-{
- Console.WriteLine(usage);
- Environment.Exit(1);
-}
-
-var SolutionRoot = Path.GetFullPath(Path.Combine(ScriptRoot(), "../../"));
-string ScriptRoot([CallerFilePath]string path = "") => Path.GetDirectoryName(path);
-
-// Strip trailing '\' characters because if the path is later passed on the
-// command line when surrounded by quotes (in case the path has spaces) some
-// utilities will consider the '\"' as an escape sequence for the end quote
-var BuildVersion = Args[0].Trim();
-var NuSpecDir = Path.GetFullPath(Args[1].Trim());
-var BinDir = Path.GetFullPath(Path.GetFullPath(Args[2]).Trim().TrimEnd('\\'));
-var OutDir = Path.GetFullPath(Path.GetFullPath(Args[3]).Trim().TrimEnd('\\'));
-
-var doc = XDocument.Load(Path.Combine(SolutionRoot, "build/Targets/Dependencies.props"));
-XNamespace ns = @"http://schemas.microsoft.com/developer/msbuild/2003";
-
-var dependencyVersions = from e in doc.Root.Descendants()
- where e.Name.LocalName.EndsWith("Version")
- select new { VariableName = e.Name.LocalName, Value = e.Value };
-
-var commonArgs =
- $"-OutputDirectory \"{OutDir}\" " +
- $"-prop version=\"{BuildVersion}\" " +
- string.Join(" ", dependencyVersions.Select(d => $"-prop {d.VariableName}=\"{d.Value}\""));
-
-Directory.CreateDirectory(OutDir);
-
-int exitCode = 0;
-
-foreach (var nuspec in Directory.EnumerateFiles(NuSpecDir, "*.nuspec", SearchOption.TopDirectoryOnly))
-{
- var libraryName = Path.GetFileNameWithoutExtension(nuspec);
-
- var nugetArgs =
- $"pack \"{nuspec}\" " +
- $"-BasePath \"{Path.Combine(BinDir, libraryName)}\" " +
- commonArgs;
-
- var nugetExePath = Path.GetFullPath(Path.Combine(SolutionRoot, "nuget.exe"));
- var p = new Process();
- p.StartInfo.FileName = nugetExePath;
- p.StartInfo.Arguments = nugetArgs;
- p.StartInfo.UseShellExecute = false;
- p.StartInfo.RedirectStandardError = true;
- p.StartInfo.RedirectStandardOutput = true;
-
- Console.WriteLine($"{Environment.NewLine}Running: nuget.exe {nugetArgs}");
-
- p.Start();
- p.WaitForExit();
-
- if (p.ExitCode != 0)
- {
- exitCode = p.ExitCode;
-
- var message = $"{nuspec}: error: {p.StandardError.ReadToEnd()}";
- errors.Add(message);
- ReportError(message);
- }
- else
- {
- ReportSuccess(p.StandardOutput.ReadToEnd());
- }
-}
-
-foreach (var error in errors)
-{
- ReportError(error);
-}
-
-return exitCode;
diff --git a/build/Packaging/pack.proj b/build/Packaging/pack.proj
deleted file mode 100644
index 62e6aa6..0000000
--- a/build/Packaging/pack.proj
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
- Nuget
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/build/Signing/SignToolData.json b/build/SignToolData.json
similarity index 64%
rename from build/Signing/SignToolData.json
rename to build/SignToolData.json
index 5694c58..c9223d7 100644
--- a/build/Signing/SignToolData.json
+++ b/build/SignToolData.json
@@ -4,14 +4,14 @@
"certificate": "MicrosoftSHA1Win8WinBlue",
"strongName": "MsSharedLib72",
"values": [
- "Microsoft.DiaSymReader/NetFX20/Microsoft.DiaSymReader.dll"
+ "Microsoft.DiaSymReader/net20/Microsoft.DiaSymReader.dll"
]
},
{
"certificate": "WindowsPhone623",
"strongName": "MsSharedLib72",
"values": [
- "Microsoft.DiaSymReader/Portable/Microsoft.DiaSymReader.dll"
+ "Microsoft.DiaSymReader/netstandard1.1/Microsoft.DiaSymReader.dll"
]
}
]
diff --git a/build/Signing/35MSSharedLib1024.snk b/build/Signing/35MSSharedLib1024.snk
deleted file mode 100644
index 695f1b3..0000000
Binary files a/build/Signing/35MSSharedLib1024.snk and /dev/null differ
diff --git a/build/Signing/StrongName.targets b/build/Signing/StrongName.targets
deleted file mode 100644
index 4a03ae4..0000000
--- a/build/Signing/StrongName.targets
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-
- true
-
-
-
-
-
-
-
-
- true
- false
-
-
-
-
-
-
- false
- true
-
-
-
-
-
-
- $(MSBuildThisFileDirectory)\35MSSharedLib1024.snk
- 0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9
- 31BF3856AD364E35
-
-
-
-
-
-
- $(PrepareForBuildDependsOn);VerifyBuildFlags
-
-
-
-
-
-
\ No newline at end of file
diff --git a/build/Targets/Dependencies.props b/build/Targets/Dependencies.props
deleted file mode 100644
index e027c4c..0000000
--- a/build/Targets/Dependencies.props
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
- 0.2.0
- 0.2.0-beta
- 2.0.0-beta3-60616-03
- 2.1.0
-
-
- 4.0.11
- 4.1.0
- 4.1.0
-
-
\ No newline at end of file
diff --git a/build/Targets/Imports.targets b/build/Targets/Imports.targets
deleted file mode 100644
index e6073ab..0000000
--- a/build/Targets/Imports.targets
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/build/Targets/Settings.targets b/build/Targets/Settings.targets
deleted file mode 100644
index b7023fa..0000000
--- a/build/Targets/Settings.targets
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
- false
-
-
\ No newline at end of file
diff --git a/build/Targets/Version.props b/build/Targets/Version.props
deleted file mode 100644
index 33a73fb..0000000
--- a/build/Targets/Version.props
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
- 1.2.0
- beta1
-
-
-
diff --git a/build/Toolset.proj b/build/Toolset.proj
new file mode 100644
index 0000000..de35263
--- /dev/null
+++ b/build/Toolset.proj
@@ -0,0 +1,19 @@
+
+
+
+ net462
+
+ $(MSBuildThisProjectDirectory)..\..\artifacts\Toolset
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/Toolset/DefaultImports.targets b/build/Toolset/DefaultImports.targets
deleted file mode 100644
index b1a96b6..0000000
--- a/build/Toolset/DefaultImports.targets
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- .NETCoreApp,Version=v1.0
- win7
-
-
-
-
-
- $(OutputPath)\$(AssemblyName).xml
-
-
\ No newline at end of file
diff --git a/build/Toolset/DefaultSettings.targets b/build/Toolset/DefaultSettings.targets
deleted file mode 100644
index 6c4b4f9..0000000
--- a/build/Toolset/DefaultSettings.targets
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
-
-
-
-
- Debug
- AnyCPU
- true
- true
- 512
- true
-
-
-
-
-
- 4
- prompt
- 1591
-
-
- true
- full
- DEBUG;TRACE
- true
-
-
- pdbonly
- TRACE
- true
-
-
-
-
\ No newline at end of file
diff --git a/build/Toolset/GenerateAssemblyInfo.targets b/build/Toolset/GenerateAssemblyInfo.targets
deleted file mode 100644
index 005391f..0000000
--- a/build/Toolset/GenerateAssemblyInfo.targets
+++ /dev/null
@@ -1,82 +0,0 @@
-
-
- $(IntermediateOutputPath)GeneratedAssemblyInfo_$(BuildVersion)$(DefaultLanguageSourceExtension)
-
-
-
-
- <_Parameter1>Microsoft Corporation
-
-
- <_Parameter1>$(Configuration)
-
-
- <_Parameter1>© Microsoft Corporation. All rights reserved.
-
-
- <_Parameter1>$(AssemblyName)
-
-
- <_Parameter1>$(BuildVersion)
-
-
- <_Parameter1>$(BuildVersion)
-
-
- <_Parameter1>$(AssemblyVersion)
-
-
-
-
-
- GenerateAssemblyInfoFile;$(CoreCompileDependsOn)
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/build/Toolset/GenerateInternalsVisibleTo.targets b/build/Toolset/GenerateInternalsVisibleTo.targets
deleted file mode 100644
index 52fb57c..0000000
--- a/build/Toolset/GenerateInternalsVisibleTo.targets
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
- $(IntermediateOutputPath)GeneratedInternalsVisibleTo$(DefaultLanguageSourceExtension)
-
-
-
- GenerateInternalsVisibleToFile;$(CompileDependsOn)
-
-
-
-
- false
-
-
-
-
- , PublicKey=$(PublicKey)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/build/Toolset/Layout.props b/build/Toolset/Layout.props
deleted file mode 100644
index 3fd0970..0000000
--- a/build/Toolset/Layout.props
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
- $([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)\..\..\artifacts'))
- $([System.IO.Path]::GetFileName('$(MSBuildProjectDirectory)'))
- $(ArtifactsDir)\$(Configuration)\bin
- $(OutDirBase)\$(OutDirName)
- $(ArtifactsDir)\$(Configuration)\obj\$(OutDirName)
- $(OutDir)
-
-
- false
-
-
\ No newline at end of file
diff --git a/build/Toolset/MicroBuild.Sign.proj b/build/Toolset/MicroBuild.Sign.proj
deleted file mode 100644
index 9f9b0ee..0000000
--- a/build/Toolset/MicroBuild.Sign.proj
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
- Debug
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/build/Toolset/NuGet.props b/build/Toolset/NuGet.props
deleted file mode 100644
index 9dc9f18..0000000
--- a/build/Toolset/NuGet.props
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
- $(MSBuildThisFileDirectory)..\..\
- $(ProjectDir)\nuget.exe
- $(ProjectDir)build\Toolset\
-
-
- $(NUGET_PACKAGES)
- $(UserProfile)\.nuget\packages
- $([System.Environment]::GetFolderPath(SpecialFolder.Personal))\.nuget\packages
-
-
\ No newline at end of file
diff --git a/build/Toolset/Toolset.targets b/build/Toolset/Toolset.targets
deleted file mode 100644
index 1551f1f..0000000
--- a/build/Toolset/Toolset.targets
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
- $(NuGetPackageRoot)\Microsoft.Net.Compilers\$(ToolsetCompilerPackageVersion)
- $(ToolsetCompilerPackageDir)\build\Microsoft.Net.Compilers.props
- $(NuGetPackageRoot)\xunit.runner.console\$(XUnitConsoleRunnerPackageVersion)\tools\xunit.console.x86.exe
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/build/Toolset/Version.props b/build/Toolset/Version.props
deleted file mode 100644
index b408798..0000000
--- a/build/Toolset/Version.props
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-
-
-
-
- dev
- dev
- $(AssemblyVersion).0
- $(AssemblyVersion).9000000
-
-
-
-
-
- $([MSBuild]::Subtract($(BUILD_BUILDNUMBER.Split('.')[0].Substring(3).Trim()), 8800))
- $(BUILD_BUILDNUMBER.Split('.')[1].PadLeft(2,'0'))
- $(NuGetMoniker)-$(BuildNumberFiveDigitDateStamp)-$(BuildNumberBuildOfTheDayPadded)
- $(AssemblyVersion).$(BuildNumberFiveDigitDateStamp)
- $(AssemblyVersion).$(BuildNumberFiveDigitDateStamp)$(BuildNumberBuildOfTheDayPadded)
-
-
-
-
-
-
-
- $(AssemblyVersion)
-
-
-
-
-
- $(AssemblyVersion)-$(NuGetVersionSuffix)
-
-
-
-
diff --git a/build/Toolset/XunitProjectRunAction.targets b/build/Toolset/XunitProjectRunAction.targets
deleted file mode 100644
index a38c21e..0000000
--- a/build/Toolset/XunitProjectRunAction.targets
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- $(OutDir)\xUnitResults
- "$(OutDir)\$(AssemblyName).dll" -html "$(XUnitTestResultsDirectory)\$(AssemblyName).html" -noshadow
-
-
-
-
-
-
-
-
- Program
- $(XUnitConsoleRunnerExeFilePath)
- $(XUnitArguments)
-
-
-
diff --git a/build/Toolset/project.json b/build/Toolset/project.json
deleted file mode 100644
index 3f08702..0000000
--- a/build/Toolset/project.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "dependencies": {
- "MicroBuild.Core": "0.2.0",
- "Microsoft.Net.Compilers": "2.0.0-beta3-60616-03",
- "xunit.runner.console": "2.1.0",
- "RoslynTools.Microsoft.SignTool": "0.2.0-beta"
- },
- "frameworks": {
- "net46": {}
- },
- "runtimes": {
- "win": {}
- }
-}
\ No newline at end of file
diff --git a/build/Versions.props b/build/Versions.props
new file mode 100644
index 0000000..188a7fe
--- /dev/null
+++ b/build/Versions.props
@@ -0,0 +1,28 @@
+
+
+
+ 1.2.0
+ beta1
+
+
+ 1.0.0-alpha14
+ 1.0.0-alpha1
+ 0.3.2-beta
+ 2.0.0-preview1-005977
+ 0.2.0
+ 1.0.101
+ 2.0.1
+ 2.1.0
+
+
+ 1.0.47
+
+
+ 15.0.0-preview-20170125-04
+ 2.2.0-beta4-build3444
+ 2.2.0-beta4-build1194
+
+
\ No newline at end of file
diff --git a/build/build.proj b/build/build.proj
new file mode 100644
index 0000000..ddb9567
--- /dev/null
+++ b/build/build.proj
@@ -0,0 +1,25 @@
+
+
+
+ $(MSBuildThisFileDirectory)..\SymReader.sln
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/build.ps1 b/build/build.ps1
new file mode 100644
index 0000000..ce0a487
--- /dev/null
+++ b/build/build.ps1
@@ -0,0 +1,85 @@
+[CmdletBinding(PositionalBinding=$false)]
+Param(
+ [string] $configuration = "Debug",
+ [string] $solution = "",
+ [string] $verbosity = "normal",
+ [switch] $restore,
+ [switch] $build,
+ [switch] $test,
+ [switch] $sign,
+ [switch] $pack,
+ [switch] $ci,
+ [switch] $clearCaches
+)
+
+set-strictmode -version 2.0
+$ErrorActionPreference = "Stop"
+
+$RepoRoot = Join-Path $PSScriptRoot "..\"
+$ToolsRoot = Join-Path $RepoRoot ".tools"
+$BuildProj = Join-Path $PSScriptRoot "build.proj"
+$DependenciesProps = Join-Path $PSScriptRoot "Versions.props"
+$ArtifactsDir = Join-Path $RepoRoot "artifacts"
+$LogDir = Join-Path $ArtifactsDir "log"
+$TempDir = Join-Path (Join-Path $ArtifactsDir $configuration) "tmp"
+
+function Create-Directory([string[]] $path) {
+ if (!(Test-Path -path $path)) {
+ New-Item -path $path -force -itemType "Directory" | Out-Null
+ }
+}
+
+function GetVSWhereVersion {
+ [xml]$xml = Get-Content $DependenciesProps
+ return $xml.Project.PropertyGroup.VSWhereVersion
+}
+
+function LocateMsbuild {
+
+ $vswhereVersion = GetVSWhereVersion
+ $vsWhereDir = Join-Path $ToolsRoot "vswhere\$vswhereVersion"
+ $vsWhereExe = Join-Path $vsWhereDir "vswhere.exe"
+
+ if (!(Test-Path $vsWhereExe)) {
+ Create-Directory $vsWhereDir
+ Invoke-WebRequest "http://github.com/Microsoft/vswhere/releases/download/$vswhereVersion/vswhere.exe" -OutFile $vswhereExe
+ }
+
+ $vsInstallDir = & $vsWhereExe -latest -property installationPath -requires Microsoft.Component.MSBuild -requires Microsoft.VisualStudio.Component.VSSDK -requires Microsoft.Net.Component.4.6.TargetingPack -requires Microsoft.VisualStudio.Component.Roslyn.Compiler -requires Microsoft.VisualStudio.Component.VSSDK
+ $msbuildExe = Join-Path $vsInstallDir "MSBuild\15.0\Bin\msbuild.exe"
+
+ if (!(Test-Path $msbuildExe)) {
+ throw "Failed to locate msbuild (exit code '$lastExitCode')."
+ }
+
+ return $msbuildExe
+}
+
+function Build {
+ $msbuildExe = LocateMsbuild
+
+ $summaryLog = Join-Path $LogDir "Build.log"
+ $warningLog = Join-Path $LogDir "Build.wrn"
+ $errorLog = Join-Path $LogDir "Build.err"
+
+ Create-Directory($logDir)
+
+ & $msbuildExe $BuildProj /p:Configuration=$configuration /p:SolutionPath=$solution /p:Restore=$restore /p:Build=$build /p:Test=$test /p:Sign=$sign /p:Pack=$pack /p:CIBuild=$ci /v:$verbosity /flp1:Summary`;Verbosity=diagnostic`;Encoding=UTF-8`;LogFile=$summaryLog /flp2:WarningsOnly`;Verbosity=diagnostic`;Encoding=UTF-8`;LogFile=$warningLog /flp3:ErrorsOnly`;Verbosity=diagnostic`;Encoding=UTF-8`;LogFile=$errorLog
+
+ if ($lastExitCode -ne 0) {
+ throw "Build failed (exit code '$lastExitCode')."
+ }
+}
+
+if ($ci) {
+ Create-Directory $TempDir
+ $env:TEMP = $TempDir
+ $env:TMP = $TempDir
+}
+
+if ($clearCaches) {
+ # clean nuget packages -- necessary to avoid mismatching versions of swix microbuild build plugin and VSSDK on Jenkins
+ Remove-Item (Join-Path $env:USERPROFILE ".nuget\packages") -Recurse -Force
+}
+
+Build
diff --git a/build/scripts/windows/build.ps1 b/build/scripts/windows/build.ps1
deleted file mode 100644
index 8fa0239..0000000
--- a/build/scripts/windows/build.ps1
+++ /dev/null
@@ -1,454 +0,0 @@
-[CmdletBinding(PositionalBinding=$false)]
-Param(
- [string] $configuration = "Debug",
- [string] $deployHive = "TestImpact",
- [string] $msbuildVersion = "14.0",
- [string] $nugetVersion = "3.5.0-beta2",
- [switch] $help,
- [switch] $official,
- [switch] $skipBuild,
- [switch] $skipDeploy,
- [switch] $skipRestore,
- [switch] $skipInstallRoslyn,
- [switch] $skipTest,
- [switch] $skipTest32,
- [switch] $skipTest64,
- [switch] $skipTestCore,
- [switch] $integration,
- [string] $target = "Build",
- [string] $testFilter = "*.UnitTests.dll",
- [string] $integrationTestFilter = "*.IntegrationTests.dll",
- [string] $xUnitVersion = "2.1.0"
-)
-
-function Create-Directory([string[]] $path) {
- if (!(Test-Path -path $path)) {
- New-Item -path $path -force -itemType "Directory" | Out-Null
- }
-}
-
-function Download-File([string] $address, [string] $fileName) {
- $webClient = New-Object -typeName "System.Net.WebClient"
- $webClient.DownloadFile($address, $fileName)
-}
-
-function Get-ProductVersion([string[]] $path) {
- if (!(Test-Path -path $path)) {
- return ""
- }
-
- $item = Get-Item -path $path
- return $item.VersionInfo.ProductVersion
-}
-
-function Get-RegistryValue([string] $keyName, [string] $valueName) {
- $registryKey = Get-ItemProperty -path $keyName
- return $registryKey.$valueName
-}
-
-function Locate-ArtifactsPath {
- $rootPath = Locate-RootPath
- $artifactsPath = Join-Path -path $rootPath -ChildPath "artifacts\"
-
- Create-Directory -path $artifactsPath
- return Resolve-Path -path $artifactsPath
-}
-
-function Locate-MSBuild {
- $msbuildPath = Locate-MSBuildPath
- $msbuild = Join-Path -path $msbuildPath -childPath "MSBuild.exe"
-
- if (!(Test-Path -path $msbuild)) {
- throw "The specified MSBuild version ($msbuildVersion) could not be located."
- }
-
- return Resolve-Path -path $msbuild
-}
-
-function Locate-MSBuildLogPath {
- $artifactsPath = Locate-ArtifactsPath
- $msbuildLogPath = Join-Path -path $artifactsPath -ChildPath "$configuration\log\"
-
- Create-Directory -path $msbuildLogPath
- return Resolve-Path -path $msbuildLogPath
-}
-
-function Locate-MSBuildPath {
- $msbuildVersionPath = Locate-MSBuildVersionPath
- $msbuildPath = Get-RegistryValue -keyName $msbuildVersionPath -valueName "MSBuildToolsPath"
- return Resolve-Path -path $msbuildPath
-}
-
-function Locate-MSBuildVersionPath {
- $msbuildVersionPath = "HKLM:\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\$msbuildVersion"
-
- if (!(Test-Path -path $msbuildVersionPath)) {
- $msbuildVersionPath = "HKLM:\SOFTWARE\Microsoft\MSBuild\ToolsVersions\$msbuildVersion"
-
- if (!(Test-Path -path $msbuildVersionPath)) {
- throw "The specified MSBuild version ($msbuildVersion) could not be located."
- }
- }
-
- return Resolve-Path -path $msbuildVersionPath
-}
-
-function Locate-NuGet {
- $rootPath = Locate-RootPath
- $nuget = Join-Path -path $rootPath -childPath "nuget.exe"
-
- if (Test-Path -path $nuget) {
- $currentVersion = Get-ProductVersion -path $nuget
-
- if ($currentVersion.StartsWith($nugetVersion)) {
- return Resolve-Path -path $nuget
- }
-
- Write-Host -object "The located version of NuGet ($currentVersion) is out of date. The specified version ($nugetVersion) will be downloaded instead."
- Remove-Item -path $nuget | Out-Null
- }
-
- Download-File -address "https://dist.nuget.org/win-x86-commandline/v$nugetVersion/NuGet.exe" -fileName $nuget
-
- if (!(Test-Path -path $nuget)) {
- throw "The specified NuGet version ($nugetVersion) could not be downloaded."
- }
-
- return Resolve-Path -path $nuget
-}
-
-function Locate-NuGetConfig {
- $rootPath = Locate-RootPath
- $nugetConfig = Join-Path -path $rootPath -childPath "nuget.config"
- return Resolve-Path -path $nugetConfig
-}
-
-function Locate-PackagesPath {
- if ($env:NUGET_PACKAGES -eq $null) {
- $env:NUGET_PACKAGES = Join-Path -path $env:UserProfile -childPath ".nuget\packages\"
- }
-
- $packagesPath = $env:NUGET_PACKAGES
-
- Create-Directory -path $packagesPath
- return Resolve-Path -path $packagesPath
-}
-
-function Locate-RootPath {
- $scriptPath = Locate-ScriptPath
- $rootPath = Join-Path -path $scriptPath -childPath "..\..\..\"
- return Resolve-Path -path $rootPath
-}
-
-function Locate-ScriptPath {
- $myInvocation = Get-Variable -name "MyInvocation" -scope "Script"
- $scriptPath = Split-Path -path $myInvocation.Value.MyCommand.Definition -parent
- return Resolve-Path -path $scriptPath
-}
-
-function Locate-Solution {
- $rootPath = Locate-RootPath
- $solution = Join-Path -path $rootPath -childPath "SymReader.sln"
- return Resolve-Path -path $solution
-}
-
-function Locate-Toolset {
- $rootPath = Locate-RootPath
- $toolset = Join-Path -path $rootPath -childPath "build\Toolset\project.json"
- return Resolve-Path -path $toolset
-}
-
-function Locate-xUnit-x86 {
- $xUnitPath = Locate-xUnitPath
- $xUnit = Join-Path -path $xUnitPath -childPath "xunit.console.x86.exe"
-
- if (!(Test-Path -path $xUnit)) {
- throw "The specified xUnit version ($xUnitVersion) could not be located."
- }
-
- return Resolve-Path -path $xUnit
-}
-
-function Locate-xUnit-x64 {
- $xUnitPath = Locate-xUnitPath
- $xUnit = Join-Path -path $xUnitPath -childPath "xunit.console.exe"
-
- if (!(Test-Path -path $xUnit)) {
- throw "The specified xUnit version ($xUnitVersion) could not be located."
- }
-
- return Resolve-Path -path $xUnit
-}
-
-function Locate-xUnitPath {
- $packagesPath = Locate-PackagesPath
- $xUnitPath = Join-Path -path $packagesPath -childPath "xunit.runner.console\$xUnitVersion\tools\"
-
- Create-Directory -path $xUnitPath
- return Resolve-Path -path $xUnitPath
-}
-
-function Locate-xUnitLogPath {
- $artifactsPath = Locate-ArtifactsPath
- $xUnitLogPath = Join-Path -path $artifactsPath -ChildPath "$configuration\log\"
-
- Create-Directory -path $xUnitLogPath
- return Resolve-Path -path $xUnitLogPath
-}
-
-function Locate-xUnitTestBinaries {
- $artifactsPath = Locate-ArtifactsPath
-
- $binariesPath = Join-Path -path $artifactsPath -childPath "$configuration\bin\Microsoft.DiaSymReader.Tests"
- $testBinaries = Get-ChildItem -path $binariesPath -filter $testFilter -recurse -force
-
- $xUnitTestBinaries = @()
-
- foreach ($xUnitTestBinary in $testBinaries) {
- $xUnitTestBinaries += $xUnitTestBinary.FullName
- }
-
- return $xUnitTestBinaries
-}
-
-function Locate-VsixDeployExe {
- $artifactsPath = Locate-ArtifactsPath
-
- $binariesPath = Join-Path -path $artifactsPath -childPath "$configuration\bin\DesktopTests"
-
- return Join-Path $binariesPath "DeployIntegrationTestVsixes\DeployIntegrationTestVsixes.exe"
-}
-
-function Locate-xUnitIntegrationTestBinaries {
- $artifactsPath = Locate-ArtifactsPath
-
- $binariesPath = Join-Path -path $artifactsPath -childPath "$configuration\bin\"
- $testBinaries = Get-ChildItem -path $binariesPath -filter $integrationTestFilter -recurse -force
-
- $xUnitTestBinaries = @()
-
- foreach ($xUnitTestBinary in $testBinaries) {
- $xUnitTestBinaries += $xUnitTestBinary.FullName
- }
-
- return $xUnitTestBinaries
-}
-
-function Perform-Build {
- Write-Host -object ""
-
- if ($skipBuild) {
- Write-Host -object "Skipping build..."
- return
- }
-
- $artifactsPath = Locate-ArtifactsPath
- $msbuild = Locate-MSBuild
- $msbuildLogPath = Locate-MSBuildLogPath
- $solution = Locate-Solution
-
- $msbuildSummaryLog = Join-Path -path $msbuildLogPath -childPath "MSBuild.log"
- $msbuildWarningLog = Join-Path -path $msbuildLogPath -childPath "MSBuild.wrn"
- $msbuildFailureLog = Join-Path -path $msbuildLogPath -childPath "MSBuild.err"
-
- $deploy = (-not $skipDeploy)
-
- Write-Host -object "Starting build..."
- & $msbuild /t:$target /p:Configuration=$configuration /p:DeployExtension=$deploy /p:DeployHive=$deployHive /p:OfficialBuild=$official /m /tv:$msbuildVersion /v:m /flp1:Summary`;Verbosity=diagnostic`;Encoding=UTF-8`;LogFile=$msbuildSummaryLog /flp2:WarningsOnly`;Verbosity=diagnostic`;Encoding=UTF-8`;LogFile=$msbuildWarningLog /flp3:ErrorsOnly`;Verbosity=diagnostic`;Encoding=UTF-8`;LogFile=$msbuildFailureLog /nr:false $solution
-
- if ($lastExitCode -ne 0) {
- throw "The build failed with an exit code of '$lastExitCode'."
- }
-
- Write-Host -object "The build completed successfully." -foregroundColor Green
-}
-
-function Perform-Restore {
- Write-Host -object ""
-
- if ($skipRestore) {
- Write-Host -object "Skipping restore..."
- return
- }
-
- $nuget = Locate-NuGet
- $nugetConfig = Locate-NuGetConfig
- $packagesPath = Locate-PackagesPath
- $toolset = Locate-Toolset
- $solution = Locate-Solution
-
- Write-Host -object "Starting restore..."
- & $nuget restore -packagesDirectory $packagesPath -msbuildVersion $msbuildVersion -verbosity quiet -nonInteractive -configFile $nugetConfig $toolset
- & $nuget restore -packagesDirectory $packagesPath -msbuildVersion $msbuildVersion -verbosity quiet -nonInteractive -configFile $nugetConfig $solution
-
- if ($lastExitCode -ne 0) {
- throw "The restore failed with an exit code of '$lastExitCode'."
- }
-
- Write-Host -object "The restore completed successfully." -foregroundColor Green
-}
-
-function Perform-Test-x86 {
- Write-Host -object ""
-
- if ($skipTest -or $skipTest32) {
- Write-Host -object "Skipping test x86..."
- return
- }
-
- $xUnit = Locate-xUnit-x86
- $xUnitLogPath = Locate-xUnitLogPath
- $xUnitTestBinaries = @(Locate-xUnitTestBinaries)
- Write-Host $xUnitTestBinaries
-
- $xUnitResultLog = Join-Path -path $xUnitLogPath -childPath "xUnit-x86.xml"
-
- Write-Host "$xUnit $xUnitTestBinaries -xml $xUnitResultLog"
- & $xUnit @xUnitTestBinaries -xml $xUnitResultLog
-
- if ($lastExitCode -ne 0) {
- throw "The test failed with an exit code of '$lastExitCode'."
- }
-
- Write-Host -object "The test completed successfully." -foregroundColor Green
-}
-
-function Perform-Test-x64 {
- Write-Host -object ""
-
- if ($skipTest -or $skipTest64) {
- Write-Host -object "Skipping test x64..."
- return
- }
-
- $xUnit = Locate-xUnit-x64
- $xUnitLogPath = Locate-xUnitLogPath
- $xUnitTestBinaries = @(Locate-xUnitTestBinaries)
-
- $xUnitResultLog = Join-Path -path $xUnitLogPath -childPath "xUnit-x64.xml"
-
- Write-Host "$xUnit $xUnitTestBinaries -xml $xUnitResultLog"
- & $xUnit @xUnitTestBinaries -xml $xUnitResultLog
-
- if ($lastExitCode -ne 0) {
- throw "The test failed with an exit code of '$lastExitCode'."
- }
-
- Write-Host -object "The test completed successfully." -foregroundColor Green
-}
-
-function Perform-Test-Core {
- Write-Host -object ""
-
- if ($skipTest -or $skipTestCore) {
- Write-Host -object "Skipping test Core..."
- return
- }
-
- $artifactsPath = Locate-ArtifactsPath
- $binariesPath = Join-Path $artifactsPath "$configuration\bin\CoreTests"
-
- $corerun = Join-Path $binariesPath "CoreRun.exe"
- $xUnit = Join-Path $binariesPath "xunit.console.netcore.exe"
- $xUnitLogPath = Locate-xUnitLogPath
- $xUnitTestBinaries = @(Locate-xUnitTestBinaries)
- Write-Host $xUnitTestBinaries
-
- $xUnitResultLog = Join-Path -path $xUnitLogPath -childPath "xUnit-Core.xml"
-
- Write-Host "$corerun $xUnit $xUnitTestBinaries -xml $xUnitResultLog"
- & $corerun $xUnit @xUnitTestBinaries -xml $xUnitResultLog
-
- if ($lastExitCode -ne 0) {
- throw "The test failed with an exit code of '$lastExitCode'."
- }
-
- Write-Host -object "The test completed successfully." -foregroundColor Green
-}
-
-function Perform-Install-Roslyn-Vsixes {
- Write-Host -object ""
-
- if ($skipInstallRoslyn -or $skipTest -or (-not $integration)) {
- Write-Host -object "Skipping installation of integration test vsixes..."
- return
- }
-
- Write-Host "Starting to install vsixes..."
-
- $vsixDeployExe = Locate-VsixDeployExe
-
- & $vsixDeployExe
-
- Write-Host -object "Installed integration test vsixes successfully." -foregroundColor Green
-}
-
-function Perform-Test-Integration {
- Write-Host -object ""
-
- if ($skipTest -or (-not $integration)) {
- Write-Host -object "Skipping integration tests..."
- return
- }
-
- $xUnit = Locate-xUnit-x64
- $xUnitLogPath = Locate-xUnitLogPath
- $xUnitTestBinaries = @(Locate-xUnitIntegrationTestBinaries)
-
- $xUnitResultLog = Join-Path -path $xUnitLogPath -childPath "xUnit-integration.xml"
-
- Write-Host -object "Starting integration tests..."
- & $xUnit @xUnitTestBinaries -xml $xUnitResultLog -noshadow
-
- if ($lastExitCode -ne 0) {
- throw "The test failed with an exit code of '$lastExitCode'."
- }
-
- Write-Host -object "The test completed successfully." -foregroundColor Green
-}
-
-function Print-Help {
- if (-not $help) {
- return
- }
-
- Write-Host -object "TestImpact Build Script"
- Write-Host -object " Help - [Switch] - Prints this help message."
- Write-Host -object ""
- Write-Host -object " Configuration - [String] - Specifies the build configuration. Defaults to 'Debug'."
- Write-Host -object " DeployHive - [String] - Specifies the VSIX deployment hive. Defaults to 'TestImpact'."
- Write-Host -object " MSBuildVersion - [String] - Specifies the MSBuild version. Defaults to '14.0'."
- Write-Host -object " NuGetVersion - [String] - Specifies the NuGet version. Defaults to '3.5.0-beta'."
- Write-Host -object " Target - [String] - Specifies the build target. Defaults to 'Build'."
- Write-Host -object " TestFilter - [String] - Specifies the test filter. Defaults to '*.UnitTests.dll'."
- Write-Host -object " IntegrationTestFilter - [String] - Specifies the integration test filter. Defaults to '*.IntegrationTests.dll'"
- Write-Host -object " xUnitVersion - [String] - Specifies the xUnit version. Defaults to '2.1.0'."
- Write-Host -object ""
- Write-Host -object " Official - [Switch] - Indicates this is an official build which changes the semantic version."
- Write-Host -object " SkipBuild - [Switch] - Indicates the build step should be skipped."
- Write-Host -object " SkipDeploy - [Switch] - Indicates the VSIX deployment step should be skipped."
- Write-Host -object " SkipInstallRoslyn - [Switch] - Indicates the installation of Roslyn VSIX step should be skipped."
- Write-Host -object " SkipRestore - [Switch] - Indicates the restore step should be skipped."
- Write-Host -object " SkipTest - [Switch] - Indicates the test step should be skipped."
- Write-Host -object " SkipTest32 - [Switch] - Indicates the 32-bit Unit Tests should be skipped."
- Write-Host -object " SkipTest64 - [Switch] - Indicates the 64-bit Unit Tests should be skipped."
- Write-Host -object " SkipTestCore - [Switch] - Indicates the Core CLR Unit Tests should be skipped."
- Write-Host -object " Integration - [Switch] - Indicates the Integration Tests should be run."
-
- Exit 0
-}
-
-# Enforce deployment when running integration tests.
-# This ensures that installed extension's timestamp is the same as in the artifacts folder.
-if ((-not $skipTest) -and $integration) {
- $skipBuild = $false
- $skipDeploy = $false
-}
-
-Print-Help
-Perform-Restore
-Perform-Build
-Perform-Install-Roslyn-Vsixes
-Perform-Test-x86
-Perform-Test-x64
-Perform-Test-Integration
diff --git a/netci.groovy b/netci.groovy
index 78609f9..30e97d4 100644
--- a/netci.groovy
+++ b/netci.groovy
@@ -3,8 +3,8 @@
import jobs.generation.Utilities;
-static getJobName(def opsysName, def configName, def testName) {
- return "${opsysName}_${configName}_${testName}"
+static getJobName(def opsysName, def configName) {
+ return "${opsysName}_${configName}"
}
static addArchival(def job, def filesToArchive, def filesToExclude) {
@@ -14,130 +14,28 @@ static addArchival(def job, def filesToArchive, def filesToExclude) {
Utilities.addArchival(job, filesToArchive, filesToExclude, doNotFailIfNothingArchived, archiveOnlyIfSuccessful)
}
-static addGithubPRTriggerForBranch(def job, def branchName, def jobName, def testName) {
+static addGithubPRTriggerForBranch(def job, def branchName, def jobName) {
def prContext = "prtest/${jobName.replace('_', '/')}"
- def triggerPhrase = "(?i).*test\\W+${prContext}.*"
- def triggerOnPhraseOnly = (testName != 'build')
+ def triggerPhrase = "(?i)^\\s*(@?dotnet-bot\\s+)?(re)?test\\s+(${prContext})(\\s+please)?\\s*\$"
+ def triggerOnPhraseOnly = false
Utilities.addGithubPRTriggerForBranch(job, branchName, prContext, triggerPhrase, triggerOnPhraseOnly)
}
-static addGithubPRCommitStatusForBranch(def job, def branchName, def jobName, def testName) {
- def prContext = "prtest/${jobName.replace('_', '/')}"
-
- job.with {
- wrappers {
- downstreamCommitStatus {
- context(prContext)
- }
- }
- }
-}
-
static addXUnitDotNETResults(def job, def configName) {
- def resultFilePattern = "**/artifacts/${configName}/log/xUnit-*.xml"
+ def resultFilePattern = "**/artifacts/${configName}/TestResults/*.xml"
def skipIfNoTestFiles = false
-
+
Utilities.addXUnitDotNETResults(job, resultFilePattern, skipIfNoTestFiles)
}
-static addExtendedEmailPublisher(def job) {
- job.with {
- publishers {
- extendedEmail {
- defaultContent('$DEFAULT_CONTENT')
- defaultSubject('$DEFAULT_SUBJECT')
- recipientList('$DEFAULT_RECIPIENTS, cc:tomat@microsoft.com')
- triggers {
- aborted {
- content('$PROJECT_DEFAULT_CONTENT')
- sendTo {
- culprits()
- developers()
- recipientList()
- requester()
- }
- subject('$PROJECT_DEFAULT_SUBJECT')
- }
- failure {
- content('$PROJECT_DEFAULT_CONTENT')
- sendTo {
- culprits()
- developers()
- recipientList()
- requester()
- }
- subject('$PROJECT_DEFAULT_SUBJECT')
- }
- }
- }
- }
- }
-}
-
static addBuildSteps(def job, def projectName, def opsysName, def configName, def isPR) {
- def unit32JobName = getJobName(opsysName, configName, 'unit32')
- def unit32FullJobName = Utilities.getFullJobName(projectName, unit32JobName, isPR)
-
- def unit64JobName = getJobName(opsysName, configName, 'unit64')
- def unit64FullJobName = Utilities.getFullJobName(projectName, unit64JobName, isPR)
-
- def downstreamFullJobNames = "${unit32FullJobName}, ${unit64FullJobName}"
-
- def officialSwitch = ''
-
- if (!isPR) {
- officialSwitch = '-Official'
- }
-
- job.with {
- steps {
- batchFile("""set TEMP=%WORKSPACE%\\artifacts\\${configName}\\tmp
-mkdir %TEMP%
-set TMP=%TEMP%
-.\\Build.cmd -Configuration ${configName} -msbuildVersion '14.0' ${officialSwitch} -SkipDeploy -SkipTest
-""")
- publishers {
- downstreamParameterized {
- trigger(downstreamFullJobNames) {
- condition('UNSTABLE_OR_BETTER')
- parameters {
- currentBuild()
- gitRevision()
- }
- }
- }
- }
- }
- }
-}
-
-static addTestSteps(def job, def projectName, def opsysName, def configName, def testName, def isPR, def filesToArchive, def filesToExclude) {
- def buildJobName = getJobName(opsysName, configName, 'build')
+ def buildJobName = getJobName(opsysName, configName)
def buildFullJobName = Utilities.getFullJobName(projectName, buildJobName, isPR)
- def officialSwitch = ''
-
- if (!isPR) {
- officialSwitch = '-Official'
- }
-
job.with {
steps {
- copyArtifacts(buildFullJobName) {
- includePatterns(filesToArchive)
- excludePatterns(filesToExclude)
- buildSelector {
- upstreamBuild {
- fallbackToLastSuccessful(false)
- }
- }
- }
- batchFile("""set TEMP=%WORKSPACE%\\artifacts\\${configName}\\tmp
-mkdir %TEMP%
-set TMP=%TEMP%
-.\\Build.cmd -Configuration ${configName} -msbuildVersion '14.0' ${officialSwitch} -SkipBuild ${testName == 'unit32' ? '-SkipTest64 -SkipTestCore' : (testName == 'core' ? '-SkipTest32 -SkipTest64' : '-SkipTest32 -SkipTestCore')}
-""")
+ batchFile(""".\\CIBuild.cmd -configuration ${configName}""")
}
}
}
@@ -145,51 +43,31 @@ set TMP=%TEMP%
[true, false].each { isPR ->
['windows'].each { opsysName ->
['debug', 'release'].each { configName ->
- ['build', 'unit32', 'unit64'].each { testName ->
- def projectName = GithubProject
+ def projectName = GithubProject
- def branchName = GithubBranchName
+ def branchName = GithubBranchName
- def filesToArchive = "**/artifacts/${configName}/**"
- def filesToExclude = "**/artifacts/${configName}/obj/**"
+ def filesToArchive = "**/artifacts/${configName}/**"
+ def filesToExclude = "**/artifacts/${configName}/obj/**"
- def jobName = getJobName(opsysName, configName, testName)
- def fullJobName = Utilities.getFullJobName(projectName, jobName, isPR)
- def myJob = job(fullJobName)
+ def jobName = getJobName(opsysName, configName)
+ def fullJobName = Utilities.getFullJobName(projectName, jobName, isPR)
+ def myJob = job(fullJobName)
- Utilities.standardJobSetup(myJob, projectName, isPR, "*/${branchName}")
+ Utilities.standardJobSetup(myJob, projectName, isPR, "*/${branchName}")
- if (testName == 'build') {
- if (isPR) {
- addGithubPRTriggerForBranch(myJob, branchName, jobName, testName)
- } else {
- Utilities.addGithubPushTrigger(myJob)
- }
- }
- else {
- if (isPR) {
- addGithubPRCommitStatusForBranch(myJob, branchName, jobName, testName)
- }
- }
-
- addArchival(myJob, filesToArchive, filesToExclude)
-
- if (testName != 'build') {
- addXUnitDotNETResults(myJob, configName)
- }
-
- Utilities.setMachineAffinity(myJob, 'Windows_NT', 'latest-or-auto')
-
- if (!isPR) {
- addExtendedEmailPublisher(myJob)
- }
-
- if (testName == 'build') {
- addBuildSteps(myJob, projectName, opsysName, configName, isPR)
- } else {
- addTestSteps(myJob, projectName, opsysName, configName, testName, isPR, filesToArchive, filesToExclude)
- }
+ if (isPR) {
+ addGithubPRTriggerForBranch(myJob, branchName, jobName)
+ } else {
+ Utilities.addGithubPushTrigger(myJob)
}
+
+ addArchival(myJob, filesToArchive, filesToExclude)
+ addXUnitDotNETResults(myJob, configName)
+
+ Utilities.setMachineAffinity(myJob, 'Windows_NT', 'latest-or-auto-dev15-0')
+
+ addBuildSteps(myJob, projectName, opsysName, configName, isPR)
}
}
}
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
new file mode 100644
index 0000000..53ee424
--- /dev/null
+++ b/src/Directory.Build.props
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+ true
+ portable
+
+
+
+ embedded
+ false
+
+
\ No newline at end of file
diff --git a/src/Directory.Build.targets b/src/Directory.Build.targets
new file mode 100644
index 0000000..6fb0d2f
--- /dev/null
+++ b/src/Directory.Build.targets
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.DiaSymReader.Tests/Microsoft.DiaSymReader.UnitTests.csproj b/src/Microsoft.DiaSymReader.Tests/Microsoft.DiaSymReader.UnitTests.csproj
index 9871d2a..01dcc4c 100644
--- a/src/Microsoft.DiaSymReader.Tests/Microsoft.DiaSymReader.UnitTests.csproj
+++ b/src/Microsoft.DiaSymReader.Tests/Microsoft.DiaSymReader.UnitTests.csproj
@@ -1,41 +1,16 @@
-
-
-
-
-
-
+
+
- {D9CAEB67-A062-4874-96E9-51BAF1373EBB}
- Library
- Microsoft.DiaSymReader.UnitTests
- Microsoft.DiaSymReader.UnitTests
- v4.5
+ net46;netcoreapp1.1
+ true
+
+ x64;x86
+
-
-
-
- {316FD2AD-8514-41BD-98D5-61A821F3320E}
- Microsoft.DiaSymReader
-
+
-
-
-
- PreserveNewest
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Microsoft.DiaSymReader.Tests/project.json b/src/Microsoft.DiaSymReader.Tests/project.json
deleted file mode 100644
index 1591aca..0000000
--- a/src/Microsoft.DiaSymReader.Tests/project.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "dependencies": {
- "xunit": "2.1.0",
- "xunit.runner.console": "2.1.0",
- "xunit.runner.visualstudio": "2.1.0"
- },
- "frameworks": {
- "net45": {}
- },
- "runtimes": {
- "win": { }
- }
-}
diff --git a/src/Microsoft.DiaSymReader/Shared/Extensions/SymUnmanagedAsyncStepInfo.cs b/src/Microsoft.DiaSymReader/Extensions/SymUnmanagedAsyncStepInfo.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/Extensions/SymUnmanagedAsyncStepInfo.cs
rename to src/Microsoft.DiaSymReader/Extensions/SymUnmanagedAsyncStepInfo.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/Extensions/SymUnmanagedExtensions.Binder.cs b/src/Microsoft.DiaSymReader/Extensions/SymUnmanagedExtensions.Binder.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/Extensions/SymUnmanagedExtensions.Binder.cs
rename to src/Microsoft.DiaSymReader/Extensions/SymUnmanagedExtensions.Binder.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/Extensions/SymUnmanagedExtensions.Constant.cs b/src/Microsoft.DiaSymReader/Extensions/SymUnmanagedExtensions.Constant.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/Extensions/SymUnmanagedExtensions.Constant.cs
rename to src/Microsoft.DiaSymReader/Extensions/SymUnmanagedExtensions.Constant.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/Extensions/SymUnmanagedExtensions.Document.cs b/src/Microsoft.DiaSymReader/Extensions/SymUnmanagedExtensions.Document.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/Extensions/SymUnmanagedExtensions.Document.cs
rename to src/Microsoft.DiaSymReader/Extensions/SymUnmanagedExtensions.Document.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/Extensions/SymUnmanagedExtensions.Method.cs b/src/Microsoft.DiaSymReader/Extensions/SymUnmanagedExtensions.Method.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/Extensions/SymUnmanagedExtensions.Method.cs
rename to src/Microsoft.DiaSymReader/Extensions/SymUnmanagedExtensions.Method.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/Extensions/SymUnmanagedExtensions.Namespace.cs b/src/Microsoft.DiaSymReader/Extensions/SymUnmanagedExtensions.Namespace.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/Extensions/SymUnmanagedExtensions.Namespace.cs
rename to src/Microsoft.DiaSymReader/Extensions/SymUnmanagedExtensions.Namespace.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/Extensions/SymUnmanagedExtensions.Reader.cs b/src/Microsoft.DiaSymReader/Extensions/SymUnmanagedExtensions.Reader.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/Extensions/SymUnmanagedExtensions.Reader.cs
rename to src/Microsoft.DiaSymReader/Extensions/SymUnmanagedExtensions.Reader.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/Extensions/SymUnmanagedExtensions.Scope.cs b/src/Microsoft.DiaSymReader/Extensions/SymUnmanagedExtensions.Scope.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/Extensions/SymUnmanagedExtensions.Scope.cs
rename to src/Microsoft.DiaSymReader/Extensions/SymUnmanagedExtensions.Scope.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/Extensions/SymUnmanagedExtensions.Variable.cs b/src/Microsoft.DiaSymReader/Extensions/SymUnmanagedExtensions.Variable.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/Extensions/SymUnmanagedExtensions.Variable.cs
rename to src/Microsoft.DiaSymReader/Extensions/SymUnmanagedExtensions.Variable.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/Extensions/SymUnmanagedSequencePoint.cs b/src/Microsoft.DiaSymReader/Extensions/SymUnmanagedSequencePoint.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/Extensions/SymUnmanagedSequencePoint.cs
rename to src/Microsoft.DiaSymReader/Extensions/SymUnmanagedSequencePoint.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/Extensions/SymUnmanagedStreamFactory.cs b/src/Microsoft.DiaSymReader/Extensions/SymUnmanagedStreamFactory.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/Extensions/SymUnmanagedStreamFactory.cs
rename to src/Microsoft.DiaSymReader/Extensions/SymUnmanagedStreamFactory.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/ISymEncUnmanagedMethod.cs b/src/Microsoft.DiaSymReader/ISymEncUnmanagedMethod.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/ISymEncUnmanagedMethod.cs
rename to src/Microsoft.DiaSymReader/ISymEncUnmanagedMethod.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/ISymUnmanagedAsyncMethod.cs b/src/Microsoft.DiaSymReader/ISymUnmanagedAsyncMethod.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/ISymUnmanagedAsyncMethod.cs
rename to src/Microsoft.DiaSymReader/ISymUnmanagedAsyncMethod.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/ISymUnmanagedBinder.cs b/src/Microsoft.DiaSymReader/ISymUnmanagedBinder.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/ISymUnmanagedBinder.cs
rename to src/Microsoft.DiaSymReader/ISymUnmanagedBinder.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/ISymUnmanagedBinder2.cs b/src/Microsoft.DiaSymReader/ISymUnmanagedBinder2.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/ISymUnmanagedBinder2.cs
rename to src/Microsoft.DiaSymReader/ISymUnmanagedBinder2.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/ISymUnmanagedBinder3.cs b/src/Microsoft.DiaSymReader/ISymUnmanagedBinder3.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/ISymUnmanagedBinder3.cs
rename to src/Microsoft.DiaSymReader/ISymUnmanagedBinder3.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/ISymUnmanagedBinder4.cs b/src/Microsoft.DiaSymReader/ISymUnmanagedBinder4.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/ISymUnmanagedBinder4.cs
rename to src/Microsoft.DiaSymReader/ISymUnmanagedBinder4.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/ISymUnmanagedConstant.cs b/src/Microsoft.DiaSymReader/ISymUnmanagedConstant.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/ISymUnmanagedConstant.cs
rename to src/Microsoft.DiaSymReader/ISymUnmanagedConstant.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/ISymUnmanagedDispose.cs b/src/Microsoft.DiaSymReader/ISymUnmanagedDispose.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/ISymUnmanagedDispose.cs
rename to src/Microsoft.DiaSymReader/ISymUnmanagedDispose.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/ISymUnmanagedDocument.cs b/src/Microsoft.DiaSymReader/ISymUnmanagedDocument.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/ISymUnmanagedDocument.cs
rename to src/Microsoft.DiaSymReader/ISymUnmanagedDocument.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/ISymUnmanagedEncUpdate.cs b/src/Microsoft.DiaSymReader/ISymUnmanagedEncUpdate.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/ISymUnmanagedEncUpdate.cs
rename to src/Microsoft.DiaSymReader/ISymUnmanagedEncUpdate.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/ISymUnmanagedMethod.cs b/src/Microsoft.DiaSymReader/ISymUnmanagedMethod.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/ISymUnmanagedMethod.cs
rename to src/Microsoft.DiaSymReader/ISymUnmanagedMethod.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/ISymUnmanagedNamespace.cs b/src/Microsoft.DiaSymReader/ISymUnmanagedNamespace.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/ISymUnmanagedNamespace.cs
rename to src/Microsoft.DiaSymReader/ISymUnmanagedNamespace.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/ISymUnmanagedReader.cs b/src/Microsoft.DiaSymReader/ISymUnmanagedReader.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/ISymUnmanagedReader.cs
rename to src/Microsoft.DiaSymReader/ISymUnmanagedReader.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/ISymUnmanagedReader2.cs b/src/Microsoft.DiaSymReader/ISymUnmanagedReader2.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/ISymUnmanagedReader2.cs
rename to src/Microsoft.DiaSymReader/ISymUnmanagedReader2.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/ISymUnmanagedReader3.cs b/src/Microsoft.DiaSymReader/ISymUnmanagedReader3.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/ISymUnmanagedReader3.cs
rename to src/Microsoft.DiaSymReader/ISymUnmanagedReader3.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/ISymUnmanagedReader4.cs b/src/Microsoft.DiaSymReader/ISymUnmanagedReader4.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/ISymUnmanagedReader4.cs
rename to src/Microsoft.DiaSymReader/ISymUnmanagedReader4.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/ISymUnmanagedReader5.cs b/src/Microsoft.DiaSymReader/ISymUnmanagedReader5.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/ISymUnmanagedReader5.cs
rename to src/Microsoft.DiaSymReader/ISymUnmanagedReader5.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/ISymUnmanagedScope.cs b/src/Microsoft.DiaSymReader/ISymUnmanagedScope.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/ISymUnmanagedScope.cs
rename to src/Microsoft.DiaSymReader/ISymUnmanagedScope.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/ISymUnmanagedScope2.cs b/src/Microsoft.DiaSymReader/ISymUnmanagedScope2.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/ISymUnmanagedScope2.cs
rename to src/Microsoft.DiaSymReader/ISymUnmanagedScope2.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/ISymUnmanagedSourceServerModule.cs b/src/Microsoft.DiaSymReader/ISymUnmanagedSourceServerModule.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/ISymUnmanagedSourceServerModule.cs
rename to src/Microsoft.DiaSymReader/ISymUnmanagedSourceServerModule.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/ISymUnmanagedVariable.cs b/src/Microsoft.DiaSymReader/ISymUnmanagedVariable.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/ISymUnmanagedVariable.cs
rename to src/Microsoft.DiaSymReader/ISymUnmanagedVariable.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/Metadata/IMetadataImport.cs b/src/Microsoft.DiaSymReader/Metadata/IMetadataImport.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/Metadata/IMetadataImport.cs
rename to src/Microsoft.DiaSymReader/Metadata/IMetadataImport.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/Metadata/IMetadataImportProvider.cs b/src/Microsoft.DiaSymReader/Metadata/IMetadataImportProvider.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/Metadata/IMetadataImportProvider.cs
rename to src/Microsoft.DiaSymReader/Metadata/IMetadataImportProvider.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/Metadata/MetadataImportFieldOffset.cs b/src/Microsoft.DiaSymReader/Metadata/MetadataImportFieldOffset.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/Metadata/MetadataImportFieldOffset.cs
rename to src/Microsoft.DiaSymReader/Metadata/MetadataImportFieldOffset.cs
diff --git a/src/Microsoft.DiaSymReader/Microsoft.DiaSymReader.csproj b/src/Microsoft.DiaSymReader/Microsoft.DiaSymReader.csproj
new file mode 100644
index 0000000..35ad7cc
--- /dev/null
+++ b/src/Microsoft.DiaSymReader/Microsoft.DiaSymReader.csproj
@@ -0,0 +1,15 @@
+
+
+
+ netstandard1.1;net20
+ true
+ true
+ true
+ Microsoft DiaSymReader interop interfaces and utilities.
+ Microsoft DiaSymReader interop interfaces and utilities
+ DiaSymReader ISymUnmanagedReader PDB COM interop debugging
+
+
+
+
+
diff --git a/src/Microsoft.DiaSymReader/Shared/Microsoft.DiaSymReader.projitems b/src/Microsoft.DiaSymReader/Shared/Microsoft.DiaSymReader.projitems
deleted file mode 100644
index 0f9fddc..0000000
--- a/src/Microsoft.DiaSymReader/Shared/Microsoft.DiaSymReader.projitems
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
- $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
- true
- f9127f0f-95c8-4576-8081-96e004c1652f
-
-
- Microsoft.DiaSymReader
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Microsoft.DiaSymReader/Shared/Microsoft.DiaSymReader.shproj b/src/Microsoft.DiaSymReader/Shared/Microsoft.DiaSymReader.shproj
deleted file mode 100644
index c66c4f1..0000000
--- a/src/Microsoft.DiaSymReader/Shared/Microsoft.DiaSymReader.shproj
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
- f9127f0f-95c8-4576-8081-96e004c1652f
- 14.0
-
-
-
-
-
-
-
-
diff --git a/src/Microsoft.DiaSymReader/Shared/SymUnmanagedLineDelta.cs b/src/Microsoft.DiaSymReader/SymUnmanagedLineDelta.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/SymUnmanagedLineDelta.cs
rename to src/Microsoft.DiaSymReader/SymUnmanagedLineDelta.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/SymUnmanagedSearchPolicy.cs b/src/Microsoft.DiaSymReader/SymUnmanagedSearchPolicy.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/SymUnmanagedSearchPolicy.cs
rename to src/Microsoft.DiaSymReader/SymUnmanagedSearchPolicy.cs
diff --git a/src/Microsoft.DiaSymReader/Shared/Extensions/ComStreamWrapper.cs b/src/Microsoft.DiaSymReader/Utilities/ComStreamWrapper.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/Extensions/ComStreamWrapper.cs
rename to src/Microsoft.DiaSymReader/Utilities/ComStreamWrapper.cs
diff --git a/src/Microsoft.DiaSymReader/Utilities/ExtensionAttribute.cs b/src/Microsoft.DiaSymReader/Utilities/ExtensionAttribute.cs
new file mode 100644
index 0000000..a662e65
--- /dev/null
+++ b/src/Microsoft.DiaSymReader/Utilities/ExtensionAttribute.cs
@@ -0,0 +1,10 @@
+#if NET20
+namespace System.Runtime.CompilerServices
+{
+ ///
+ /// Indicates that a method is an extension method, or that a class or assembly contains extension methods.
+ ///
+ [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Assembly)]
+ internal sealed class ExtensionAttribute : Attribute { }
+}
+#endif
\ No newline at end of file
diff --git a/src/Microsoft.DiaSymReader/Shared/Extensions/InteropUtilities.cs b/src/Microsoft.DiaSymReader/Utilities/InteropUtilities.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Shared/Extensions/InteropUtilities.cs
rename to src/Microsoft.DiaSymReader/Utilities/InteropUtilities.cs
diff --git a/src/Microsoft.DiaSymReader/NetFX20/ExtensionAttribute.cs b/src/NuGet/NetFX20/ExtensionAttribute.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/NetFX20/ExtensionAttribute.cs
rename to src/NuGet/NetFX20/ExtensionAttribute.cs
diff --git a/src/Microsoft.DiaSymReader/NetFX20/Microsoft.DiaSymReader.NetFX20.csproj b/src/NuGet/NetFX20/Microsoft.DiaSymReader.NetFX20.csproj
similarity index 100%
rename from src/Microsoft.DiaSymReader/NetFX20/Microsoft.DiaSymReader.NetFX20.csproj
rename to src/NuGet/NetFX20/Microsoft.DiaSymReader.NetFX20.csproj
diff --git a/src/Microsoft.DiaSymReader/NetFX20/project.json b/src/NuGet/NetFX20/project.json
similarity index 100%
rename from src/Microsoft.DiaSymReader/NetFX20/project.json
rename to src/NuGet/NetFX20/project.json
diff --git a/src/NuGet/NetFX20/project.lock.json b/src/NuGet/NetFX20/project.lock.json
new file mode 100644
index 0000000..faf1c16
--- /dev/null
+++ b/src/NuGet/NetFX20/project.lock.json
@@ -0,0 +1,48 @@
+{
+ "locked": false,
+ "version": 2,
+ "targets": {
+ ".NETFramework,Version=v2.0": {
+ "Microsoft.NetFX20/1.0.3": {
+ "type": "package",
+ "compile": {
+ "lib/net20/mscorlib.dll": {}
+ },
+ "runtime": {
+ "lib/net20/mscorlib.dll": {}
+ }
+ }
+ },
+ ".NETFramework,Version=v2.0/win": {
+ "Microsoft.NetFX20/1.0.3": {
+ "type": "package",
+ "compile": {
+ "lib/net20/mscorlib.dll": {}
+ },
+ "runtime": {
+ "lib/net20/mscorlib.dll": {}
+ }
+ }
+ }
+ },
+ "libraries": {
+ "Microsoft.NetFX20/1.0.3": {
+ "sha512": "7hPxu4q65ap1yiAuniskpMIJyTwviBIRItCYXozm/6Ikt03Uw3NNQNNzf7mjOEYYi9CG9VIv1KYwBGEa3FWAcg==",
+ "type": "package",
+ "path": "Microsoft.NetFX20/1.0.3",
+ "files": [
+ "Microsoft.NetFX20.1.0.3.nupkg.sha512",
+ "Microsoft.NetFX20.nuspec",
+ "lib/net20/mscorlib.dll"
+ ]
+ }
+ },
+ "projectFileDependencyGroups": {
+ "": [
+ "Microsoft.NetFX20 >= 1.0.3"
+ ],
+ ".NETFramework,Version=v2.0": []
+ },
+ "tools": {},
+ "projectFileToolGroups": {}
+}
\ No newline at end of file
diff --git a/src/Microsoft.DiaSymReader/Portable/AssemblyInfo.cs b/src/NuGet/Portable/AssemblyInfo.cs
similarity index 100%
rename from src/Microsoft.DiaSymReader/Portable/AssemblyInfo.cs
rename to src/NuGet/Portable/AssemblyInfo.cs
diff --git a/src/Microsoft.DiaSymReader/Portable/Microsoft.DiaSymReader.Portable.csproj b/src/NuGet/Portable/Microsoft.DiaSymReader.Portable.csproj
similarity index 100%
rename from src/Microsoft.DiaSymReader/Portable/Microsoft.DiaSymReader.Portable.csproj
rename to src/NuGet/Portable/Microsoft.DiaSymReader.Portable.csproj