diff --git a/.editorconfig b/.editorconfig
index 4969576735..6cae690bb3 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -8,7 +8,9 @@ indent_size = 4
[*.il]
indent_style = space
indent_size = 2
-
+[*.{yml,yaml}]
+indent_style = space
+indent_size = 2
[*.csproj]
indent_style = space
indent_size = 2
diff --git a/.gitignore b/.gitignore
index 319f85b7fd..e284b1638c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
bin/
obj/
-
+AppPackages/
+BundleArtifacts/
/ICSharpCode.Decompiler/Properties/AssemblyInfo.cs
/ILSpy/Properties/AssemblyInfo.cs
/ILSpy/app.config
diff --git a/BuildTools/pipelines-install.ps1 b/BuildTools/pipelines-install.ps1
new file mode 100644
index 0000000000..31d5b634bb
--- /dev/null
+++ b/BuildTools/pipelines-install.ps1
@@ -0,0 +1,40 @@
+$ErrorActionPreference = "Stop"
+
+$baseCommit = "d779383cb85003d6dabeb976f0845631e07bf463";
+$baseCommitRev = 1;
+
+# make sure this list matches artifacts-only branches list in azure-pipelines.yml!
+$masterBranches = @("master", "3.2.x");
+
+$globalAssemblyInfoTemplateFile = "ILSpy/Properties/AssemblyInfo.template.cs";
+
+$versionParts = @{};
+Get-Content $globalAssemblyInfoTemplateFile | where { $_ -match 'string (\w+) = "?(\w+)"?;' } | foreach { $versionParts.Add($Matches[1], $Matches[2]) }
+
+$major = $versionParts.Major;
+$minor = $versionParts.Minor;
+$build = $versionParts.Build;
+$versionName = $versionParts.VersionName;
+
+if ($versionName -ne "null") {
+ $versionName = "-$versionName";
+} else {
+ $versionName = "";
+}
+if ($masterBranches -contains $env:BUILD_SOURCEBRANCHNAME) {
+ $branch = "";
+} else {
+ $branch = "-$env:BUILD_SOURCEBRANCHNAME";
+}
+if ($env:SYSTEM_PULLREQUEST_PULLREQUESTNUMBER) {
+ $suffix = "-pr$env:SYSTEM_PULLREQUEST_PULLREQUESTNUMBER";
+} else {
+ $suffix = "";
+}
+
+$revision = [Int32]::Parse((git rev-list --count "$baseCommit..HEAD")) + $baseCommitRev;
+
+$newVersion="$major.$minor.$build.$revision";
+$env:ILSPY_VERSION_NUMBER="$newVersion$branch$versionName$suffix";
+Write-Host "##vso[build.updatebuildnumber]$newVersion$branch$versionName$suffix";
+Write-Host "new version: $newVersion$branch$versionName$suffix";
\ No newline at end of file
diff --git a/BuildTools/update-assemblyinfo.ps1 b/BuildTools/update-assemblyinfo.ps1
index e304522a89..d901e7feaa 100644
--- a/BuildTools/update-assemblyinfo.ps1
+++ b/BuildTools/update-assemblyinfo.ps1
@@ -57,8 +57,10 @@ function gitBranch() {
return "no-branch";
}
- if ($env:APPVEYOR_REPO_BRANCH -ne $null) {
+ if ($env:APPVEYOR_REPO_BRANCH -ne $null) {
return $env:APPVEYOR_REPO_BRANCH;
+ } elseif ($env:BUILD_SOURCEBRANCHNAME -ne $null) {
+ return $env:BUILD_SOURCEBRANCHNAME;
} else {
return ((git branch --no-color).Split([System.Environment]::NewLine) | where { $_ -match "^\* " } | select -First 1).Substring(2);
}
@@ -71,6 +73,12 @@ $templateFiles = (
@{Input="ILSpy/Properties/app.config.template"; Output = "ILSpy/app.config"},
@{Input="ILSpy.AddIn/source.extension.vsixmanifest.template"; Output = "ILSpy.AddIn/source.extension.vsixmanifest"}
);
+
+$appxmanifestFiles = (
+ @{Input="ILSpy.Package/Package.appxmanifest"; Output="ILSpy.Package/Package.appxmanifest"},
+ @{Input="ILSpy.Package/Package-CI.appxmanifest"; Output="ILSpy.Package/Package-CI.appxmanifest"}
+);
+
[string]$mutexId = "ILSpyUpdateAssemblyInfo" + (Get-Location).ToString().GetHashCode();
Write-Host $mutexId;
[bool]$createdNew = $false;
@@ -142,6 +150,32 @@ try {
$out | Out-File -Encoding utf8 $file.Output;
}
}
+
+ # Only update these on the Build Agent when ReleaseChannel is set
+ if($Env:ReleaseChannel -ne '' -and $Env:ReleaseChannel -ne $null) {
+ foreach ($file in $appxmanifestFiles) {
+ [string]$in = (Get-Content $file.Input) -Join [System.Environment]::NewLine;
+
+ $out = $in.Replace('$INSERTVERSION$', $fullVersionNumber);
+ $out = $out.Replace('$INSERTMAJORVERSION$', $major);
+ $out = $out.Replace('$INSERTMINORVERSION$', $minor);
+ $out = $out.Replace('$INSERTREVISION$', $revision);
+ $out = $out.Replace('$INSERTCOMMITHASH$', $gitCommitHash);
+ $out = $out.Replace('$INSERTSHORTCOMMITHASH$', $gitCommitHash.Substring(0, 8));
+ $out = $out.Replace('$INSERTDATE$', [System.DateTime]::Now.ToString("MM/dd/yyyy"));
+ $out = $out.Replace('$INSERTYEAR$', [System.DateTime]::Now.Year.ToString());
+ $out = $out.Replace('$INSERTBRANCHNAME$', $branchName);
+ $out = $out.Replace('$INSERTBRANCHPOSTFIX$', $postfixBranchName);
+ $out = $out.Replace('$INSERTVERSIONNAME$', $versionName);
+ $out = $out.Replace('$INSERTVERSIONNAMEPOSTFIX$', $postfixVersionName);
+ $out = $out.Replace('$INSERTBUILDCONFIG$', $buildConfig);
+
+ if (((Get-Content $file.Input) -Join [System.Environment]::NewLine) -ne $out) {
+ $out | Out-File -Encoding utf8 $file.Output;
+ }
+ }
+ }
+
} finally {
$mutex.ReleaseMutex();
$mutex.Close();
diff --git a/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj b/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj
index 0515298972..e3e43be691 100644
--- a/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj
+++ b/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj
@@ -41,6 +41,7 @@
+
diff --git a/ICSharpCode.Decompiler.Tests/RoundtripAssembly.cs b/ICSharpCode.Decompiler.Tests/RoundtripAssembly.cs
index 340b67c3f2..dea1e49f51 100644
--- a/ICSharpCode.Decompiler.Tests/RoundtripAssembly.cs
+++ b/ICSharpCode.Decompiler.Tests/RoundtripAssembly.cs
@@ -26,6 +26,7 @@
using ICSharpCode.Decompiler.CSharp;
using ICSharpCode.Decompiler.Metadata;
using ICSharpCode.Decompiler.Tests.Helpers;
+using Microsoft.Build.Locator;
using Microsoft.Win32;
using NUnit.Framework;
@@ -188,22 +189,16 @@ static void ClearDirectory(string dir)
File.Delete(file);
}
}
-
- static string FindVS2017()
- {
- using (var key = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32)) {
- using (var subkey = key.OpenSubKey(@"SOFTWARE\Microsoft\VisualStudio\SxS\VS7")) {
- return subkey?.GetValue("15.0") as string;
- }
- }
- }
static string FindMSBuild()
{
- string vsPath = FindVS2017();
+ string vsPath = MSBuildLocator.QueryVisualStudioInstances(new VisualStudioInstanceQueryOptions { DiscoveryTypes = DiscoveryType.VisualStudioSetup })
+ .OrderByDescending(i => i.Version)
+ .FirstOrDefault()
+ ?.MSBuildPath;
if (vsPath == null)
- throw new InvalidOperationException("Could not find VS2017");
- return Path.Combine(vsPath, @"MSBuild\15.0\bin\MSBuild.exe");
+ throw new InvalidOperationException("Could not find MSBuild");
+ return Path.Combine(vsPath, "msbuild.exe");
}
static void Compile(string projectFile, string outputDir)
diff --git a/ILSpy.BamlDecompiler.Tests/ILSpy.BamlDecompiler.Tests.csproj b/ILSpy.BamlDecompiler.Tests/ILSpy.BamlDecompiler.Tests.csproj
index 601cfdb927..198bbe6210 100644
--- a/ILSpy.BamlDecompiler.Tests/ILSpy.BamlDecompiler.Tests.csproj
+++ b/ILSpy.BamlDecompiler.Tests/ILSpy.BamlDecompiler.Tests.csproj
@@ -7,7 +7,7 @@
False
false
- true
+ true
false
false
@@ -45,24 +45,19 @@
AttachedEvent.xaml
- Code
MyControl.xaml
- Code
Resources.xaml
- Code
Simple.xaml
- Code
SimpleNames.xaml
- Code
diff --git a/ILSpy.Package/ILSpy.Package.wapproj b/ILSpy.Package/ILSpy.Package.wapproj
new file mode 100644
index 0000000000..cdfcbec415
--- /dev/null
+++ b/ILSpy.Package/ILSpy.Package.wapproj
@@ -0,0 +1,92 @@
+
+
+
+ 15.0
+
+
+
+ Debug
+ x86
+
+
+ Release
+ x86
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+ Debug
+ ARM
+
+
+ Release
+ ARM
+
+
+ Debug
+ ARM64
+
+
+ Release
+ ARM64
+
+
+ Debug
+ AnyCPU
+
+
+ Release
+ AnyCPU
+
+
+
+ $(MSBuildExtensionsPath)\Microsoft\DesktopBridge\
+
+
+
+ bab51a23-9c15-42cc-8465-eb732bf9a932
+ 10.0.17763.0
+ 10.0.16299.0
+ en-US
+ false
+ ..\ILSpy\ILSpy.csproj
+ False
+ True
+ Always
+ neutral
+ CI
+ False
+
+
+ true
+ https://some.location/tbd
+ 0
+ OnApplicationRun
+
+
+
+ Designer
+
+
+ Designer
+
+
+ Designer
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ILSpy.Package/ILSpy.png b/ILSpy.Package/ILSpy.png
new file mode 100644
index 0000000000..f65540956c
Binary files /dev/null and b/ILSpy.Package/ILSpy.png differ
diff --git a/ILSpy.Package/Images/LargeTile.scale-100.png b/ILSpy.Package/Images/LargeTile.scale-100.png
new file mode 100644
index 0000000000..6216833fc8
Binary files /dev/null and b/ILSpy.Package/Images/LargeTile.scale-100.png differ
diff --git a/ILSpy.Package/Images/LargeTile.scale-125.png b/ILSpy.Package/Images/LargeTile.scale-125.png
new file mode 100644
index 0000000000..8fb65a5713
Binary files /dev/null and b/ILSpy.Package/Images/LargeTile.scale-125.png differ
diff --git a/ILSpy.Package/Images/LargeTile.scale-150.png b/ILSpy.Package/Images/LargeTile.scale-150.png
new file mode 100644
index 0000000000..2e35f824f0
Binary files /dev/null and b/ILSpy.Package/Images/LargeTile.scale-150.png differ
diff --git a/ILSpy.Package/Images/LargeTile.scale-200.png b/ILSpy.Package/Images/LargeTile.scale-200.png
new file mode 100644
index 0000000000..488fc7f12c
Binary files /dev/null and b/ILSpy.Package/Images/LargeTile.scale-200.png differ
diff --git a/ILSpy.Package/Images/LargeTile.scale-400.png b/ILSpy.Package/Images/LargeTile.scale-400.png
new file mode 100644
index 0000000000..1a6a1c179f
Binary files /dev/null and b/ILSpy.Package/Images/LargeTile.scale-400.png differ
diff --git a/ILSpy.Package/Images/LockScreenLogo.scale-200.png b/ILSpy.Package/Images/LockScreenLogo.scale-200.png
new file mode 100644
index 0000000000..735f57adb5
Binary files /dev/null and b/ILSpy.Package/Images/LockScreenLogo.scale-200.png differ
diff --git a/ILSpy.Package/Images/SmallTile.scale-100.png b/ILSpy.Package/Images/SmallTile.scale-100.png
new file mode 100644
index 0000000000..f54aefaca1
Binary files /dev/null and b/ILSpy.Package/Images/SmallTile.scale-100.png differ
diff --git a/ILSpy.Package/Images/SmallTile.scale-125.png b/ILSpy.Package/Images/SmallTile.scale-125.png
new file mode 100644
index 0000000000..df24bbc7be
Binary files /dev/null and b/ILSpy.Package/Images/SmallTile.scale-125.png differ
diff --git a/ILSpy.Package/Images/SmallTile.scale-150.png b/ILSpy.Package/Images/SmallTile.scale-150.png
new file mode 100644
index 0000000000..c4a984cf1d
Binary files /dev/null and b/ILSpy.Package/Images/SmallTile.scale-150.png differ
diff --git a/ILSpy.Package/Images/SmallTile.scale-200.png b/ILSpy.Package/Images/SmallTile.scale-200.png
new file mode 100644
index 0000000000..d710a41c7e
Binary files /dev/null and b/ILSpy.Package/Images/SmallTile.scale-200.png differ
diff --git a/ILSpy.Package/Images/SmallTile.scale-400.png b/ILSpy.Package/Images/SmallTile.scale-400.png
new file mode 100644
index 0000000000..4e2213b277
Binary files /dev/null and b/ILSpy.Package/Images/SmallTile.scale-400.png differ
diff --git a/ILSpy.Package/Images/SplashScreen.scale-100.png b/ILSpy.Package/Images/SplashScreen.scale-100.png
new file mode 100644
index 0000000000..4ec6ee5fce
Binary files /dev/null and b/ILSpy.Package/Images/SplashScreen.scale-100.png differ
diff --git a/ILSpy.Package/Images/SplashScreen.scale-125.png b/ILSpy.Package/Images/SplashScreen.scale-125.png
new file mode 100644
index 0000000000..4a2c611617
Binary files /dev/null and b/ILSpy.Package/Images/SplashScreen.scale-125.png differ
diff --git a/ILSpy.Package/Images/SplashScreen.scale-150.png b/ILSpy.Package/Images/SplashScreen.scale-150.png
new file mode 100644
index 0000000000..e5ae799f21
Binary files /dev/null and b/ILSpy.Package/Images/SplashScreen.scale-150.png differ
diff --git a/ILSpy.Package/Images/SplashScreen.scale-200.png b/ILSpy.Package/Images/SplashScreen.scale-200.png
new file mode 100644
index 0000000000..01408c079d
Binary files /dev/null and b/ILSpy.Package/Images/SplashScreen.scale-200.png differ
diff --git a/ILSpy.Package/Images/SplashScreen.scale-400.png b/ILSpy.Package/Images/SplashScreen.scale-400.png
new file mode 100644
index 0000000000..8867bd1275
Binary files /dev/null and b/ILSpy.Package/Images/SplashScreen.scale-400.png differ
diff --git a/ILSpy.Package/Images/Square150x150Logo.scale-100.png b/ILSpy.Package/Images/Square150x150Logo.scale-100.png
new file mode 100644
index 0000000000..bbb41de936
Binary files /dev/null and b/ILSpy.Package/Images/Square150x150Logo.scale-100.png differ
diff --git a/ILSpy.Package/Images/Square150x150Logo.scale-125.png b/ILSpy.Package/Images/Square150x150Logo.scale-125.png
new file mode 100644
index 0000000000..da47ea9bc8
Binary files /dev/null and b/ILSpy.Package/Images/Square150x150Logo.scale-125.png differ
diff --git a/ILSpy.Package/Images/Square150x150Logo.scale-150.png b/ILSpy.Package/Images/Square150x150Logo.scale-150.png
new file mode 100644
index 0000000000..b9bfa46cd0
Binary files /dev/null and b/ILSpy.Package/Images/Square150x150Logo.scale-150.png differ
diff --git a/ILSpy.Package/Images/Square150x150Logo.scale-200.png b/ILSpy.Package/Images/Square150x150Logo.scale-200.png
new file mode 100644
index 0000000000..e29e707423
Binary files /dev/null and b/ILSpy.Package/Images/Square150x150Logo.scale-200.png differ
diff --git a/ILSpy.Package/Images/Square150x150Logo.scale-400.png b/ILSpy.Package/Images/Square150x150Logo.scale-400.png
new file mode 100644
index 0000000000..ab378bb79b
Binary files /dev/null and b/ILSpy.Package/Images/Square150x150Logo.scale-400.png differ
diff --git a/ILSpy.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png b/ILSpy.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png
new file mode 100644
index 0000000000..6191a6a75d
Binary files /dev/null and b/ILSpy.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png differ
diff --git a/ILSpy.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-24.png b/ILSpy.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-24.png
new file mode 100644
index 0000000000..542518c815
Binary files /dev/null and b/ILSpy.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-24.png differ
diff --git a/ILSpy.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png b/ILSpy.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png
new file mode 100644
index 0000000000..b63b4ee955
Binary files /dev/null and b/ILSpy.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png differ
diff --git a/ILSpy.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-32.png b/ILSpy.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-32.png
new file mode 100644
index 0000000000..59cddf7b53
Binary files /dev/null and b/ILSpy.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-32.png differ
diff --git a/ILSpy.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png b/ILSpy.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png
new file mode 100644
index 0000000000..2a215f46d3
Binary files /dev/null and b/ILSpy.Package/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png differ
diff --git a/ILSpy.Package/Images/Square44x44Logo.altform-unplated_targetsize-16.png b/ILSpy.Package/Images/Square44x44Logo.altform-unplated_targetsize-16.png
new file mode 100644
index 0000000000..6191a6a75d
Binary files /dev/null and b/ILSpy.Package/Images/Square44x44Logo.altform-unplated_targetsize-16.png differ
diff --git a/ILSpy.Package/Images/Square44x44Logo.altform-unplated_targetsize-256.png b/ILSpy.Package/Images/Square44x44Logo.altform-unplated_targetsize-256.png
new file mode 100644
index 0000000000..b63b4ee955
Binary files /dev/null and b/ILSpy.Package/Images/Square44x44Logo.altform-unplated_targetsize-256.png differ
diff --git a/ILSpy.Package/Images/Square44x44Logo.altform-unplated_targetsize-32.png b/ILSpy.Package/Images/Square44x44Logo.altform-unplated_targetsize-32.png
new file mode 100644
index 0000000000..59cddf7b53
Binary files /dev/null and b/ILSpy.Package/Images/Square44x44Logo.altform-unplated_targetsize-32.png differ
diff --git a/ILSpy.Package/Images/Square44x44Logo.altform-unplated_targetsize-48.png b/ILSpy.Package/Images/Square44x44Logo.altform-unplated_targetsize-48.png
new file mode 100644
index 0000000000..2a215f46d3
Binary files /dev/null and b/ILSpy.Package/Images/Square44x44Logo.altform-unplated_targetsize-48.png differ
diff --git a/ILSpy.Package/Images/Square44x44Logo.scale-100.png b/ILSpy.Package/Images/Square44x44Logo.scale-100.png
new file mode 100644
index 0000000000..b6fe6fec47
Binary files /dev/null and b/ILSpy.Package/Images/Square44x44Logo.scale-100.png differ
diff --git a/ILSpy.Package/Images/Square44x44Logo.scale-125.png b/ILSpy.Package/Images/Square44x44Logo.scale-125.png
new file mode 100644
index 0000000000..4233fffd4e
Binary files /dev/null and b/ILSpy.Package/Images/Square44x44Logo.scale-125.png differ
diff --git a/ILSpy.Package/Images/Square44x44Logo.scale-150.png b/ILSpy.Package/Images/Square44x44Logo.scale-150.png
new file mode 100644
index 0000000000..5b8ae561fa
Binary files /dev/null and b/ILSpy.Package/Images/Square44x44Logo.scale-150.png differ
diff --git a/ILSpy.Package/Images/Square44x44Logo.scale-200.png b/ILSpy.Package/Images/Square44x44Logo.scale-200.png
new file mode 100644
index 0000000000..27ae2b761d
Binary files /dev/null and b/ILSpy.Package/Images/Square44x44Logo.scale-200.png differ
diff --git a/ILSpy.Package/Images/Square44x44Logo.scale-400.png b/ILSpy.Package/Images/Square44x44Logo.scale-400.png
new file mode 100644
index 0000000000..5affff3481
Binary files /dev/null and b/ILSpy.Package/Images/Square44x44Logo.scale-400.png differ
diff --git a/ILSpy.Package/Images/Square44x44Logo.targetsize-16.png b/ILSpy.Package/Images/Square44x44Logo.targetsize-16.png
new file mode 100644
index 0000000000..44b57411f1
Binary files /dev/null and b/ILSpy.Package/Images/Square44x44Logo.targetsize-16.png differ
diff --git a/ILSpy.Package/Images/Square44x44Logo.targetsize-24.png b/ILSpy.Package/Images/Square44x44Logo.targetsize-24.png
new file mode 100644
index 0000000000..6105cfb3b1
Binary files /dev/null and b/ILSpy.Package/Images/Square44x44Logo.targetsize-24.png differ
diff --git a/ILSpy.Package/Images/Square44x44Logo.targetsize-24_altform-unplated.png b/ILSpy.Package/Images/Square44x44Logo.targetsize-24_altform-unplated.png
new file mode 100644
index 0000000000..a833fb6702
Binary files /dev/null and b/ILSpy.Package/Images/Square44x44Logo.targetsize-24_altform-unplated.png differ
diff --git a/ILSpy.Package/Images/Square44x44Logo.targetsize-256.png b/ILSpy.Package/Images/Square44x44Logo.targetsize-256.png
new file mode 100644
index 0000000000..b761e8eaf9
Binary files /dev/null and b/ILSpy.Package/Images/Square44x44Logo.targetsize-256.png differ
diff --git a/ILSpy.Package/Images/Square44x44Logo.targetsize-32.png b/ILSpy.Package/Images/Square44x44Logo.targetsize-32.png
new file mode 100644
index 0000000000..0b9473941e
Binary files /dev/null and b/ILSpy.Package/Images/Square44x44Logo.targetsize-32.png differ
diff --git a/ILSpy.Package/Images/Square44x44Logo.targetsize-48.png b/ILSpy.Package/Images/Square44x44Logo.targetsize-48.png
new file mode 100644
index 0000000000..03957a9c20
Binary files /dev/null and b/ILSpy.Package/Images/Square44x44Logo.targetsize-48.png differ
diff --git a/ILSpy.Package/Images/StoreLogo.backup.png b/ILSpy.Package/Images/StoreLogo.backup.png
new file mode 100644
index 0000000000..7385b56c0e
Binary files /dev/null and b/ILSpy.Package/Images/StoreLogo.backup.png differ
diff --git a/ILSpy.Package/Images/StoreLogo.scale-100.png b/ILSpy.Package/Images/StoreLogo.scale-100.png
new file mode 100644
index 0000000000..e41dba90f6
Binary files /dev/null and b/ILSpy.Package/Images/StoreLogo.scale-100.png differ
diff --git a/ILSpy.Package/Images/StoreLogo.scale-125.png b/ILSpy.Package/Images/StoreLogo.scale-125.png
new file mode 100644
index 0000000000..c8a37cb113
Binary files /dev/null and b/ILSpy.Package/Images/StoreLogo.scale-125.png differ
diff --git a/ILSpy.Package/Images/StoreLogo.scale-150.png b/ILSpy.Package/Images/StoreLogo.scale-150.png
new file mode 100644
index 0000000000..e45bf4b541
Binary files /dev/null and b/ILSpy.Package/Images/StoreLogo.scale-150.png differ
diff --git a/ILSpy.Package/Images/StoreLogo.scale-200.png b/ILSpy.Package/Images/StoreLogo.scale-200.png
new file mode 100644
index 0000000000..38c24e2ea3
Binary files /dev/null and b/ILSpy.Package/Images/StoreLogo.scale-200.png differ
diff --git a/ILSpy.Package/Images/StoreLogo.scale-400.png b/ILSpy.Package/Images/StoreLogo.scale-400.png
new file mode 100644
index 0000000000..ff37e5801c
Binary files /dev/null and b/ILSpy.Package/Images/StoreLogo.scale-400.png differ
diff --git a/ILSpy.Package/Images/Wide310x150Logo.scale-100.png b/ILSpy.Package/Images/Wide310x150Logo.scale-100.png
new file mode 100644
index 0000000000..4134618064
Binary files /dev/null and b/ILSpy.Package/Images/Wide310x150Logo.scale-100.png differ
diff --git a/ILSpy.Package/Images/Wide310x150Logo.scale-125.png b/ILSpy.Package/Images/Wide310x150Logo.scale-125.png
new file mode 100644
index 0000000000..3bea5060b8
Binary files /dev/null and b/ILSpy.Package/Images/Wide310x150Logo.scale-125.png differ
diff --git a/ILSpy.Package/Images/Wide310x150Logo.scale-150.png b/ILSpy.Package/Images/Wide310x150Logo.scale-150.png
new file mode 100644
index 0000000000..c5c8d822fe
Binary files /dev/null and b/ILSpy.Package/Images/Wide310x150Logo.scale-150.png differ
diff --git a/ILSpy.Package/Images/Wide310x150Logo.scale-200.png b/ILSpy.Package/Images/Wide310x150Logo.scale-200.png
new file mode 100644
index 0000000000..4ec6ee5fce
Binary files /dev/null and b/ILSpy.Package/Images/Wide310x150Logo.scale-200.png differ
diff --git a/ILSpy.Package/Images/Wide310x150Logo.scale-400.png b/ILSpy.Package/Images/Wide310x150Logo.scale-400.png
new file mode 100644
index 0000000000..01408c079d
Binary files /dev/null and b/ILSpy.Package/Images/Wide310x150Logo.scale-400.png differ
diff --git a/ILSpy.Package/Package-CI.appxmanifest b/ILSpy.Package/Package-CI.appxmanifest
new file mode 100644
index 0000000000..27b6e8f9fd
--- /dev/null
+++ b/ILSpy.Package/Package-CI.appxmanifest
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+ ILSpy (CI)
+ ICSharpCode
+ Images\StoreLogo.png
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ILSpy.Package/Package-Local.appxmanifest b/ILSpy.Package/Package-Local.appxmanifest
new file mode 100644
index 0000000000..da934f3a98
--- /dev/null
+++ b/ILSpy.Package/Package-Local.appxmanifest
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+ ILSpy (Local)
+ ICSharpCode
+ Images\StoreLogo.png
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ILSpy.Package/Package.appinstaller b/ILSpy.Package/Package.appinstaller
new file mode 100644
index 0000000000..63799c92a7
--- /dev/null
+++ b/ILSpy.Package/Package.appinstaller
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ILSpy.Package/Package.appxmanifest b/ILSpy.Package/Package.appxmanifest
new file mode 100644
index 0000000000..cd8740c553
--- /dev/null
+++ b/ILSpy.Package/Package.appxmanifest
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+ ILSpy
+ ICSharpCode
+ Images\StoreLogo.png
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ILSpy.WithPackage.sln b/ILSpy.WithPackage.sln
new file mode 100644
index 0000000000..91d19a76ef
--- /dev/null
+++ b/ILSpy.WithPackage.sln
@@ -0,0 +1,295 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.28803.202
+MinimumVisualStudioVersion = 15.0
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "doc", "doc", "{F45DB999-7E72-4000-B5AD-3A7B485A0896}"
+ ProjectSection(SolutionItems) = preProject
+ doc\Command Line.txt = doc\Command Line.txt
+ doc\ILAst.txt = doc\ILAst.txt
+ doc\IntPtr.txt = doc\IntPtr.txt
+ EndProjectSection
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ILSpy", "ILSpy\ILSpy.csproj", "{1E85EFF9-E370-4683-83E4-8A3D063FF791}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ICSharpCode.TreeView", "SharpTreeView\ICSharpCode.TreeView.csproj", "{DDE2A481-8271-4EAC-A330-8FA6A38D13D1}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ICSharpCode.Decompiler", "ICSharpCode.Decompiler\ICSharpCode.Decompiler.csproj", "{984CC812-9470-4A13-AFF9-CC44068D666C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ICSharpCode.Decompiler.Tests", "ICSharpCode.Decompiler.Tests\ICSharpCode.Decompiler.Tests.csproj", "{FEC0DA52-C4A6-4710-BE36-B484A20C5E22}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestPlugin", "TestPlugin\TestPlugin.csproj", "{F32EBCC8-0E53-4421-867E-05B3D6E10C70}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ILSpy.BamlDecompiler", "ILSpy.BamlDecompiler\ILSpy.BamlDecompiler.csproj", "{A6BAD2BA-76BA-461C-8B6D-418607591247}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ILSpy.BamlDecompiler.Tests", "ILSpy.BamlDecompiler.Tests\ILSpy.BamlDecompiler.Tests.csproj", "{1169E6D1-1899-43D4-A500-07CE4235B388}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ILSpy.AddIn", "ILSpy.AddIn\ILSpy.AddIn.csproj", "{9D7BE6C0-B7B3-4A50-A54E-18A2D84A3384}"
+ ProjectSection(ProjectDependencies) = postProject
+ {A6BAD2BA-76BA-461C-8B6D-418607591247} = {A6BAD2BA-76BA-461C-8B6D-418607591247}
+ EndProjectSection
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ICSharpCode.Decompiler.PdbProvider.Cecil", "ICSharpCode.Decompiler.PdbProvider.Cecil\ICSharpCode.Decompiler.PdbProvider.Cecil.csproj", "{B85A155A-9DD6-43BC-A624-2D8EC773D71F}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ILSpy.Tests", "ILSpy.Tests\ILSpy.Tests.csproj", "{B51C6636-B8D1-4200-9869-08F2689DE6C2}"
+EndProject
+Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "ILSpy.Package", "ILSpy.Package\ILSpy.Package.wapproj", "{BAB51A23-9C15-42CC-8465-EB732BF9A932}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{58AA7BDB-174C-4566-BD8A-EC461F1D6848}"
+ ProjectSection(SolutionItems) = preProject
+ azure-pipelines.yml = azure-pipelines.yml
+ BuildTools\update-assemblyinfo.ps1 = BuildTools\update-assemblyinfo.ps1
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|ARM = Debug|ARM
+ Debug|ARM64 = Debug|ARM64
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|ARM = Release|ARM
+ Release|ARM64 = Release|ARM64
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {1E85EFF9-E370-4683-83E4-8A3D063FF791}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1E85EFF9-E370-4683-83E4-8A3D063FF791}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1E85EFF9-E370-4683-83E4-8A3D063FF791}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {1E85EFF9-E370-4683-83E4-8A3D063FF791}.Debug|ARM.Build.0 = Debug|Any CPU
+ {1E85EFF9-E370-4683-83E4-8A3D063FF791}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {1E85EFF9-E370-4683-83E4-8A3D063FF791}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {1E85EFF9-E370-4683-83E4-8A3D063FF791}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {1E85EFF9-E370-4683-83E4-8A3D063FF791}.Debug|x64.Build.0 = Debug|Any CPU
+ {1E85EFF9-E370-4683-83E4-8A3D063FF791}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {1E85EFF9-E370-4683-83E4-8A3D063FF791}.Debug|x86.Build.0 = Debug|Any CPU
+ {1E85EFF9-E370-4683-83E4-8A3D063FF791}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1E85EFF9-E370-4683-83E4-8A3D063FF791}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1E85EFF9-E370-4683-83E4-8A3D063FF791}.Release|ARM.ActiveCfg = Release|Any CPU
+ {1E85EFF9-E370-4683-83E4-8A3D063FF791}.Release|ARM.Build.0 = Release|Any CPU
+ {1E85EFF9-E370-4683-83E4-8A3D063FF791}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {1E85EFF9-E370-4683-83E4-8A3D063FF791}.Release|ARM64.Build.0 = Release|Any CPU
+ {1E85EFF9-E370-4683-83E4-8A3D063FF791}.Release|x64.ActiveCfg = Release|Any CPU
+ {1E85EFF9-E370-4683-83E4-8A3D063FF791}.Release|x64.Build.0 = Release|Any CPU
+ {1E85EFF9-E370-4683-83E4-8A3D063FF791}.Release|x86.ActiveCfg = Release|Any CPU
+ {1E85EFF9-E370-4683-83E4-8A3D063FF791}.Release|x86.Build.0 = Release|Any CPU
+ {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|ARM.Build.0 = Debug|Any CPU
+ {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|x64.Build.0 = Debug|Any CPU
+ {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|x86.Build.0 = Debug|Any CPU
+ {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|ARM.ActiveCfg = Release|Any CPU
+ {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|ARM.Build.0 = Release|Any CPU
+ {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|ARM64.Build.0 = Release|Any CPU
+ {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|x64.ActiveCfg = Release|Any CPU
+ {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|x64.Build.0 = Release|Any CPU
+ {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|x86.ActiveCfg = Release|Any CPU
+ {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|x86.Build.0 = Release|Any CPU
+ {984CC812-9470-4A13-AFF9-CC44068D666C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {984CC812-9470-4A13-AFF9-CC44068D666C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {984CC812-9470-4A13-AFF9-CC44068D666C}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {984CC812-9470-4A13-AFF9-CC44068D666C}.Debug|ARM.Build.0 = Debug|Any CPU
+ {984CC812-9470-4A13-AFF9-CC44068D666C}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {984CC812-9470-4A13-AFF9-CC44068D666C}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {984CC812-9470-4A13-AFF9-CC44068D666C}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {984CC812-9470-4A13-AFF9-CC44068D666C}.Debug|x64.Build.0 = Debug|Any CPU
+ {984CC812-9470-4A13-AFF9-CC44068D666C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {984CC812-9470-4A13-AFF9-CC44068D666C}.Debug|x86.Build.0 = Debug|Any CPU
+ {984CC812-9470-4A13-AFF9-CC44068D666C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {984CC812-9470-4A13-AFF9-CC44068D666C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {984CC812-9470-4A13-AFF9-CC44068D666C}.Release|ARM.ActiveCfg = Release|Any CPU
+ {984CC812-9470-4A13-AFF9-CC44068D666C}.Release|ARM.Build.0 = Release|Any CPU
+ {984CC812-9470-4A13-AFF9-CC44068D666C}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {984CC812-9470-4A13-AFF9-CC44068D666C}.Release|ARM64.Build.0 = Release|Any CPU
+ {984CC812-9470-4A13-AFF9-CC44068D666C}.Release|x64.ActiveCfg = Release|Any CPU
+ {984CC812-9470-4A13-AFF9-CC44068D666C}.Release|x64.Build.0 = Release|Any CPU
+ {984CC812-9470-4A13-AFF9-CC44068D666C}.Release|x86.ActiveCfg = Release|Any CPU
+ {984CC812-9470-4A13-AFF9-CC44068D666C}.Release|x86.Build.0 = Release|Any CPU
+ {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Debug|ARM.Build.0 = Debug|Any CPU
+ {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Debug|x64.Build.0 = Debug|Any CPU
+ {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Debug|x86.Build.0 = Debug|Any CPU
+ {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Release|ARM.ActiveCfg = Release|Any CPU
+ {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Release|ARM.Build.0 = Release|Any CPU
+ {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Release|ARM64.Build.0 = Release|Any CPU
+ {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Release|x64.ActiveCfg = Release|Any CPU
+ {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Release|x64.Build.0 = Release|Any CPU
+ {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Release|x86.ActiveCfg = Release|Any CPU
+ {FEC0DA52-C4A6-4710-BE36-B484A20C5E22}.Release|x86.Build.0 = Release|Any CPU
+ {F32EBCC8-0E53-4421-867E-05B3D6E10C70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F32EBCC8-0E53-4421-867E-05B3D6E10C70}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F32EBCC8-0E53-4421-867E-05B3D6E10C70}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {F32EBCC8-0E53-4421-867E-05B3D6E10C70}.Debug|ARM.Build.0 = Debug|Any CPU
+ {F32EBCC8-0E53-4421-867E-05B3D6E10C70}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {F32EBCC8-0E53-4421-867E-05B3D6E10C70}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {F32EBCC8-0E53-4421-867E-05B3D6E10C70}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {F32EBCC8-0E53-4421-867E-05B3D6E10C70}.Debug|x64.Build.0 = Debug|Any CPU
+ {F32EBCC8-0E53-4421-867E-05B3D6E10C70}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {F32EBCC8-0E53-4421-867E-05B3D6E10C70}.Debug|x86.Build.0 = Debug|Any CPU
+ {F32EBCC8-0E53-4421-867E-05B3D6E10C70}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F32EBCC8-0E53-4421-867E-05B3D6E10C70}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F32EBCC8-0E53-4421-867E-05B3D6E10C70}.Release|ARM.ActiveCfg = Release|Any CPU
+ {F32EBCC8-0E53-4421-867E-05B3D6E10C70}.Release|ARM.Build.0 = Release|Any CPU
+ {F32EBCC8-0E53-4421-867E-05B3D6E10C70}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {F32EBCC8-0E53-4421-867E-05B3D6E10C70}.Release|ARM64.Build.0 = Release|Any CPU
+ {F32EBCC8-0E53-4421-867E-05B3D6E10C70}.Release|x64.ActiveCfg = Release|Any CPU
+ {F32EBCC8-0E53-4421-867E-05B3D6E10C70}.Release|x64.Build.0 = Release|Any CPU
+ {F32EBCC8-0E53-4421-867E-05B3D6E10C70}.Release|x86.ActiveCfg = Release|Any CPU
+ {F32EBCC8-0E53-4421-867E-05B3D6E10C70}.Release|x86.Build.0 = Release|Any CPU
+ {A6BAD2BA-76BA-461C-8B6D-418607591247}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A6BAD2BA-76BA-461C-8B6D-418607591247}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A6BAD2BA-76BA-461C-8B6D-418607591247}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {A6BAD2BA-76BA-461C-8B6D-418607591247}.Debug|ARM.Build.0 = Debug|Any CPU
+ {A6BAD2BA-76BA-461C-8B6D-418607591247}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {A6BAD2BA-76BA-461C-8B6D-418607591247}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {A6BAD2BA-76BA-461C-8B6D-418607591247}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {A6BAD2BA-76BA-461C-8B6D-418607591247}.Debug|x64.Build.0 = Debug|Any CPU
+ {A6BAD2BA-76BA-461C-8B6D-418607591247}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {A6BAD2BA-76BA-461C-8B6D-418607591247}.Debug|x86.Build.0 = Debug|Any CPU
+ {A6BAD2BA-76BA-461C-8B6D-418607591247}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A6BAD2BA-76BA-461C-8B6D-418607591247}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A6BAD2BA-76BA-461C-8B6D-418607591247}.Release|ARM.ActiveCfg = Release|Any CPU
+ {A6BAD2BA-76BA-461C-8B6D-418607591247}.Release|ARM.Build.0 = Release|Any CPU
+ {A6BAD2BA-76BA-461C-8B6D-418607591247}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {A6BAD2BA-76BA-461C-8B6D-418607591247}.Release|ARM64.Build.0 = Release|Any CPU
+ {A6BAD2BA-76BA-461C-8B6D-418607591247}.Release|x64.ActiveCfg = Release|Any CPU
+ {A6BAD2BA-76BA-461C-8B6D-418607591247}.Release|x64.Build.0 = Release|Any CPU
+ {A6BAD2BA-76BA-461C-8B6D-418607591247}.Release|x86.ActiveCfg = Release|Any CPU
+ {A6BAD2BA-76BA-461C-8B6D-418607591247}.Release|x86.Build.0 = Release|Any CPU
+ {1169E6D1-1899-43D4-A500-07CE4235B388}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1169E6D1-1899-43D4-A500-07CE4235B388}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1169E6D1-1899-43D4-A500-07CE4235B388}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {1169E6D1-1899-43D4-A500-07CE4235B388}.Debug|ARM.Build.0 = Debug|Any CPU
+ {1169E6D1-1899-43D4-A500-07CE4235B388}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {1169E6D1-1899-43D4-A500-07CE4235B388}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {1169E6D1-1899-43D4-A500-07CE4235B388}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {1169E6D1-1899-43D4-A500-07CE4235B388}.Debug|x64.Build.0 = Debug|Any CPU
+ {1169E6D1-1899-43D4-A500-07CE4235B388}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {1169E6D1-1899-43D4-A500-07CE4235B388}.Debug|x86.Build.0 = Debug|Any CPU
+ {1169E6D1-1899-43D4-A500-07CE4235B388}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1169E6D1-1899-43D4-A500-07CE4235B388}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1169E6D1-1899-43D4-A500-07CE4235B388}.Release|ARM.ActiveCfg = Release|Any CPU
+ {1169E6D1-1899-43D4-A500-07CE4235B388}.Release|ARM.Build.0 = Release|Any CPU
+ {1169E6D1-1899-43D4-A500-07CE4235B388}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {1169E6D1-1899-43D4-A500-07CE4235B388}.Release|ARM64.Build.0 = Release|Any CPU
+ {1169E6D1-1899-43D4-A500-07CE4235B388}.Release|x64.ActiveCfg = Release|Any CPU
+ {1169E6D1-1899-43D4-A500-07CE4235B388}.Release|x64.Build.0 = Release|Any CPU
+ {1169E6D1-1899-43D4-A500-07CE4235B388}.Release|x86.ActiveCfg = Release|Any CPU
+ {1169E6D1-1899-43D4-A500-07CE4235B388}.Release|x86.Build.0 = Release|Any CPU
+ {9D7BE6C0-B7B3-4A50-A54E-18A2D84A3384}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9D7BE6C0-B7B3-4A50-A54E-18A2D84A3384}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9D7BE6C0-B7B3-4A50-A54E-18A2D84A3384}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {9D7BE6C0-B7B3-4A50-A54E-18A2D84A3384}.Debug|ARM.Build.0 = Debug|Any CPU
+ {9D7BE6C0-B7B3-4A50-A54E-18A2D84A3384}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {9D7BE6C0-B7B3-4A50-A54E-18A2D84A3384}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {9D7BE6C0-B7B3-4A50-A54E-18A2D84A3384}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {9D7BE6C0-B7B3-4A50-A54E-18A2D84A3384}.Debug|x64.Build.0 = Debug|Any CPU
+ {9D7BE6C0-B7B3-4A50-A54E-18A2D84A3384}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {9D7BE6C0-B7B3-4A50-A54E-18A2D84A3384}.Debug|x86.Build.0 = Debug|Any CPU
+ {9D7BE6C0-B7B3-4A50-A54E-18A2D84A3384}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9D7BE6C0-B7B3-4A50-A54E-18A2D84A3384}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9D7BE6C0-B7B3-4A50-A54E-18A2D84A3384}.Release|ARM.ActiveCfg = Release|Any CPU
+ {9D7BE6C0-B7B3-4A50-A54E-18A2D84A3384}.Release|ARM.Build.0 = Release|Any CPU
+ {9D7BE6C0-B7B3-4A50-A54E-18A2D84A3384}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {9D7BE6C0-B7B3-4A50-A54E-18A2D84A3384}.Release|ARM64.Build.0 = Release|Any CPU
+ {9D7BE6C0-B7B3-4A50-A54E-18A2D84A3384}.Release|x64.ActiveCfg = Release|Any CPU
+ {9D7BE6C0-B7B3-4A50-A54E-18A2D84A3384}.Release|x64.Build.0 = Release|Any CPU
+ {9D7BE6C0-B7B3-4A50-A54E-18A2D84A3384}.Release|x86.ActiveCfg = Release|Any CPU
+ {9D7BE6C0-B7B3-4A50-A54E-18A2D84A3384}.Release|x86.Build.0 = Release|Any CPU
+ {B85A155A-9DD6-43BC-A624-2D8EC773D71F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B85A155A-9DD6-43BC-A624-2D8EC773D71F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B85A155A-9DD6-43BC-A624-2D8EC773D71F}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {B85A155A-9DD6-43BC-A624-2D8EC773D71F}.Debug|ARM.Build.0 = Debug|Any CPU
+ {B85A155A-9DD6-43BC-A624-2D8EC773D71F}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {B85A155A-9DD6-43BC-A624-2D8EC773D71F}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {B85A155A-9DD6-43BC-A624-2D8EC773D71F}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {B85A155A-9DD6-43BC-A624-2D8EC773D71F}.Debug|x64.Build.0 = Debug|Any CPU
+ {B85A155A-9DD6-43BC-A624-2D8EC773D71F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {B85A155A-9DD6-43BC-A624-2D8EC773D71F}.Debug|x86.Build.0 = Debug|Any CPU
+ {B85A155A-9DD6-43BC-A624-2D8EC773D71F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B85A155A-9DD6-43BC-A624-2D8EC773D71F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B85A155A-9DD6-43BC-A624-2D8EC773D71F}.Release|ARM.ActiveCfg = Release|Any CPU
+ {B85A155A-9DD6-43BC-A624-2D8EC773D71F}.Release|ARM.Build.0 = Release|Any CPU
+ {B85A155A-9DD6-43BC-A624-2D8EC773D71F}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {B85A155A-9DD6-43BC-A624-2D8EC773D71F}.Release|ARM64.Build.0 = Release|Any CPU
+ {B85A155A-9DD6-43BC-A624-2D8EC773D71F}.Release|x64.ActiveCfg = Release|Any CPU
+ {B85A155A-9DD6-43BC-A624-2D8EC773D71F}.Release|x64.Build.0 = Release|Any CPU
+ {B85A155A-9DD6-43BC-A624-2D8EC773D71F}.Release|x86.ActiveCfg = Release|Any CPU
+ {B85A155A-9DD6-43BC-A624-2D8EC773D71F}.Release|x86.Build.0 = Release|Any CPU
+ {B51C6636-B8D1-4200-9869-08F2689DE6C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B51C6636-B8D1-4200-9869-08F2689DE6C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B51C6636-B8D1-4200-9869-08F2689DE6C2}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {B51C6636-B8D1-4200-9869-08F2689DE6C2}.Debug|ARM.Build.0 = Debug|Any CPU
+ {B51C6636-B8D1-4200-9869-08F2689DE6C2}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {B51C6636-B8D1-4200-9869-08F2689DE6C2}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {B51C6636-B8D1-4200-9869-08F2689DE6C2}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {B51C6636-B8D1-4200-9869-08F2689DE6C2}.Debug|x64.Build.0 = Debug|Any CPU
+ {B51C6636-B8D1-4200-9869-08F2689DE6C2}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {B51C6636-B8D1-4200-9869-08F2689DE6C2}.Debug|x86.Build.0 = Debug|Any CPU
+ {B51C6636-B8D1-4200-9869-08F2689DE6C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B51C6636-B8D1-4200-9869-08F2689DE6C2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B51C6636-B8D1-4200-9869-08F2689DE6C2}.Release|ARM.ActiveCfg = Release|Any CPU
+ {B51C6636-B8D1-4200-9869-08F2689DE6C2}.Release|ARM.Build.0 = Release|Any CPU
+ {B51C6636-B8D1-4200-9869-08F2689DE6C2}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {B51C6636-B8D1-4200-9869-08F2689DE6C2}.Release|ARM64.Build.0 = Release|Any CPU
+ {B51C6636-B8D1-4200-9869-08F2689DE6C2}.Release|x64.ActiveCfg = Release|Any CPU
+ {B51C6636-B8D1-4200-9869-08F2689DE6C2}.Release|x64.Build.0 = Release|Any CPU
+ {B51C6636-B8D1-4200-9869-08F2689DE6C2}.Release|x86.ActiveCfg = Release|Any CPU
+ {B51C6636-B8D1-4200-9869-08F2689DE6C2}.Release|x86.Build.0 = Release|Any CPU
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Debug|ARM.ActiveCfg = Debug|ARM
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Debug|ARM.Build.0 = Debug|ARM
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Debug|ARM.Deploy.0 = Debug|ARM
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Debug|ARM64.Build.0 = Debug|ARM64
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Debug|ARM64.Deploy.0 = Debug|ARM64
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Debug|x64.ActiveCfg = Debug|x64
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Debug|x64.Build.0 = Debug|x64
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Debug|x64.Deploy.0 = Debug|x64
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Debug|x86.ActiveCfg = Debug|x86
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Debug|x86.Build.0 = Debug|x86
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Debug|x86.Deploy.0 = Debug|x86
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Release|ARM.ActiveCfg = Release|ARM
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Release|ARM.Build.0 = Release|ARM
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Release|ARM.Deploy.0 = Release|ARM
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Release|ARM64.ActiveCfg = Release|ARM64
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Release|ARM64.Build.0 = Release|ARM64
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Release|ARM64.Deploy.0 = Release|ARM64
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Release|x64.ActiveCfg = Release|x64
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Release|x64.Build.0 = Release|x64
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Release|x64.Deploy.0 = Release|x64
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Release|x86.ActiveCfg = Release|x86
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Release|x86.Build.0 = Release|x86
+ {BAB51A23-9C15-42CC-8465-EB732BF9A932}.Release|x86.Deploy.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {C764218F-7633-4412-923D-558CE7EE0560}
+ EndGlobalSection
+EndGlobal
diff --git a/ILSpy/AboutPage.cs b/ILSpy/AboutPage.cs
index 5ca4c5fc3f..ca85a1c0d4 100644
--- a/ILSpy/AboutPage.cs
+++ b/ILSpy/AboutPage.cs
@@ -35,6 +35,7 @@
using ICSharpCode.Decompiler;
using ICSharpCode.ILSpy.Properties;
using ICSharpCode.ILSpy.TextView;
+using OSVersionHelper;
namespace ICSharpCode.ILSpy
{
@@ -59,7 +60,10 @@ public static void Display(DecompilerTextView textView)
{
AvalonEditTextOutput output = new AvalonEditTextOutput() { EnableHyperlinks = true };
output.WriteLine(Resources.ILSpyVersion + RevisionClass.FullVersion);
- output.AddUIElement(
+ if(WindowsVersionHelper.HasPackageIdentity) {
+ output.WriteLine($"Package Name: {WindowsVersionHelper.GetPackageFamilyName()}");
+ } else {// if we're running in an MSIX, updates work differently
+ output.AddUIElement(
delegate {
StackPanel stackPanel = new StackPanel();
stackPanel.HorizontalAlignment = HorizontalAlignment.Center;
@@ -81,7 +85,9 @@ public static void Display(DecompilerTextView textView)
Children = { stackPanel, checkBox }
};
});
- output.WriteLine();
+ output.WriteLine();
+ }
+
foreach (var plugin in App.ExportProvider.GetExportedValues())
plugin.Write(output);
output.WriteLine();
@@ -283,7 +289,8 @@ public static Task CheckForUpdatesIfEnabledAsync(ILSpySettings spySettin
{
var tcs = new TaskCompletionSource();
UpdateSettings s = new UpdateSettings(spySettings);
- if (s.AutomaticUpdateCheckEnabled) {
+ // If we're in an MSIX package, updates work differently
+ if (s.AutomaticUpdateCheckEnabled && !WindowsVersionHelper.HasPackageIdentity) {
// perform update check if we never did one before;
// or if the last check wasn't in the past 7 days
if (s.LastSuccessfulUpdateCheck == null
diff --git a/ILSpy/Commands/CheckForUpdatesCommand.cs b/ILSpy/Commands/CheckForUpdatesCommand.cs
index 179e26b6f3..7cae660d9e 100644
--- a/ILSpy/Commands/CheckForUpdatesCommand.cs
+++ b/ILSpy/Commands/CheckForUpdatesCommand.cs
@@ -18,12 +18,22 @@
using ICSharpCode.ILSpy.Properties;
+using OSVersionHelper;
namespace ICSharpCode.ILSpy
{
[ExportMainMenuCommand(Menu = nameof(Resources._Help), Header = nameof(Resources._CheckUpdates), MenuOrder = 5000)]
sealed class CheckForUpdatesCommand : SimpleCommand
{
+ public override bool CanExecute(object parameter)
+ {
+ if(WindowsVersionHelper.HasPackageIdentity) {
+ return false;
+ }
+
+ return base.CanExecute(parameter);
+ }
+
public override void Execute(object parameter)
{
MainWindow.Instance.ShowMessageIfUpdatesAvailableAsync(ILSpySettings.Load(), forceCheck: true);
diff --git a/ILSpy/ILSpy.csproj b/ILSpy/ILSpy.csproj
index 0d4ce8bceb..c7f0658d63 100644
--- a/ILSpy/ILSpy.csproj
+++ b/ILSpy/ILSpy.csproj
@@ -9,7 +9,7 @@
false
false
- true
+ true
false
false
@@ -52,6 +52,7 @@
+
@@ -81,9 +82,7 @@
-
- Code
-
+
@@ -91,7 +90,6 @@
- Code
App.xaml
@@ -176,16 +174,13 @@
- Code
NugetPackageBrowserDialog.xaml
OpenFromGacDialog.xaml
- Code
ResourceStringTable.xaml
- Code
OpenListDialog.xaml
@@ -193,7 +188,6 @@
DisplaySettingsPanel.xaml
- Code
@@ -201,14 +195,12 @@
OptionsDialog.xaml
- Code
SearchPane.xaml
- Code
@@ -281,7 +273,6 @@
- Code
MainWindow.xaml
diff --git a/ILSpy/MainWindow.xaml.cs b/ILSpy/MainWindow.xaml.cs
index 8e6e8b6b17..294dd57467 100644
--- a/ILSpy/MainWindow.xaml.cs
+++ b/ILSpy/MainWindow.xaml.cs
@@ -42,6 +42,7 @@
using ICSharpCode.ILSpy.TreeNodes;
using ICSharpCode.TreeView;
using Microsoft.Win32;
+using OSVersionHelper;
namespace ICSharpCode.ILSpy
{
@@ -490,6 +491,11 @@ internal static bool FormatExceptions(App.ExceptionData[] exceptions, StringBuil
public void ShowMessageIfUpdatesAvailableAsync(ILSpySettings spySettings, bool forceCheck = false)
{
+ // Don't check for updates if we're in an MSIX since they work differently
+ if(WindowsVersionHelper.HasPackageIdentity) {
+ return;
+ }
+
Task result;
if (forceCheck) {
result = AboutPage.CheckForUpdatesAsync(spySettings);
diff --git a/SharpTreeView/ICSharpCode.TreeView.csproj b/SharpTreeView/ICSharpCode.TreeView.csproj
index 0aa8cb17b6..77bf6c2710 100644
--- a/SharpTreeView/ICSharpCode.TreeView.csproj
+++ b/SharpTreeView/ICSharpCode.TreeView.csproj
@@ -1,4 +1,4 @@
-
+
@@ -7,7 +7,7 @@
False
false
- true
+ true
false
false
@@ -48,9 +48,7 @@
-
- Code
-
+
diff --git a/TestPlugin/TestPlugin.csproj b/TestPlugin/TestPlugin.csproj
index b1b69872d6..d55956bf53 100644
--- a/TestPlugin/TestPlugin.csproj
+++ b/TestPlugin/TestPlugin.csproj
@@ -8,7 +8,7 @@
False
False
- true
+ true
false
false
@@ -44,7 +44,6 @@
CustomOptionPage.xaml
- Code
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
new file mode 100644
index 0000000000..f7a9fa21d5
--- /dev/null
+++ b/azure-pipelines.yml
@@ -0,0 +1,100 @@
+trigger:
+- master
+- msix
+- 3.2.x
+
+pr:
+- master
+- 3.2.x
+
+variables:
+ DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
+ BuildPlatform: Any CPU
+
+jobs:
+- job: Build
+ pool:
+ vmImage: windows-2019
+ strategy:
+ matrix:
+ Config_Release_Zip:
+ BuildConfiguration: Release
+ ReleaseChannel: Zip
+ Solution: ILSpy.sln
+ Config_Debug_Zip:
+ BuildConfiguration: Debug
+ ReleaseChannel: Zip
+ Solution: ILSpy.sln
+ Config_Release_CI:
+ BuildConfiguration: Release
+ ReleaseChannel: CI
+ Solution: ILSpy.WithPackage.sln
+ Config_Release_Store:
+ BuildConfiguration: Release
+ ReleaseChannel: Store
+ Solution: ILSpy.WithPackage.sln
+
+ steps:
+ - checkout: self
+ submodules: recursive
+
+ - task: DotNetCoreInstaller@0
+ inputs:
+ version: '3.0.100-preview5-011568'
+
+ - powershell: .\BuildTools\pipelines-install.ps1
+ displayName: Install
+
+ - task: MSBuild@1
+ displayName: Restore ILSpy
+ inputs:
+ solution: $(Solution)
+ msbuildArguments: /t:restore
+ configuration: $(BuildConfiguration)
+ platform: $(BuildPlatform)
+
+ - task: MSBuild@1
+ displayName: Build ILSpy
+ inputs:
+ solution: $(Solution)
+ msbuildArguments: /p:AppxPackageDir="$(Build.ArtifactStagingDirectory)\$(ReleaseChannel)\\"
+ configuration: $(BuildConfiguration)
+ platform: $(BuildPlatform)
+ maximumCpuCount: true
+
+ - task: VSTest@2
+ displayName: Test
+ inputs:
+ testSelector: testAssemblies
+ testAssemblyVer2: |
+ ICSharpCode.Decompiler.Tests\bin\$(BuildConfiguration)\net462\ICSharpCode.Decompiler.Tests.exe
+ ILSpy.Tests\bin\$(BuildConfiguration)\net462\ILSpy.Tests.exe
+ ILSpy.BamlDecompiler.Tests\bin\$(BuildConfiguration)\net462\ILSpy.BamlDecompiler.Tests.dll
+
+ - task: ArchiveFiles@1
+ displayName: Create zip
+ inputs:
+ archiveType: zip
+ rootFolder: ILSpy/bin/$(BuildConfiguration)/net462
+ archiveFile: $(Build.ArtifactStagingDirectory)\$(ReleaseChannel)\ILSpy.$(Build.BuildNumber).zip
+ includeRootFolder: false
+ condition: and(succeeded(), eq(variables['ReleaseChannel'], 'Zip'))
+
+ - script: python BuildTools\tidy.py
+ displayName: Tab check
+
+ - task: CopyFiles@2
+ displayName: Move VSIX to publish directory
+ inputs:
+ contents: |
+ **\*.vsix
+ **\*.nupkg
+ targetFolder: $(Build.ArtifactStagingDirectory)\$(ReleaseChannel)
+ flattenFolders: true
+ condition: and(succeeded(), eq(variables['ReleaseChannel'], 'Zip'))
+
+ - task: PublishPipelineArtifact@0
+ displayName: Publish $(ReleaseChannel) $(BuildConfiguration)
+ inputs:
+ targetPath: $(Build.ArtifactStagingDirectory)\$(ReleaseChannel)
+ artifactName: $(ReleaseChannel) - $(BuildConfiguration)
\ No newline at end of file
diff --git a/global.json b/global.json
index 8067f2c2ae..5fff0f5199 100644
--- a/global.json
+++ b/global.json
@@ -1,5 +1,8 @@
{
"msbuild-sdks": {
- "MSBuild.Sdk.Extras": "1.6.65"
+ "MSBuild.Sdk.Extras": "2.0.24"
+ },
+ "sdk": {
+ "version": "3.0.100-preview"
}
}