Git Product home page Git Product logo

avaloniailspy's People

Contributors

aarondewes avatar agametov avatar austinwise avatar christophwille avatar danwalmsley avatar emilytrau avatar frankli0324 avatar gatocreador887 avatar imonz avatar jeffreye avatar jp2masa avatar kant2002 avatar necklaces avatar rybak avatar sable-starflower avatar windows10ce avatar zaphodef avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

avaloniailspy's Issues

Upgrade Avalonia

Hi and thank you for all your hard work on this project!
I'm getting a NullReferenceException running ILSpy on NixOS.
This is a well-known issue that has affected e.g. zkSNACKs/WalletWasabi#2856 .
Avalonia has already been patched to fix this bug in 0.9.2 ( AvaloniaUI/Avalonia#3453 ).
Now all that remains to do in this project is updating Avalonia. It seems that this is actually defined in AvaloniaEdit? ( https://github.com/jeffreye/AvaloniaEdit/blob/AvaloniaILSpy/build.cake#L158 ) so currently 0.9.0-preview1 .
I noticed this project uses a fork of AvaloniaEdit? No idea about that tbh. Possibly related to #31
I've also filed an issue on the original AvaloniaEdit to upgrade AvaloniaUI/AvaloniaEdit#101

nuget config

Can you please update the nuget.conf file that make

<add key="nuget.org" value="https://www.nuget.org/api/v2/" />

to

<add key="nuget.org" value="https://www.nuget.org/api/v3/index.json" protocolVersion="3" />

Segmentation fault when opening a binary?

I compiled the project from source on Manjaro 64-Bit.
After successfully building the project I tried running the Ubuntu and the Debian build, since there is no dedicated build for arch-distros. I was able to start the application and I saw the UI etc, however when clicking on "Open..." to load a binary the application crashes with a segmentation fault without any further information.
crash

Save Code not working for "C# Project"

When trying to save an assembly code with the option selected as "C# Project", ILSpy only exports a single file, insead of the supposed multiple individual C# files.

It seems, for some reason, AvaloniaILSpy mixes all the code together in a single file, probably, it's ignoring the "C# Project" option.

Loading assemblies on Mac doesn't work

// /Volumes/BOOTCAMP/Windows/Microsoft.NET/Framework/v2.0.50727/System.Security.dll
// PE file does not contain any managed metadata.

ICSharpCode.Decompiler.Metadata.PEFileNotSupportedException: PE file does not contain any managed metadata.
   at ICSharpCode.Decompiler.Metadata.PEFile..ctor(String fileName, PEReader reader)
   at ICSharpCode.Decompiler.Metadata.PEFile..ctor(String fileName, Stream stream, PEStreamOptions options)
   at ICSharpCode.ILSpy.LoadedAssembly.LoadAssembly(Object state)
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)

Toolbar Issues

Tested with c9191f3 on Windows

no1: The two checkboxes show with an "_" accelerator:

acc

no2: By default the selection in the dropdowns is Language C#, Version 8. When switching Language to IL, and then immediately back to C#, the Version dropdown no longer has anything selected.

Latest ICsharp.Decompiler

I tried building the app with the latest ICSharp.Decompiler from the main repo by adding:

<ProjectReference Include="../../ILSpy/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj" />

it seems that the prototype for two functions has changed (see diff)
in order to build with the latest code from master

diff --git a/ICSharpCode.Decompiler.PdbProvider.Cecil/ICSharpCode.Decompiler.PdbProvider.Cecil.csproj b/ICSharpCode.Decompiler.PdbProvider.Cecil/ICSharpCode.Decompiler.PdbProvider.Cecil.csproj
index 38197da..12e1ede 100644
--- a/ICSharpCode.Decompiler.PdbProvider.Cecil/ICSharpCode.Decompiler.PdbProvider.Cecil.csproj
+++ b/ICSharpCode.Decompiler.PdbProvider.Cecil/ICSharpCode.Decompiler.PdbProvider.Cecil.csproj
@@ -8,11 +8,15 @@
 
   <ItemGroup>
     <PackageReference Include="Mono.Cecil" Version="0.10.3" />
-    <PackageReference Include="ICSharpCode.Decompiler" Version="5.0.0.4850-preview2-debug" />
+    <!-- <PackageReference Include="ICSharpCode.Decompiler" Version="5.0.0.4850-preview2-debug" /> -->
     <PackageReference Include="System.IO.FileSystem.Primitives" Version="4.3.0" />
     <PackageReference Include="System.Runtime.Extensions" Version="4.3.0" />
     <PackageReference Include="System.Runtime.Handles" Version="4.3.0" />
     <PackageReference Include="System.Threading" Version="4.3.0" />
   </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="../../ILSpy/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj" />
+  </ItemGroup>
   
 </Project>
diff --git a/ILSpy.Core/ILSpy.Core.csproj b/ILSpy.Core/ILSpy.Core.csproj
index 649cf6b..f6a98b9 100644
--- a/ILSpy.Core/ILSpy.Core.csproj
+++ b/ILSpy.Core/ILSpy.Core.csproj
@@ -29,7 +29,7 @@
   <ItemGroup>
     <PackageReference Include="Avalonia" Version="$(AvaloniaVersion)" />
     <PackageReference Include="Avalonia.Controls.DataGrid" Version="$(AvaloniaVersion)" />
-    <PackageReference Include="ICSharpCode.Decompiler" Version="5.0.2.5153" />
+    <!-- <PackageReference Include="ICSharpCode.Decompiler" Version="5.0.2.5153" /> -->
     <PackageReference Include="Microsoft.DiaSymReader" Version="1.3.0" />
     <PackageReference Include="Microsoft.DiaSymReader.Converter.Xml" Version="1.1.0-beta1-63314-01" />
     <PackageReference Include="Microsoft.VisualStudio.Composition" Version="16.4.11" />
@@ -60,6 +60,7 @@
   </ItemGroup>
 
   <ItemGroup>
+    <ProjectReference Include="../../ILSpy/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj" />
     <ProjectReference Include="..\SharpTreeView\SharpTreeView.csproj" />
     <ProjectReference Include="..\AvaloniaEdit\src\AvaloniaEdit\AvaloniaEdit.csproj" />
     <ProjectReference Include="..\ICSharpCode.Decompiler.PdbProvider.Cecil\ICSharpCode.Decompiler.PdbProvider.Cecil.csproj" />
diff --git a/ILSpy.Core/Languages/CSharpHighlightingTokenWriter.cs b/ILSpy.Core/Languages/CSharpHighlightingTokenWriter.cs
index c98ed1b..2d32b94 100644
--- a/ILSpy.Core/Languages/CSharpHighlightingTokenWriter.cs
+++ b/ILSpy.Core/Languages/CSharpHighlightingTokenWriter.cs
@@ -378,7 +378,10 @@ namespace ICSharpCode.ILSpy
 			}
 		}
 
