diff --git a/.github/workflows/build-ilspy.yml b/.github/workflows/build-ilspy.yml
index 11faca8a4..2b6b3ed2c 100644
--- a/.github/workflows/build-ilspy.yml
+++ b/.github/workflows/build-ilspy.yml
@@ -97,6 +97,12 @@ jobs:
msbuild ILSpy.Installer.sln /p:Configuration="Release" /p:Platform="Any CPU"
msbuild ILSpy.Installer.sln /p:Configuration="Release" /p:Platform="Any CPU" /p:DefineConstants="ARM64"
+ - name: Build VS Extensions (for 2017-2019 and 2022)
+ if: matrix.configuration == 'release'
+ run: |
+ msbuild ILSpy.VSExtensions.sln /t:Restore /p:Configuration="Release" /p:Platform="Any CPU"
+ msbuild ILSpy.VSExtensions.sln /p:Configuration="Release" /p:Platform="Any CPU"
+
# https://github.com/actions/upload-artifact
- name: Upload VSIX (VS 2019) release build artifacts
if: matrix.configuration == 'release'
diff --git a/ILSpy.AddIn.Shared/Commands/OpenILSpyCommand.cs b/ILSpy.AddIn.Shared/Commands/OpenILSpyCommand.cs
index 6759a54c1..13caafd9c 100644
--- a/ILSpy.AddIn.Shared/Commands/OpenILSpyCommand.cs
+++ b/ILSpy.AddIn.Shared/Commands/OpenILSpyCommand.cs
@@ -47,12 +47,6 @@ namespace ICSharpCode.ILSpy.AddIn.Commands
protected abstract void OnExecute(object sender, EventArgs e);
- protected string GetILSpyPath()
- {
- var basePath = Path.GetDirectoryName(typeof(ILSpyAddInPackage).Assembly.Location);
- return Path.Combine(basePath, "ILSpy", "ILSpy.exe");
- }
-
protected void OpenAssembliesInILSpy(ILSpyParameters parameters)
{
ThreadHelper.ThrowIfNotOnUIThread();
diff --git a/ILSpy.AddIn.Shared/ILSpyInstance.cs b/ILSpy.AddIn.Shared/ILSpyInstance.cs
index 8144eb140..dc90e39a2 100644
--- a/ILSpy.AddIn.Shared/ILSpyInstance.cs
+++ b/ILSpy.AddIn.Shared/ILSpyInstance.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
+using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
@@ -31,8 +32,15 @@ namespace ICSharpCode.ILSpy.AddIn
static string GetILSpyPath()
{
+ // Only VS2022 supports arm64, so we can gloss over 2017-2019 support
+ string archPathSegment = "x64";
+ if (RuntimeInformation.ProcessArchitecture == Architecture.Arm64)
+ {
+ archPathSegment = "arm64";
+ }
+
var basePath = Path.GetDirectoryName(typeof(ILSpyAddInPackage).Assembly.Location);
- return Path.Combine(basePath, "ILSpy", "ILSpy.exe");
+ return Path.Combine(basePath, archPathSegment, "ILSpy", "ILSpy.exe");
}
public void Start()
diff --git a/ILSpy.AddIn.VS2022/ILSpy.AddIn.VS2022.csproj b/ILSpy.AddIn.VS2022/ILSpy.AddIn.VS2022.csproj
index 88f9c5294..5d09db657 100644
--- a/ILSpy.AddIn.VS2022/ILSpy.AddIn.VS2022.csproj
+++ b/ILSpy.AddIn.VS2022/ILSpy.AddIn.VS2022.csproj
@@ -41,9 +41,9 @@
-
+
all
- runtime; build; native; contentfiles; analyzers
+ runtime; build; native; contentfiles; analyzers; buildtransitive
@@ -55,21 +55,6 @@
-
-
- false
- true
-
-
- false
- true
-
-
- false
- true
-
-
-
@@ -89,16 +74,23 @@
- ..\ILSpy\bin\$(Configuration)\net6.0-windows\
+ ..\ILSpy\bin\$(Configuration)\net6.0-windows\win-x64\publish\fwdependent\
+ ..\ILSpy\bin\$(Configuration)\net6.0-windows\win-arm64\publish\fwdependent\
-
- \ILSpy\zh-Hans\
+
+ \x64\ILSpy\zh-Hans\
+
+
+ \x64\ILSpy
+
+
+ \arm64\ILSpy\zh-Hans\
-
- \ILSpy
+
+ \arm64\ILSpy
diff --git a/ILSpy.AddIn.VS2022/source.extension.vsixmanifest.template b/ILSpy.AddIn.VS2022/source.extension.vsixmanifest.template
index db13ce77e..be1488335 100644
--- a/ILSpy.AddIn.VS2022/source.extension.vsixmanifest.template
+++ b/ILSpy.AddIn.VS2022/source.extension.vsixmanifest.template
@@ -13,6 +13,9 @@
+
diff --git a/ILSpy.AddIn.slnf b/ILSpy.AddIn.slnf
deleted file mode 100644
index 3dbf7547f..000000000
--- a/ILSpy.AddIn.slnf
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "solution": {
- "path": "ILSpy.sln",
- "projects": [
- "ICSharpCode.Decompiler.TestRunner\\ICSharpCode.Decompiler.TestRunner.csproj",
- "ICSharpCode.Decompiler.Tests\\ICSharpCode.Decompiler.Tests.csproj",
- "ICSharpCode.Decompiler\\ICSharpCode.Decompiler.csproj",
- "ICSharpCode.ILSpyX\\ICSharpCode.ILSpyX.csproj",
- "ILSpy.AddIn.Shared\\ILSpy.AddIn.Shared.shproj",
- "ILSpy.AddIn.VS2022\\ILSpy.AddIn.VS2022.csproj",
- "ILSpy.AddIn\\ILSpy.AddIn.csproj",
- "ILSpy.BamlDecompiler.Tests\\ILSpy.BamlDecompiler.Tests.csproj",
- "ILSpy.BamlDecompiler\\ILSpy.BamlDecompiler.csproj",
- "ILSpy.ReadyToRun\\ILSpy.ReadyToRun.csproj",
- "ILSpy.Tests\\ILSpy.Tests.csproj",
- "ILSpy\\ILSpy.csproj",
- "SharpTreeView\\ICSharpCode.TreeView.csproj",
- "TestPlugin\\TestPlugin.csproj"
- ]
- }
-}
\ No newline at end of file
diff --git a/ILSpy.AddIn/ILSpy.AddIn.csproj b/ILSpy.AddIn/ILSpy.AddIn.csproj
index 175426057..021cfed03 100644
--- a/ILSpy.AddIn/ILSpy.AddIn.csproj
+++ b/ILSpy.AddIn/ILSpy.AddIn.csproj
@@ -47,7 +47,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
@@ -61,21 +61,6 @@
-
-
- false
- true
-
-
- false
- true
-
-
- false
- true
-
-
-
@@ -95,7 +80,7 @@
- ..\ILSpy\bin\$(Configuration)\net6.0-windows\
+ ..\ILSpy\bin\$(Configuration)\net6.0-windows\win-x64\publish\fwdependent\
diff --git a/ILSpy.VSExtensions.sln b/ILSpy.VSExtensions.sln
new file mode 100644
index 000000000..d086a027a
--- /dev/null
+++ b/ILSpy.VSExtensions.sln
@@ -0,0 +1,38 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.7.33808.371
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ILSpy.AddIn.Shared", "ILSpy.AddIn.Shared\ILSpy.AddIn.Shared.shproj", "{ACAB1E5D-B3DF-4092-AA72-692F8341E520}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ILSpy.AddIn", "ILSpy.AddIn\ILSpy.AddIn.csproj", "{A1B6B501-15D4-4237-A4C3-5EFCB71B0F74}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ILSpy.AddIn.VS2022", "ILSpy.AddIn.VS2022\ILSpy.AddIn.VS2022.csproj", "{31E6E2B0-24B4-4D2C-AC17-3B44DAACC9D4}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {A1B6B501-15D4-4237-A4C3-5EFCB71B0F74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A1B6B501-15D4-4237-A4C3-5EFCB71B0F74}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A1B6B501-15D4-4237-A4C3-5EFCB71B0F74}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A1B6B501-15D4-4237-A4C3-5EFCB71B0F74}.Release|Any CPU.Build.0 = Release|Any CPU
+ {31E6E2B0-24B4-4D2C-AC17-3B44DAACC9D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {31E6E2B0-24B4-4D2C-AC17-3B44DAACC9D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {31E6E2B0-24B4-4D2C-AC17-3B44DAACC9D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {31E6E2B0-24B4-4D2C-AC17-3B44DAACC9D4}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {84D734FE-9E9C-4593-8927-6F45FE3E460A}
+ EndGlobalSection
+ GlobalSection(SharedMSBuildProjectFiles) = preSolution
+ ILSpy.AddIn.Shared\ILSpy.AddIn.Shared.projitems*{31e6e2b0-24b4-4d2c-ac17-3b44daacc9d4}*SharedItemsImports = 5
+ ILSpy.AddIn.Shared\ILSpy.AddIn.Shared.projitems*{a1b6b501-15d4-4237-a4c3-5efcb71b0f74}*SharedItemsImports = 5
+ ILSpy.AddIn.Shared\ILSpy.AddIn.Shared.projitems*{acab1e5d-b3df-4092-aa72-692f8341e520}*SharedItemsImports = 13
+ EndGlobalSection
+EndGlobal
diff --git a/ILSpy.sln b/ILSpy.sln
index 369386289..692222f9a 100644
--- a/ILSpy.sln
+++ b/ILSpy.sln
@@ -24,8 +24,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ILSpy.BamlDecompiler", "ILS
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}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ILSpy.Tests", "ILSpy.Tests\ILSpy.Tests.csproj", "{B51C6636-B8D1-4200-9869-08F2689DE6C2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ILSpy.ReadyToRun", "ILSpy.ReadyToRun\ILSpy.ReadyToRun.csproj", "{0313F581-C63B-43BB-AA9B-07615DABD8A3}"
@@ -34,10 +32,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ICSharpCode.ILSpyCmd", "ICS
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ICSharpCode.Decompiler.PowerShell", "ICSharpCode.Decompiler.PowerShell\ICSharpCode.Decompiler.PowerShell.csproj", "{50060E0C-FA25-41F4-B72F-8490324EC9F0}"
EndProject
-Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ILSpy.AddIn.Shared", "ILSpy.AddIn.Shared\ILSpy.AddIn.Shared.shproj", "{ACAB1E5D-B3DF-4092-AA72-692F8341E520}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ILSpy.AddIn.VS2022", "ILSpy.AddIn.VS2022\ILSpy.AddIn.VS2022.csproj", "{09A03980-D14A-4705-A38C-741AD7166DEE}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ICSharpCode.Decompiler.TestRunner", "ICSharpCode.Decompiler.TestRunner\ICSharpCode.Decompiler.TestRunner.csproj", "{4FBB470F-69EB-4C8B-8961-8B4DF4EBB999}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ICSharpCode.ILSpyX", "ICSharpCode.ILSpyX\ICSharpCode.ILSpyX.csproj", "{F8EFCF9D-B9A3-4BA0-A1B2-B026A71DAC22}"
@@ -76,10 +70,6 @@ Global
{1169E6D1-1899-43D4-A500-07CE4235B388}.Debug|Any CPU.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
- {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}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9D7BE6C0-B7B3-4A50-A54E-18A2D84A3384}.Release|Any CPU.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}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -96,10 +86,6 @@ Global
{50060E0C-FA25-41F4-B72F-8490324EC9F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{50060E0C-FA25-41F4-B72F-8490324EC9F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{50060E0C-FA25-41F4-B72F-8490324EC9F0}.Release|Any CPU.Build.0 = Release|Any CPU
- {09A03980-D14A-4705-A38C-741AD7166DEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {09A03980-D14A-4705-A38C-741AD7166DEE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {09A03980-D14A-4705-A38C-741AD7166DEE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {09A03980-D14A-4705-A38C-741AD7166DEE}.Release|Any CPU.Build.0 = Release|Any CPU
{4FBB470F-69EB-4C8B-8961-8B4DF4EBB999}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4FBB470F-69EB-4C8B-8961-8B4DF4EBB999}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4FBB470F-69EB-4C8B-8961-8B4DF4EBB999}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -115,9 +101,4 @@ Global
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C764218F-7633-4412-923D-558CE7EE0560}
EndGlobalSection
- GlobalSection(SharedMSBuildProjectFiles) = preSolution
- ILSpy.AddIn.Shared\ILSpy.AddIn.Shared.projitems*{09a03980-d14a-4705-a38c-741ad7166dee}*SharedItemsImports = 5
- ILSpy.AddIn.Shared\ILSpy.AddIn.Shared.projitems*{9d7be6c0-b7b3-4a50-a54e-18a2d84a3384}*SharedItemsImports = 5
- ILSpy.AddIn.Shared\ILSpy.AddIn.Shared.projitems*{acab1e5d-b3df-4092-aa72-692f8341e520}*SharedItemsImports = 13
- EndGlobalSection
EndGlobal