-		public override void WritePrimitiveValue(object value, string literalValue = null)
+		public override void WritePrimitiveValue(
+			object value, 
+			ICSharpCode.Decompiler.CSharp.Syntax.LiteralFormat format = ICSharpCode.Decompiler.CSharp.Syntax.LiteralFormat.None
+        )
 		{
 			HighlightingColor color = null;
 			if (value is null) {
@@ -390,7 +393,7 @@ namespace ICSharpCode.ILSpy
 			if (color != null) {
 				textOutput.BeginSpan(color);
 			}
-			base.WritePrimitiveValue(value, literalValue);
+			base.WritePrimitiveValue(value, format);
 			if (color != null) {
 				textOutput.EndSpan();
 			}
diff --git a/ILSpy.Core/TextView/AvaloniaEditTextOutput.cs b/ILSpy.Core/TextView/AvaloniaEditTextOutput.cs
index 6ff41d8..d349e2d 100644
--- a/ILSpy.Core/TextView/AvaloniaEditTextOutput.cs
+++ b/ILSpy.Core/TextView/AvaloniaEditTextOutput.cs
@@ -232,7 +232,7 @@ namespace ICSharpCode.ILSpy.TextView
             references.Add(new ReferenceSegment { StartOffset = start, EndOffset = end, Reference = opCode });
 		}
 
-		public void WriteReference(PEFile module, EntityHandle handle, string text, bool isDefinition = false)
+		public void WriteReference(PEFile module, Handle handle, string text, string protocol = "decompile", bool isDefinition = false)
 		{
 			WriteIndent();
 			int start = this.TextLength;
diff --git a/nuget.config b/nuget.config
index 5d9f87c..8096b45 100644
--- a/nuget.config
+++ b/nuget.config
@@ -4,7 +4,7 @@
     <clear/>
     <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
     <add key="AvaloniaCI" value="https://www.myget.org/F/avalonia-ci/api/v2" />
-    <add key="ilspy" value="https://ci.appveyor.com/nuget/ilspy-masterfeed" />
+    <!-- <add key="ilspy" value="https://ci.appveyor.com/nuget/ilspy-masterfeed" /> -->
     <add key="DotNet MyGet" value="https://dotnet.myget.org/F/symreader-converter/api/v3/index.json" />
   </packageSources>
 </configuration>

Cannot run release on Mac

It seems that the compressor you are using is removing the executable flag from the Mac binary. This makes the .app impossible to run.

Also, it doesn't seem like you are signing the package. Catalina+ versions of macOS quarantine your .app because of this.

There are three different solutions to this:

  1. Release as a .pkg so the app gets compressed correctly and it doesn't get quarantined.
  2. Start signing the package and have it notarized.
  3. Distribute on the Mac App Store

For those reading, here is how to fix the quarantine:

xattr -rd com.apple.quarantine /Applications/ILSpy.app

Here is how to fix the missing flag:

chmod +x /Applications/ILSpy.app/Contents/MacOS/ILSpy

And here is how to re-sign the app:

codesign --force --deep --sign - /Applications/ILSpy.app

ILSpy running without showing GUI in tiling wm environment

System:
OS: Arch Linux x64
Kernel: 5.5.8-arch1-1
Window Manager: bspwm

Summary:
Compiling AvaloniaILSpy and running it results in not showing the GUI. No error is thrown.

Steps to reproduce:

  1. Install Arch Linux with bspwm as window manager
  2. Download the source code of AvaloniaILSpy from GitHub
  3. Run the build.sh script to compile the project.
  4. Start the generated x64 linux binary, and observe the process running without showing a GUI.

Notes:
I am not entirely sure if this problem is actually occurring because the system is using a tiling window manager.
But since the same procedure works just fine on other linux systems that use e.g. Gnome or KDE, I am assuming it is related to the window manager.

Crashes at "open file" dialog related to escaped chars in media paths (?)

ILSpy version: 5.0.2.1.rc
OS: KDE + Linux 5.8.0-7630-generic #32~1609193707~20.10~781bb80-Ubuntu SMP Tue Jan 5 21:29:56 UTC 2 x86_64 x86_64 x86_64 GNU/Linux (PopOS / Ubuntu 20.10)
KDE version: Qt: 5.14.2 KDE Frameworks: 5.74.0 kf5-config: 1.0

When I open ILSpy and click the "open" menu item, it crashes with System.IO.DirectoryNotFoundException: Could not find a part of the path '/media/nate/Seagate\040Expansion\040Drive'.

I think I opened a file at that path some time ago, or maybe it comes from KDE "recent files". Anyway, the path is now missing because the drive was unmounted.

  • Re-mount the drive at /media/nate/Seagate Expansion Drive -- Still crashes
  • Create a path which never existed /media/nate/Seagate\040Expansion\040Drive, AKA mkdir -p /media/nate/Seagate\\040Expansion\\040Drive -- It works

Actually the bad path is related to media/drive names, it works fine with space-containing paths on /. And the file picker click-to-navigate to external media with spaces in the name goes to the wrong destination

Screenshot_20210202_160325

trace

Tmds.DBus.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name com.canonical.AppMenu.Registrar was not provided by any .service files
   at Tmds.DBus.DBusConnection.CallMethodAsync(Message msg, Boolean checkConnected, Boolean checkReplyType)
   at Tmds.DBus.Connection.CallMethodAsync(Message message)
   at Tmds.DBus.CodeGen.DBusObjectProxy.SendMethodReturnReaderAsync(String iface, String member, Nullable`1 inSignature, MessageWriter writer)
   at Avalonia.FreeDesktop.DBusMenuExporter.DBusMenuExporterImpl.Init()
Tmds.DBus.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name com.canonical.AppMenu.Registrar was not provided by any .service files
   at Tmds.DBus.DBusConnection.CallMethodAsync(Message msg, Boolean checkConnected, Boolean checkReplyType)
   at Tmds.DBus.Connection.CallMethodAsync(Message message)
   at Tmds.DBus.CodeGen.DBusObjectProxy.SendMethodReturnReaderAsync(String iface, String member, Nullable`1 inSignature, MessageWriter writer)
   at Avalonia.FreeDesktop.DBusMenuExporter.DBusMenuExporterImpl.Init()
Sorry, we crashed
System.IO.DirectoryNotFoundException: Could not find a part of the path '/media/nate/Seagate\040Expansion\040Drive'.
   at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path, Boolean ignoreNotFound)
   at System.IO.Enumeration.FileSystemEnumerator`1.Init()
   at System.IO.Enumeration.FileSystemEnumerator`1..ctor(String directory, Boolean isNormalized, EnumerationOptions options)
   at System.IO.Enumeration.FileSystemEnumerable`1..ctor(String directory, FindTransform transform, EnumerationOptions options, Boolean isNormalized)
   at System.IO.Enumeration.FileSystemEnumerableFactory.UserFiles(String directory, String expression, EnumerationOptions options)
   at System.IO.Directory.InternalEnumeratePaths(String path, String searchPattern, SearchTarget searchTarget, EnumerationOptions options)
   at System.IO.Directory.GetFiles(String path)
   at Avalonia.Dialogs.ManagedFileChooserSources.<>c.<DefaultGetFileSystemRoots>b__17_0(MountedVolumeInfo x)
   at System.Linq.Enumerable.SelectIListIterator`2.MoveNext()
   at System.Linq.Enumerable.WhereEnumerableIterator`1.ToArray()
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at Avalonia.Dialogs.ManagedFileChooserSources.DefaultGetFileSystemRoots()
   at Avalonia.Dialogs.ManagedFileChooserSources.DefaultGetAllItems(ManagedFileChooserSources sources)
   at Avalonia.Dialogs.ManagedFileChooserSources.GetAllItems()
   at Avalonia.Dialogs.ManagedFileChooserViewModel.RefreshQuickLinks(ManagedFileChooserSources quickSources)
   at Avalonia.Dialogs.ManagedFileChooserViewModel..ctor(FileSystemDialog dialog)
   at Avalonia.Dialogs.ManagedFileDialogExtensions.ManagedSystemDialogImpl`1.Show(SystemDialog d, IWindowImpl parent)
   at Avalonia.Dialogs.ManagedFileDialogExtensions.ManagedSystemDialogImpl`1.ShowFileDialogAsync(FileDialog dialog, IWindowImpl parent)
   at ICSharpCode.ILSpy.MainWindow.OpenCommandExecuted(Object sender, ExecutedRoutedEventArgs e) in /Users/jeffreye/Documents/Projects/AvaloniaILSpy/ILSpy.Core/MainWindow.xaml.cs:line 1105
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__139_0(Object state)
   at Avalonia.Threading.AvaloniaSynchronizationContext.<>c__DisplayClass5_0.<Post>b__0()
   at Avalonia.Threading.JobRunner.RunJobs(Nullable`1 priority)
   at Avalonia.X11.X11Window.<ScheduleInput>b__97_0()
   at Avalonia.Threading.JobRunner.RunJobs(Nullable`1 priority)
   at Avalonia.X11.X11PlatformThreading.HandleX11(CancellationToken cancellationToken)
   at Avalonia.X11.X11PlatformThreading.RunLoop(CancellationToken cancellationToken)
   at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken cancellationToken)
   at Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetime.Start(String[] args)
   at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime[T](T builder, String[] args, ShutdownMode shutdownMode)
   at ICSharpCode.ILSpy.Program.Main(String[] args) in /Users/jeffreye/Documents/Projects/AvaloniaILSpy/ILSpy/Program.cs:line 23

Big Sur quarantine workaround

Hi there! I just downloaded the latest version on Big Sur and I had to run a terminal command to get ILSpy working. I'm not sure if this is because I copied it to the Applications folder, but I saw a dialog saying

Please contact your network administrator```

The workaround is fairly simple. I just ran the following command in the terminal:

`chmod +x /Applications/ILSpy.app/Contents/MacOS/ILSpy`

Is it possible to do this in the release itself, or is OS X removing the execution flag because I downloaded it?

Feature request: persist previous location in a file when using the "back" feature

I frequently use the "Back" feature when scanning through code; but this always returns me to the top of a file.

Having the current position of a file I am reading recorded (or the origin position of a "jump" when a "link" is clicked - for example double clicking a class name or a method) would be very useful, since pressing "Back" would return me to my previous position instead of the top of the file.

Broken Build

So I have ran the build as instructed:

  1. git clone --recurse-submodules https://github.com/icsharpcode/AvaloniaILSpy.git
  2. ./build.sh

And build fails with the following error:

/usr/share/dotnet/sdk/5.0.102/NuGet.targets(131,5): error : Unable to load the service index for source https://dotnet.myget.org/F/symreader-converter/api/v3/index.json. [/home/andre/AvaloniaILSpy/ILSpy/ILSpy.csproj]
/usr/share/dotnet/sdk/5.0.102/NuGet.targets(131,5): error :   Response status code does not indicate success: 404 (Feed does not exist.). [/home/andre/AvaloniaILSpy/ILSpy/ILSpy.csproj]
An error occurred when executing task 'Restore-NetCore'.
Error: One or more errors occurred. (.NET Core CLI: Process returned an error (exit code 1).)
        .NET Core CLI: Process returned an error (exit code 1).

So I checked https://dotnet.myget.org/F/symreader-converter/api/v3/index.json and it really doesn't exist. So apparently the feeds have expired. Anyone knows how to fix this?

add ARM64

Please add an arm64 build for linux and macOS

Update to Avalonia 0.10

0.10.0-rc1 has been recently released (including a new AvaloniaEdit NuGet matching this rc1). Updating to this rc would be a nice stepping stone to move to 0.10 when available.

Cannot open assembly with space in path (MacOS)

On MacOS: When attempting to open an assembly that contains a space character anywhere in its file path, the application throws a FileNotFoundException

System.IO.FileNotFoundException: Assembly file not found

Note that the path shown in ILSpy contains space characters escaped as "%20", that could be the reason.

Once the same assembly is moved to a path without spaces it loads correctly.

cant run on linux

if i try to run it on linux i just get "Segmentation fault (core dumped)" is there a dependency im missing

Build.sh fails

With error:
An error occurred when executing task 'Restore-NetCore'.
Error: One or more errors occurred. (.NET Core CLI: Could not locate executable.)
.NET Core CLI: Could not locate executable.

On linux: Linux parrot 5.9.0-2parrot1-amd64 #1 SMP Debian 5.9.6-2parrot1 (2020-11-17) x86_64 GNU/Linux

Update to Avalonia 0.9.1?

In order to fix #9 I need to be able to build AvaloniaILSpy on Arch, but because of AvaloniaUI/Avalonia#3385, of which the resolution is to update to Avalonia 0.9.1, I'm unable to make a working build..

Therefore, I kindly ask if you would like to update AvaloniaILSpy to use 0.9.1? (if you have the time)

Doesn't launch on ubuntu 19.04

when launching the application on ubuntu 19.04 with the command ./ILSpy I get the following error:

Sorry, we crashed
System.TypeInitializationException: The type initializer for 'AvaloniaEdit.Editing.TextArea' threw an exception. ---> System.TypeInitializationException: The type initializer for 'AvaloniaEdit.Rendering.TextView' threw an exception. ---> System.MissingMethodException: Method not found: 'Void Avalonia.Media.Pen..ctor(Avalonia.Media.IBrush, Double, Avalonia.Media.DashStyle, Avalonia.Media.PenLineCap, Avalonia.Media.PenLineCap, Avalonia.Media.PenLineCap, Avalonia.Media.PenLineJoin, Double)'.
   at AvaloniaEdit.Rendering.TextView.CreateFrozenPen(IBrush brush)
   at AvaloniaEdit.Rendering.TextView..cctor() in C:\projects\avaloniailspy\AvaloniaEdit\src\AvaloniaEdit\Rendering\TextView.cs:line 1975
   --- End of inner exception stack trace ---
   at AvaloniaEdit.Editing.TextArea..cctor() in C:\projects\avaloniailspy\AvaloniaEdit\src\AvaloniaEdit\Editing\TextArea.cs:line 240
   --- End of inner exception stack trace ---
   at Builder_94a58311b2f94d19bdf7d278457ed242_resm:AvaloniaEdit.Editing.TextArea.xaml?assembly=AvaloniaEdit.__AvaloniaXamlIlPopulate(IServiceProvider , Styles )
   at lambda_method(Closure , IServiceProvider )
   at Avalonia.Markup.Xaml.XamlIl.AvaloniaXamlIlRuntimeCompiler.LoadOrPopulate(Type created, Object rootInstance)
   at Avalonia.Markup.Xaml.XamlIl.AvaloniaXamlIlRuntimeCompiler.LoadSreCore(String xaml, Assembly localAssembly, Object rootInstance, Uri uri, Boolean isDesignMode)
   at Avalonia.Markup.Xaml.XamlIl.AvaloniaXamlIlRuntimeCompiler.LoadSre(String xaml, Assembly localAssembly, Object rootInstance, Uri uri, Boolean isDesignMode)
   at Avalonia.Markup.Xaml.XamlIl.AvaloniaXamlIlRuntimeCompiler.Load(Stream stream, Assembly localAssembly, Object rootInstance, Uri uri, Boolean isDesignMode)
   at Avalonia.Markup.Xaml.AvaloniaXamlLoader.Load(Stream stream, Assembly localAssembly, Object rootInstance, Uri uri)
   at Avalonia.Markup.Xaml.AvaloniaXamlLoader.Load(Uri uri, Uri baseUri)
   at Avalonia.Markup.Xaml.Styling.StyleInclude.get_Loaded()
   at Avalonia.Markup.Xaml.Styling.StyleInclude.Avalonia.Styling.ISetStyleParent.NotifyResourcesChanged(ResourcesChangedEventArgs e)
   at Avalonia.Styling.Styles.<.ctor>b__4_0(IStyle x)
   at Avalonia.Collections.AvaloniaListExtensions.<>c__DisplayClass0_0`1.<ForEachItem>b__0(Int32 _, T i)
   at Avalonia.Collections.AvaloniaListExtensions.<>c__DisplayClass1_0`1.<ForEachItem>g__Add|0(Int32 index, IList items)
   at Avalonia.Collections.AvaloniaListExtensions.<>c__DisplayClass1_0`1.<ForEachItem>b__2(Object _, NotifyCollectionChangedEventArgs e)
   at Avalonia.Collections.AvaloniaList`1.NotifyAdd(T item, Int32 index)
   at Avalonia.Collections.AvaloniaList`1.Add(T item)
   at Builder_2973e465171c48e996823b30d8fcba98_resm:AvaloniaEdit.AvaloniaEdit.xaml?assembly=AvaloniaEdit.__AvaloniaXamlIlPopulate(IServiceProvider , Styles )
   at lambda_method(Closure , IServiceProvider )
   at Avalonia.Markup.Xaml.XamlIl.AvaloniaXamlIlRuntimeCompiler.LoadOrPopulate(Type created, Object rootInstance)
   at Avalonia.Markup.Xaml.XamlIl.AvaloniaXamlIlRuntimeCompiler.LoadSreCore(String xaml, Assembly localAssembly, Object rootInstance, Uri uri, Boolean isDesignMode)
   at Avalonia.Markup.Xaml.XamlIl.AvaloniaXamlIlRuntimeCompiler.LoadSre(String xaml, Assembly localAssembly, Object rootInstance, Uri uri, Boolean isDesignMode)
   at Avalonia.Markup.Xaml.XamlIl.AvaloniaXamlIlRuntimeCompiler.Load(Stream stream, Assembly localAssembly, Object rootInstance, Uri uri, Boolean isDesignMode)
   at Avalonia.Markup.Xaml.AvaloniaXamlLoader.Load(Stream stream, Assembly localAssembly, Object rootInstance, Uri uri)
   at Avalonia.Markup.Xaml.AvaloniaXamlLoader.Load(Uri uri, Uri baseUri)
   at Avalonia.Markup.Xaml.Styling.StyleInclude.get_Loaded()
   at Avalonia.Markup.Xaml.Styling.StyleInclude.Avalonia.Styling.ISetStyleParent.NotifyResourcesChanged(ResourcesChangedEventArgs e)
   at Avalonia.Styling.Styles.<.ctor>b__4_0(IStyle x)
   at Avalonia.Collections.AvaloniaListExtensions.<>c__DisplayClass0_0`1.<ForEachItem>b__0(Int32 _, T i)
   at Avalonia.Collections.AvaloniaListExtensions.<>c__DisplayClass1_0`1.<ForEachItem>g__Add|0(Int32 index, IList items)
   at Avalonia.Collections.AvaloniaListExtensions.<>c__DisplayClass1_0`1.<ForEachItem>b__2(Object _, NotifyCollectionChangedEventArgs e)
   at Avalonia.Collections.AvaloniaList`1.NotifyAdd(T item, Int32 index)
   at Avalonia.Collections.AvaloniaList`1.Add(T item)
   at Avalonia.Styling.Styles.Add(IStyle item)
   at ICSharpCode.ILSpy.App.!XamlIlPopulate(IServiceProvider , App )
   at ICSharpCode.ILSpy.App.!XamlIlPopulateTrampoline(App )
   at ICSharpCode.ILSpy.App.Initialize()
   at Avalonia.Controls.AppBuilderBase`1.Setup()
   at Avalonia.Controls.AppBuilderBase`1.SetupWithoutStarting()
   at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime[T](T builder, String[] args, ShutdownMode shutdownMode)
   at ICSharpCode.ILSpy.Program.Main(String[] args)

Homebrew based install

Hi there, I've added a PR to homebrew cask here
Homebrew/homebrew-cask#104173

The audit currently fails to pass

audit for ilspy: failed
 - GitHub fork (not canonical repository)
 - v5.0-rc2 is a GitHub pre-release.

As #62 mentions, a new release is probably a good idea.
Will it be possible to add this release as an actual release and not a pre-release and remove the deprecated repo?
Once this is done I'll be sure to update the cask PR

chmod +x ./ILSpy

Please make the file ./ILSpy in Linux builds executable in the release archieve

"Images" directory casing on unix-like systems leaves some icons unfound

Summary:
The artifacts produced by build.sh contain a directory called Images, but AvaloniaILSpy sometimes references the directory images instead. This is a problem on operating systems such as Linux, where file paths are case sensitive.

How to reproduce:

  • Use any Linux operating system (I tested it on Manjaro x64)
  • Use build.sh to build AvaloniaILSpy.
  • Navigate to artifacts/linux_x64 and run ./ILSpy.
  • Open any binary and e.g. right click on a type in the assembly explorer tree view.
  • Observe AvaloniaILSpy crashing with the following the error in the terminal:
Sorry, we crashed
System.IO.DirectoryNotFoundException: Could not find a part of the path '/home/washi/Documents/Programming/AvaloniaILSpy/artifacts/linux-x64/images/SearchMsdn.png'.

Full log:
https://pastebin.com/z5L1gUpW

Crash when clicking on opening

The distro I'm using is Arch Linux
Reverting d158089 fixes it for me.
Log is

Tmds.DBus.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name com.canonical.AppMenu.Registrar was not provided by any .service files
   at Tmds.DBus.DBusConnection.CallMethodAsync(Message msg, Boolean checkConnected, Boolean checkReplyType)
   at Tmds.DBus.Connection.CallMethodAsync(Message message)
   at Tmds.DBus.CodeGen.DBusObjectProxy.SendMethodReturnReaderAsync(String iface, String member, Nullable`1 inSignature, MessageWriter writer)
   at Avalonia.FreeDesktop.DBusMenuExporter.DBusMenuExporterImpl.Init() in /_/src/Avalonia.FreeDesktop/DBusMenuExporter.cs:line 59
Tmds.DBus.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name com.canonical.AppMenu.Registrar was not provided by any .service files
   at Tmds.DBus.DBusConnection.CallMethodAsync(Message msg, Boolean checkConnected, Boolean checkReplyType)
   at Tmds.DBus.Connection.CallMethodAsync(Message message)
   at Tmds.DBus.CodeGen.DBusObjectProxy.SendMethodReturnReaderAsync(String iface, String member, Nullable`1 inSignature, MessageWriter writer)
   at Avalonia.FreeDesktop.DBusMenuExporter.DBusMenuExporterImpl.Init() in /_/src/Avalonia.FreeDesktop/DBusMenuExporter.cs:line 59
Tmds.DBus.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name com.canonical.AppMenu.Registrar was not provided by any .service files
   at Tmds.DBus.DBusConnection.CallMethodAsync(Message msg, Boolean checkConnected, Boolean checkReplyType)
   at Tmds.DBus.Connection.CallMethodAsync(Message message)
   at Tmds.DBus.CodeGen.DBusObjectProxy.SendMethodReturnReaderAsync(String iface, String member, Nullable`1 inSignature, MessageWriter writer)
   at Avalonia.FreeDesktop.DBusMenuExporter.DBusMenuExporterImpl.Init() in /_/src/Avalonia.FreeDesktop/DBusMenuExporter.cs:line 59
Sorry, we crashed
System.ArgumentNullException: String reference not set to an instance of a String. (Parameter 's')
   at System.Text.Encoding.GetBytes(String s)
   at Avalonia.X11.X11Window.SetTitle(String title) in /_/src/Avalonia.X11/X11Window.cs:line 1002
   at Avalonia.Controls.Window.<>c.<.cctor>b__26_0(Window s, AvaloniaPropertyChangedEventArgs e) in /_/src/Avalonia.Controls/Window.cs:line 199
   at Avalonia.AvaloniaObjectExtensions.<>c__DisplayClass23_0`1.<AddClassHandler>b__0(AvaloniaPropertyChangedEventArgs e) in /_/src/Avalonia.Base/AvaloniaObjectExtensions.cs:line 585
   at System.Reactive.Subjects.Subject`1.OnNext(T value) in /_/Rx.NET/Source/src/System.Reactive/Subjects/Subject.cs:line 147
   at Avalonia.AvaloniaObject.RaisePropertyChanged[T](AvaloniaPropertyChangedEventArgs`1 change) in /_/src/Avalonia.Base/AvaloniaObject.cs:line 720
   at Avalonia.AvaloniaObject.Avalonia.PropertyStore.IValueSink.ValueChanged[T](AvaloniaPropertyChangedEventArgs`1 change) in /_/src/Avalonia.Base/AvaloniaObject.cs:line 493
   at Avalonia.ValueStore.SetValue[T](StyledPropertyBase`1 property, T value, BindingPriority priority) in /_/src/Avalonia.Base/ValueStore.cs:line 103
   at Avalonia.AvaloniaObject.SetValue[T](StyledPropertyBase`1 property, T value, BindingPriority priority) in /_/src/Avalonia.Base/AvaloniaObject.cs:line 352
   at Avalonia.Controls.Window.set_Title(String value) in /_/src/Avalonia.Controls/Window.cs:line 276
   at Avalonia.Dialogs.ManagedFileDialogExtensions.ManagedSystemDialogImpl`1.Show(SystemDialog d, Window parent, ManagedFileDialogOptions options) in /_/src/Avalonia.Dialogs/ManagedFileDialogExtensions.cs:line 17
   at Avalonia.Dialogs.ManagedFileDialogExtensions.ManagedSystemDialogImpl`1.ShowFileDialogAsync(FileDialog dialog, Window parent) in /_/src/Avalonia.Dialogs/ManagedFileDialogExtensions.cs:line 42
   at ICSharpCode.ILSpy.MainWindow.OpenCommandExecuted(Object sender, ExecutedRoutedEventArgs e) in /mnt/void/home/archdata/cose/AvaloniaILSpy/ILSpy.Core/MainWindow.xaml.cs:line 1105
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__139_0(Object state)
   at Avalonia.Threading.AvaloniaSynchronizationContext.<>c__DisplayClass5_0.<Post>b__0() in /_/src/Avalonia.Base/Threading/AvaloniaSynchronizationContext.cs:line 33
   at Avalonia.Threading.JobRunner.RunJobs(Nullable`1 priority) in /_/src/Avalonia.Base/Threading/JobRunner.cs:line 37
   at Avalonia.X11.X11PlatformThreading.HandleX11(CancellationToken cancellationToken)
   at Avalonia.X11.X11PlatformThreading.RunLoop(CancellationToken cancellationToken) in /_/src/Avalonia.X11/X11PlatformThreading.cs:line 245
   at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken cancellationToken) in /_/src/Avalonia.Base/Threading/Dispatcher.cs:line 62
   at Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetime.Start(String[] args) in /_/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs:line 108
   at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime[T](T builder, String[] args, ShutdownMode shutdownMode) in /_/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs:line 134
   at ICSharpCode.ILSpy.Program.Main(String[] args) in /mnt/void/home/archdata/cose/AvaloniaILSpy/ILSpy/Program.cs:line 22

Program crashes when using the open button

Can't figure out what's going on - running from the terminal I get this:

$ ./ILSpy 
Tmds.DBus.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name com.canonical.AppMenu.Registrar was not provided by any .service files
   at Tmds.DBus.DBusConnection.CallMethodAsync(Message msg, Boolean checkConnected, Boolean checkReplyType)
   at Tmds.DBus.Connection.CallMethodAsync(Message message)
   at Tmds.DBus.CodeGen.DBusObjectProxy.SendMethodReturnReaderAsync(String iface, String member, Nullable`1 inSignature, MessageWriter writer)
   at Avalonia.FreeDesktop.DBusMenuExporter.DBusMenuExporterImpl.Init() in /_/src/Avalonia.FreeDesktop/DBusMenuExporter.cs:line 59
Tmds.DBus.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name com.canonical.AppMenu.Registrar was not provided by any .service files
   at Tmds.DBus.DBusConnection.CallMethodAsync(Message msg, Boolean checkConnected, Boolean checkReplyType)
   at Tmds.DBus.Connection.CallMethodAsync(Message message)
   at Tmds.DBus.CodeGen.DBusObjectProxy.SendMethodReturnReaderAsync(String iface, String member, Nullable`1 inSignature, MessageWriter writer)
   at Avalonia.FreeDesktop.DBusMenuExporter.DBusMenuExporterImpl.Init() in /_/src/Avalonia.FreeDesktop/DBusMenuExporter.cs:line 59
Tmds.DBus.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name com.canonical.AppMenu.Registrar was not provided by any .service files
   at Tmds.DBus.DBusConnection.CallMethodAsync(Message msg, Boolean checkConnected, Boolean checkReplyType)
   at Tmds.DBus.Connection.CallMethodAsync(Message message)
   at Tmds.DBus.CodeGen.DBusObjectProxy.SendMethodReturnReaderAsync(String iface, String member, Nullable`1 inSignature, MessageWriter writer)
   at Avalonia.FreeDesktop.DBusMenuExporter.DBusMenuExporterImpl.Init() in /_/src/Avalonia.FreeDesktop/DBusMenuExporter.cs:line 59
Sorry, we crashed
System.ArgumentNullException: String reference not set to an instance of a String. (Parameter 's')
   at System.Text.Encoding.GetBytes(String s)
   at Avalonia.X11.X11Window.SetTitle(String title) in /_/src/Avalonia.X11/X11Window.cs:line 1000
   at Avalonia.Controls.Window.<>c.<.cctor>b__26_0(Window s, AvaloniaPropertyChangedEventArgs e) in /_/src/Avalonia.Controls/Window.cs:line 196
   at Avalonia.AvaloniaObjectExtensions.<>c__DisplayClass23_0`1.<AddClassHandler>b__0(AvaloniaPropertyChangedEventArgs e) in /_/src/Avalonia.Base/AvaloniaObjectExtensions.cs:line 585
   at System.Reactive.Subjects.Subject`1.OnNext(T value) in /_/Rx.NET/Source/src/System.Reactive/Subjects/Subject.cs:line 147
   at Avalonia.AvaloniaObject.RaisePropertyChanged[T](AvaloniaPropertyChangedEventArgs`1 change) in /_/src/Avalonia.Base/AvaloniaObject.cs:line 758
   at Avalonia.AvaloniaObject.Avalonia.PropertyStore.IValueSink.ValueChanged[T](AvaloniaPropertyChangedEventArgs`1 change) in /_/src/Avalonia.Base/AvaloniaObject.cs:line 531
   at Avalonia.ValueStore.NotifyValueChanged[T](AvaloniaProperty`1 property, Optional`1 oldValue, BindingValue`1 newValue, BindingPriority priority) in /_/src/Avalonia.Base/ValueStore.cs:line 367
   at Avalonia.ValueStore.SetValue[T](StyledPropertyBase`1 property, T value, BindingPriority priority) in /_/src/Avalonia.Base/ValueStore.cs:line 123
   at Avalonia.AvaloniaObject.SetValue[T](StyledPropertyBase`1 property, T value, BindingPriority priority) in /_/src/Avalonia.Base/AvaloniaObject.cs:line 368
   at Avalonia.Controls.Window.set_Title(String value) in /_/src/Avalonia.Controls/Window.cs:line 273
   at Avalonia.Dialogs.ManagedFileDialogExtensions.ManagedSystemDialogImpl`1.Show(SystemDialog d, Window parent, ManagedFileDialogOptions options) in /_/src/Avalonia.Dialogs/ManagedFileDialogExtensions.cs:line 17
   at Avalonia.Dialogs.ManagedFileDialogExtensions.ManagedSystemDialogImpl`1.ShowFileDialogAsync(FileDialog dialog, Window parent) in /_/src/Avalonia.Dialogs/ManagedFileDialogExtensions.cs:line 42
   at ICSharpCode.ILSpy.MainWindow.OpenCommandExecuted(Object sender, ExecutedRoutedEventArgs e) in /home/runner/work/AvaloniaILSpy/AvaloniaILSpy/ILSpy.Core/MainWindow.xaml.cs:line 1105
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__139_0(Object state)
   at Avalonia.Threading.AvaloniaSynchronizationContext.<>c__DisplayClass5_0.<Post>b__0() in /_/src/Avalonia.Base/Threading/AvaloniaSynchronizationContext.cs:line 33
   at Avalonia.Threading.JobRunner.RunJobs(Nullable`1 priority) in /_/src/Avalonia.Base/Threading/JobRunner.cs:line 37
   at Avalonia.X11.X11PlatformThreading.HandleX11(CancellationToken cancellationToken)
   at Avalonia.X11.X11PlatformThreading.RunLoop(CancellationToken cancellationToken) in /_/src/Avalonia.X11/X11PlatformThreading.cs:line 245
   at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken cancellationToken) in /_/src/Avalonia.Base/Threading/Dispatcher.cs:line 62
   at Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetime.Start(String[] args) in /_/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs:line 117
   at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime[T](T builder, String[] args, ShutdownMode shutdownMode) in /_/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs:line 148
   at ICSharpCode.ILSpy.Program.Main(String[] args) in /home/runner/work/AvaloniaILSpy/AvaloniaILSpy/ILSpy/Program.cs:line 22

Tried running with sudo, did not help unfortunately. OS is Linux Mint 20.1 x86_64, Using Cinnamon DE.

ILSpy features support status

  • Resources String/Object Table
  • Tooltip and Cursor on DecompilerTextView
  • Context menu: Open folder window on Linux
  • Context menu: Open command line shell on Linux
  • Context menu: Open hyperlink
  • Update Checker (Download)
  • Caret Animations
  • Navigation History
  • Cross-platform Keyboard Shortcuts
  • Font options
  • Dark Mode
  • Global menu for macOS and Linux (Blocked by Global menu bar support )
  • Drag n Drop (partially blocked by avalonia.native implementation)
  • High DPI Icons
  • Text styles on macOS
  • Tab navigation and other keyboard stuff

ARM64 Support

So the time is passing and the Computers are evolving.
A lot of companies started with shifting on arm64.

So let's provide a build!

Windows

  • Adding arm64 to the compiler without any errors
  • Tested the functionality

Linux (Ubuntu)

  • Adding arm64 to the compiler without any errors
  • Tested the functionality
  • Transition to a Snap package (optional)

macOS
full arm64 support is coming with .NET 6
and instead of a separate arm64 build we have a Universal Binary that is combining both

  • Renamed osx -> macOS
  • Adding arm64 to the compiler without any errors #dotnet/runtime#43313
  • Tested the functionality
  • Combined both executables to a mach-o Universal Binary
  • Rework the build script to remove cake (optional)

Does not work on MacOS

Jochens-MBP:Downloads jkuehner$ /Users/jkuehner/Downloads/ILSpy.app/Contents/MacOS/ILSpy
Sorry, we crashed
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IO.DirectoryNotFoundException: Could not find a part of the path '/Users/jkuehner/Downloads/Themes'.
at System.IO.Enumeration.FileSystemEnumerator1.CreateDirectoryHandle(String path, Boolean ignoreNotFound) at System.IO.Enumeration.FileSystemEnumerator1..ctor(String directory, EnumerationOptions options)
at System.IO.Enumeration.FileSystemEnumerable1..ctor(String directory, FindTransform transform, EnumerationOptions options) at System.IO.Enumeration.FileSystemEnumerableFactory.UserFiles(String directory, String expression, EnumerationOptions options) at System.IO.Directory.InternalEnumeratePaths(String path, String searchPattern, SearchTarget searchTarget, EnumerationOptions options) at ICSharpCode.ILSpy.MainWindow.InitializeComponent() at ICSharpCode.ILSpy.MainWindow..ctor() --- End of inner exception stack trace --- at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean wrapExceptions, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor) at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean wrapExceptions, Boolean skipCheckThis, Boolean fillCache) at System.Activator.CreateInstance[T]() at Avalonia.Controls.AppBuilderBase1.Start[TMainWindow](Func`1 dataContextProvider)
at ICSharpCode.ILSpy.Program.Main(String[] args)

Unable to remove several assemblies in one click

Steps to reproduce:

  1. Select several assemblies in the right panel
  2. Right click on them

Actual behavior

A single assembly is selected under the cursor.

Expected behavior

Selected assemblies are still selected. It's possible to remove them.

Cannot open Files

Whenever I click on "Open". I get this error.

Tmds.DBus.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name com.canonical.AppMenu.Registrar was not provided by any .service files
   at Tmds.DBus.DBusConnection.CallMethodAsync(Message msg, Boolean checkConnected, Boolean checkReplyType)
   at Tmds.DBus.Connection.CallMethodAsync(Message message)
   at Tmds.DBus.CodeGen.DBusObjectProxy.SendMethodReturnReaderAsync(String iface, String member, Nullable`1 inSignature, MessageWriter writer)
   at Avalonia.FreeDesktop.DBusMenuExporter.DBusMenuExporterImpl.Init()
Tmds.DBus.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name com.canonical.AppMenu.Registrar was not provided by any .service files
   at Tmds.DBus.DBusConnection.CallMethodAsync(Message msg, Boolean checkConnected, Boolean checkReplyType)
   at Tmds.DBus.Connection.CallMethodAsync(Message message)
   at Tmds.DBus.CodeGen.DBusObjectProxy.SendMethodReturnReaderAsync(String iface, String member, Nullable`1 inSignature, MessageWriter writer)
   at Avalonia.FreeDesktop.DBusMenuExporter.DBusMenuExporterImpl.Init()
Tmds.DBus.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name com.canonical.AppMenu.Registrar was not provided by any .service files
   at Tmds.DBus.DBusConnection.CallMethodAsync(Message msg, Boolean checkConnected, Boolean checkReplyType)
   at Tmds.DBus.Connection.CallMethodAsync(Message message)
   at Tmds.DBus.CodeGen.DBusObjectProxy.SendMethodReturnReaderAsync(String iface, String member, Nullable`1 inSignature, MessageWriter writer)
   at Avalonia.FreeDesktop.DBusMenuExporter.DBusMenuExporterImpl.Init()
Sorry, we crashed
System.IO.IOException: Not a directory
   at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path, Boolean ignoreNotFound)
   at System.IO.Enumeration.FileSystemEnumerator`1.Init()
   at System.IO.Enumeration.FileSystemEnumerator`1..ctor(String directory, Boolean isNormalized, EnumerationOptions options)
   at System.IO.Enumeration.FileSystemEnumerable`1..ctor(String directory, FindTransform transform, EnumerationOptions options, Boolean isNormalized)
   at System.IO.Enumeration.FileSystemEnumerableFactory.UserFiles(String directory, String expression, EnumerationOptions options)
   at System.IO.Directory.InternalEnumeratePaths(String path, String searchPattern, SearchTarget searchTarget, EnumerationOptions options)
   at System.IO.Directory.GetFiles(String path)
   at Avalonia.Dialogs.ManagedFileChooserSources.<>c.<DefaultGetFileSystemRoots>b__17_0(MountedVolumeInfo x)
   at System.Linq.Enumerable.SelectIListIterator`2.MoveNext()
   at System.Linq.Enumerable.WhereEnumerableIterator`1.ToArray()
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at Avalonia.Dialogs.ManagedFileChooserSources.DefaultGetFileSystemRoots()
   at Avalonia.Dialogs.ManagedFileChooserSources.DefaultGetAllItems(ManagedFileChooserSources sources)
   at Avalonia.Dialogs.ManagedFileChooserSources.GetAllItems()
   at Avalonia.Dialogs.ManagedFileChooserViewModel.RefreshQuickLinks(ManagedFileChooserSources quickSources)
   at Avalonia.Dialogs.ManagedFileChooserViewModel..ctor(FileSystemDialog dialog)
   at Avalonia.Dialogs.ManagedFileDialogExtensions.ManagedSystemDialogImpl`1.Show(SystemDialog d, IWindowImpl parent)
   at Avalonia.Dialogs.ManagedFileDialogExtensions.ManagedSystemDialogImpl`1.ShowFileDialogAsync(FileDialog dialog, IWindowImpl parent)
   at ICSharpCode.ILSpy.MainWindow.OpenCommandExecuted(Object sender, ExecutedRoutedEventArgs e)
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__139_0(Object state)
   at Avalonia.Threading.AvaloniaSynchronizationContext.<>c__DisplayClass5_0.<Post>b__0()
   at Avalonia.Threading.JobRunner.RunJobs(Nullable`1 priority)
   at Avalonia.X11.X11PlatformThreading.HandleX11(CancellationToken cancellationToken)
   at Avalonia.X11.X11PlatformThreading.RunLoop(CancellationToken cancellationToken)
   at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken cancellationToken)
   at Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetime.Start(String[] args)
   at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime[T](T builder, String[] args, ShutdownMode shutdownMode)
   at ICSharpCode.ILSpy.Program.Main(String[] args)

Is there any way to fix this?

NullReferenceException upon refreshing the assembly explorer

Platform: 5.3.18-1-MANJARO
Desktop Environment: Plasma 5.17.5
.NET Core version: 3.1.2

Summary:
Refreshing the assembly list after loading at least two assemblies will result in a NullReferenceException in SharpTreeView.cs:420. It seems e.RemovedItems contains a single null item that is casted to a SharpTreeNode in the foreach loop.

Steps to reproduce:

  • Load at least two assemblies into the assembly browser
  • Press the "Reload all assemblies" button in the toolbar.
  • Observe the application crash.

Full log
output.log

Crashes in Ubuntu 18.04 when trying to change the font


(ILSpy:31509): GLib-GObject-CRITICAL **: 16:27:33.927: g_object_set_qdata: assertion 'G_IS_OBJECT (object)' failed

(ILSpy:31509): GLib-GObject-WARNING **: 16:27:33.927: instance with invalid (NULL) class pointer

(ILSpy:31509): GLib-GObject-CRITICAL **: 16:27:33.927: g_signal_handlers_destroy: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(ILSpy:31509): GLib-GObject-WARNING **: 16:27:33.927: instance with invalid (NULL) class pointer

(ILSpy:31509): GLib-GObject-CRITICAL **: 16:27:33.927: g_signal_handlers_destroy: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

Unhandled Exception: System.NotImplementedException: The method or operation is not implemented.
   at ICSharpCode.ILSpy.Options.FontSizeConverter.ConvertBack(Object value, Type targetType, Object parameter, CultureInfo culture)
   at Avalonia.Data.Core.BindingExpression.OnNext(Object value)
   at Avalonia.Reactive.LightweightObservableBase`1.Subscribe(IObserver`1 observer)
   at Avalonia.Data.BindingOperations.Apply(IAvaloniaObject target, AvaloniaProperty property, InstancedBinding binding, Object anchor)
   at Avalonia.AvaloniaObjectExtensions.Bind(IAvaloniaObject target, AvaloniaProperty property, IBinding binding, Object anchor)
   at Avalonia.Markup.Data.DelayedBinding.BindingEntry.Apply(IStyledElement control)
   at Avalonia.Markup.Data.DelayedBinding.ApplyBindings(IStyledElement control)
   at Avalonia.Markup.Data.DelayedBinding.ApplyBindings(Object sender, EventArgs e)
   at Avalonia.Visual.OnAttachedToVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Controls.Control.OnAttachedToVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Visual.OnAttachedToVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Controls.Control.OnAttachedToVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Visual.OnAttachedToVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Controls.Control.OnAttachedToVisualTreeCore(VisualTreeAttachmentEventArgs e)
   at Avalonia.Visual.SetVisualParent(Visual value)
   at Avalonia.Visual.VisualChildrenChanged(Object sender, NotifyCollectionChangedEventArgs e)
   at Avalonia.Collections.AvaloniaList`1.NotifyAdd(IList t, Int32 index)
   at Avalonia.Controls.Presenters.ContentPresenter.UpdateChild()
   at Avalonia.Controls.Presenters.ContentPresenter.ContentChanged(AvaloniaPropertyChangedEventArgs e)
   at System.Reactive.Observer`1.OnNext(T value) in D:\a\1\s\Rx.NET\Source\src\System.Reactive\Internal\Observers.cs:line 80
   at Avalonia.AvaloniaObject.RaisePropertyChanged(AvaloniaProperty property, Object oldValue, Object newValue, BindingPriority priority)
   at Avalonia.AvaloniaObject.PriorityValueChanged(AvaloniaProperty property, Int32 priority, Object oldValue, Object newValue)
   at Avalonia.Utilities.DeferredSetter`1.<>c__DisplayClass12_0`1.<SetAndNotify>b__0(Action notification)
   at Avalonia.PriorityValue.UpdateCore(ValueTuple`2 update, ValueTuple`2& backing, Action`1 notify)
   at Avalonia.Utilities.DeferredSetter`1.SetAndNotify[TValue](AvaloniaProperty property, TValue& backing, SetterDelegate`1 setterCallback, TSetRecord value)
   at Avalonia.PriorityValue.UpdateValue(Object value, Int32 priority)
   at Avalonia.Data.TemplateBinding.Subscribed()
   at Avalonia.Reactive.SingleSubscriberObservableBase`1.Subscribe(IObserver`1 observer)
   at Avalonia.PriorityBindingEntry.Start(IObservable`1 binding)
   at Avalonia.PriorityLevel.Add(IObservable`1 binding)
   at Avalonia.ValueStore.AddBinding(AvaloniaProperty property, IObservable`1 source, BindingPriority priority)
   at Avalonia.AvaloniaObjectExtensions.Bind(IAvaloniaObject target, AvaloniaProperty property, IBinding binding, Object anchor)
   at Avalonia.Markup.Data.DelayedBinding.BindingEntry.Apply(IStyledElement control)
   at Avalonia.Markup.Data.DelayedBinding.ApplyBindings(IStyledElement control)
   at Avalonia.Markup.Data.DelayedBinding.ApplyBindings(Object sender, EventArgs e)
   at Avalonia.Visual.SetVisualParent(Visual value)
   at Avalonia.Visual.VisualChildrenChanged(Object sender, NotifyCollectionChangedEventArgs e)
   at Avalonia.Collections.AvaloniaList`1.NotifyAdd(IList t, Int32 index)
   at Avalonia.Controls.Primitives.TemplatedControl.ApplyTemplate()
   at Avalonia.Layout.Layoutable.MeasureCore(Size availableSize)
   at Avalonia.Layout.Layoutable.Measure(Size availableSize)
   at Avalonia.Layout.LayoutHelper.MeasureChild(ILayoutable control, Size availableSize, Thickness padding)
   at Avalonia.Controls.Presenters.ContentPresenter.MeasureOverride(Size availableSize)
   at Avalonia.Layout.Layoutable.MeasureCore(Size availableSize)
   at Avalonia.Layout.Layoutable.Measure(Size availableSize)
   at Avalonia.Layout.LayoutManager.Measure(ILayoutable control)
   at Avalonia.Layout.LayoutManager.ExecuteMeasurePass()
   at Avalonia.Layout.LayoutManager.ExecuteLayoutPass()
   at Avalonia.Threading.JobRunner.RunJobs(Nullable`1 priority)
   at Avalonia.Gtk3.Gtk3Platform.<>c__DisplayClass29_0.<Signal>b__0()
   at Avalonia.Gtk3.Interop.GlibTimeout.Handler(IntPtr data)
   at Avalonia.Gtk3.Gtk3Platform.RunLoop(CancellationToken cancellationToken)
   at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken cancellationToken)
   at Avalonia.Application.Run(Window mainWindow)
   at ICSharpCode.ILSpy.Program.Main(String[] args)

AUR package?

Can you add this project to the AUR?
This would allow for easier installation via a package manager of choice.

File -> Open button is disabled

Hello,

When I try to open an assembly via File -> Open, the "Open" menu option is grayed out. There is no error message, so I am not sure where to go from here.

I am using the latest build on Linux Ubuntu Version 18.04.2 LTS

Any advice?

Thanks!

Build error in Kubuntu 20.04: SharpTreeView.cs(19,7): error CS0246: The type or namespace name 'AvaloniaEdit' could not be found

Build log:

$ ./build.sh 
Feeds used:
  /home/andrei/.nuget/packages/
  https://www.nuget.org/api/v2/
  https://www.myget.org/F/avalonia-ci/api/v2
  https://ci.appveyor.com/nuget/ilspy-masterfeed
  https://dotnet.myget.org/F/symreader-converter/api/v3/index.json

All packages listed in /home/andrei/repos/open-source/AvaloniaILSpy/tools/packages.config are already installed.

========================================
Clean
========================================

========================================
Restore-NetCore
========================================
An error occurred when executing task 'Restore-NetCore'.
Error: One or more errors occurred. (.NET Core CLI: Could not locate executable.)
        .NET Core CLI: Could not locate executable.

OS info:

Operating System: Kubuntu 20.04
KDE Plasma Version: 5.18.5
KDE Frameworks Version: 5.68.0
Qt Version: 5.12.8
Kernel Version: 5.3.0-51-generic
OS Type: 64-bit
Processors: 8 × Intel® Core™ i5-8250U CPU @ 1.60GHz
Memory: 7.7 GiB of RAM

P.S. I have apt package mono-complete installed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.