diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index e569ecc..df9cf82 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -16,7 +16,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v1 with: - dotnet-version: 6.0.x + dotnet-version: 7.0.x - name: Publish run: | sudo chmod +x ./test.sh @@ -25,9 +25,9 @@ jobs: with: name: Linux-Artifact path: | - ./src/bin/x64/Release/net6.0/linux-x64/publish/*.bin - ./src/bin/x64/Release/net6.0/linux-x64/publish/*.so - ./src/bin/x64/Release/net6.0/linux-x64/publish/*.png + ./src/bin/x64/Release/net7.0/linux-x64/publish/*.bin + ./src/bin/x64/Release/net7.0/linux-x64/publish/*.so + ./src/bin/x64/Release/net7.0/linux-x64/publish/*.png build-on-windows: runs-on: windows-latest steps: @@ -35,16 +35,16 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v1 with: - dotnet-version: 6.0.x + dotnet-version: 7.0.x - name: Publish run: ./test.cmd - uses: actions/upload-artifact@v2 with: name: Windows-Artifact path: | - .\src\bin\x64\Release\net6.0\win-x64\publish\*.exe - .\src\bin\x64\Release\net6.0\win-x64\publish\*.dll - .\src\bin\x64\Release\net6.0\win-x64\publish\*.png + .\src\bin\x64\Release\net7.0\win-x64\publish\*.exe + .\src\bin\x64\Release\net7.0\win-x64\publish\*.dll + .\src\bin\x64\Release\net7.0\win-x64\publish\*.png build-on-macos: runs-on: macos-latest steps: @@ -52,12 +52,12 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v1 with: - dotnet-version: 6.0.x + dotnet-version: 7.0.x - name: Publish run: | sudo chmod +x ./test.command ./test.command - cd ./src/bin/x64/Release/net6.0/osx-x64/publish + cd ./src/bin/x64/Release/net7.0/osx-x64/publish zip -r -0 macOS-Artifact.zip *.app mv *.zip ../../../../../../../. - uses: actions/upload-artifact@v2 diff --git a/src/App.axaml b/src/App.axaml index e058919..65e3c87 100644 --- a/src/App.axaml +++ b/src/App.axaml @@ -1,18 +1,10 @@ - - - - - - - - - - - - + + + + \ No newline at end of file diff --git a/src/App.axaml.cs b/src/App.axaml.cs index e05cb41..e0ead4d 100644 --- a/src/App.axaml.cs +++ b/src/App.axaml.cs @@ -1,10 +1,11 @@ +using System; using Avalonia; using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Markup.Xaml; using Avalonia.Styling; using Avalonia.Themes.Fluent; - +using Avalonia.Themes.Simple; using AvaloniaCoreRTDemo.Interfaces; using AvaloniaCoreRTDemo.Windows; @@ -12,11 +13,10 @@ namespace AvaloniaCoreRTDemo { public sealed class App : Application, IThemeSwitch { - private IStyle _baseLight; - private IStyle _baseDark; - - private IStyle _fluentLight; - private IStyle _fluentDark; + private FluentTheme _fluentTheme; + private SimpleTheme _simpleTheme; + private IStyle _fluentDataGrid; + private IStyle _simpleDataGrid; private ApplicationTheme _currentTheme; @@ -31,7 +31,7 @@ namespace AvaloniaCoreRTDemo this.InitializeThemes(); if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) { - desktop.MainWindow = !Utilities.IsOSX ? new MainWindow() : new MainWindowMacOS(); + desktop.MainWindow = new MainWindow(); this.DataContext = desktop.MainWindow.DataContext; } base.OnFrameworkInitializationCompleted(); @@ -39,45 +39,63 @@ namespace AvaloniaCoreRTDemo private void InitializeThemes() { - this._baseDark = this.Styles[0]; - this._baseLight = this.Styles[1]; + this._fluentTheme = (FluentTheme)this.Resources["fluentTheme"]!; + this._simpleTheme = (SimpleTheme)this.Resources["simpleTheme"]!; + this._fluentDataGrid = (IStyle)this.Resources["fluentDataGrid"]!; + this._simpleDataGrid = (IStyle)this.Resources["simpleDataGrid"]!; + Styles.Add(_fluentTheme); + Styles.Add(_fluentDataGrid); - this.Styles.Remove(this._baseDark); - - this._fluentLight = (FluentTheme)this.Resources["fluentLight"]!; - this._fluentDark = (FluentTheme)this.Resources["fluentDark"]!; - - this._currentTheme = ApplicationTheme.DefaultLight; + this._currentTheme = ApplicationTheme.FluentLight; } ApplicationTheme IThemeSwitch.Current => this._currentTheme; void IThemeSwitch.ChangeTheme(ApplicationTheme theme) { + var themeChanged = theme switch + { + ApplicationTheme.SimpleLight => _currentTheme is ApplicationTheme.FluentDark or ApplicationTheme.FluentLight, + ApplicationTheme.SimpleDark => _currentTheme is ApplicationTheme.FluentDark or ApplicationTheme.FluentLight, + ApplicationTheme.FluentLight => _currentTheme is ApplicationTheme.SimpleLight or ApplicationTheme.SimpleDark, + ApplicationTheme.FluentDark => _currentTheme is ApplicationTheme.SimpleLight or ApplicationTheme.SimpleDark, + _ => throw new ArgumentOutOfRangeException(nameof(theme), theme, null) + }; + this._currentTheme = theme; switch (theme) { - case ApplicationTheme.DefaultLight: - this.Styles[0] = this._baseLight; - this.Styles.Remove(this._baseDark); + case ApplicationTheme.SimpleLight: + this._simpleTheme.Mode = SimpleThemeMode.Light; + this.Styles[0] = this._simpleTheme; + this.Styles[1] = this._simpleDataGrid; break; - case ApplicationTheme.DefaultDark: - this.Styles[0] = this._baseDark; - this.Styles.Remove(this._baseLight); + case ApplicationTheme.SimpleDark: + this._simpleTheme.Mode = SimpleThemeMode.Dark; + this.Styles[0] = this._simpleTheme; + this.Styles[1] = this._simpleDataGrid; break; case ApplicationTheme.FluentLight: - this.Styles[0] = this._fluentLight; - this.Styles.Remove(this._fluentDark); - if (!this.Styles.Contains(this._baseLight)) - this.Styles.Add(this._baseLight); + this._fluentTheme.Mode = FluentThemeMode.Light; + this.Styles[0] = this._fluentTheme; + this.Styles[1] = this._fluentDataGrid; break; case ApplicationTheme.FluentDark: - this.Styles[0] = this._fluentDark; - this.Styles.Remove(this._baseLight); - if (!this.Styles.Contains(this._baseDark)) - this.Styles.Add(this._baseDark); + this._fluentTheme.Mode = FluentThemeMode.Dark; + this.Styles[0] = this._fluentTheme; + this.Styles[1] = this._fluentDataGrid; break; } + + if (themeChanged && ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) + { + var oldWindow = desktop.MainWindow; + var newWindow = new MainWindow(); + desktop.MainWindow = newWindow; + newWindow.Show(); + oldWindow.Close(); + this.DataContext = desktop.MainWindow.DataContext; + } } } } \ No newline at end of file diff --git a/src/ApplicationTheme.cs b/src/ApplicationTheme.cs index 2323998..a7c55b0 100644 --- a/src/ApplicationTheme.cs +++ b/src/ApplicationTheme.cs @@ -4,8 +4,8 @@ namespace AvaloniaCoreRTDemo { public enum ApplicationTheme : Byte { - DefaultLight = 0, - DefaultDark = 1, + SimpleLight = 0, + SimpleDark = 1, FluentLight = 2, FluentDark = 3, } diff --git a/src/AvaloniaCoreRTDemo.csproj b/src/AvaloniaCoreRTDemo.csproj index 3b0f22f..3651354 100644 --- a/src/AvaloniaCoreRTDemo.csproj +++ b/src/AvaloniaCoreRTDemo.csproj @@ -3,16 +3,15 @@ WinExe - net6.0 + net7.0 x64 Assets/app.ico true - - link + true + true true true - OSX @@ -21,40 +20,40 @@ false false true + true - - - - - - - - PreserveNewest - - + + PreserveNewest - + + PreserveNewest + PreserveNewest + + + PreserveNewest PreserveNewest - - - - + + + + + + - + - + $(AssemblyName) $(AssemblyName) com.$(username).$(AssemblyName) @@ -69,40 +68,5 @@ true - - - - - - - - - - - - App.axaml - - - - - - MainControl.axaml - - - AboutWindow.axaml - - - - - - MainWindow.axaml - - - - - - MainWindowMacOS.axaml - - diff --git a/src/Controls/MainControl.axaml b/src/Controls/MainControl.axaml index cdf5d75..d443c2d 100644 --- a/src/Controls/MainControl.axaml +++ b/src/Controls/MainControl.axaml @@ -1,5 +1,8 @@ - + Welcome to Avalonia UI + NativeAOT! diff --git a/src/Controls/ViewModels/MainViewModel.cs b/src/Controls/ViewModels/MainViewModel.cs index 29fc9f4..f1cea96 100644 --- a/src/Controls/ViewModels/MainViewModel.cs +++ b/src/Controls/ViewModels/MainViewModel.cs @@ -18,13 +18,10 @@ namespace AvaloniaCoreRTDemo.Controls.ViewModels public MainViewModel() { - this._dotNetImage = Utilities.GetImageFromFile(GetImageFullPath("dotnet.png")); - this._avaloniaImage = Utilities.GetImageFromFile(GetImageFullPath("avalonia.png")); + this._dotNetImage = Utilities.GetImageFromFile("dotnet.png"); + this._avaloniaImage = Utilities.GetImageFromFile("avalonia.png"); } - private static String GetImageFullPath(String fileName) - => Path.Combine(AppDomain.CurrentDomain.BaseDirectory, fileName); - ~MainViewModel() { this._dotNetImage.Dispose(); diff --git a/src/Program.cs b/src/Program.cs index 8478e3c..c689c49 100644 --- a/src/Program.cs +++ b/src/Program.cs @@ -12,10 +12,6 @@ namespace AvaloniaCoreRTDemo // Avalonia configuration, don't remove; also used by visual designer. public static AppBuilder BuildAvaloniaApp() => AppBuilder.Configure().UsePlatformDetect() - .UseAvaloniaNativeOSX() .LogToTrace(); - - private static AppBuilder UseAvaloniaNativeOSX(this AppBuilder appBuilder) - => Utilities.IsOSX ? appBuilder.UseAvaloniaNative() : appBuilder; } } diff --git a/src/Utilities.cs b/src/Utilities.cs index 4296e91..3b740ec 100644 --- a/src/Utilities.cs +++ b/src/Utilities.cs @@ -1,10 +1,9 @@ using System; using System.IO; -using System.Linq; -using System.Reflection; using System.Runtime.InteropServices; - +using Avalonia; using Avalonia.Media.Imaging; +using Avalonia.Platform; namespace AvaloniaCoreRTDemo { @@ -15,25 +14,24 @@ namespace AvaloniaCoreRTDemo public static Bitmap GetImageFromResources(String fileName) { - Assembly asm = Assembly.GetExecutingAssembly(); - String resourceName = asm.GetManifestResourceNames().FirstOrDefault(str => str.EndsWith(fileName)); - if (resourceName != null) - using (Stream bitmapStream = asm.GetManifestResourceStream(resourceName)) - return new Bitmap(bitmapStream); - else - return default; + var assetLoader = AvaloniaLocator.Current.GetRequiredService(); + using var assetStream = assetLoader.Open(new Uri($"avares://AvaloniaCoreRTDemo/Images/{fileName}")); + return new Bitmap(assetStream); } public static Bitmap GetImageFromFile(String path) { try { - return new Bitmap(path); + return new Bitmap(GetImageFullPath(path)); } catch (Exception) { return GetImageFromResources("broken-link.png"); } } + + private static String GetImageFullPath(String fileName) + => Path.Combine(AppDomain.CurrentDomain.BaseDirectory, fileName); } } diff --git a/src/Windows/AboutWindow.axaml b/src/Windows/AboutWindow.axaml index 8ef32d8..58e9b80 100644 --- a/src/Windows/AboutWindow.axaml +++ b/src/Windows/AboutWindow.axaml @@ -1,64 +1,20 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + diff --git a/src/Windows/MainWindow.axaml b/src/Windows/MainWindow.axaml index f912199..e82bf20 100644 --- a/src/Windows/MainWindow.axaml +++ b/src/Windows/MainWindow.axaml @@ -1,21 +1,34 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Windows/MainWindowMacOS.axaml b/src/Windows/MainWindowMacOS.axaml deleted file mode 100644 index 4ea0793..0000000 --- a/src/Windows/MainWindowMacOS.axaml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Windows/MainWindowMacOS.axaml.cs b/src/Windows/MainWindowMacOS.axaml.cs deleted file mode 100644 index 9c25bcc..0000000 --- a/src/Windows/MainWindowMacOS.axaml.cs +++ /dev/null @@ -1,28 +0,0 @@ -using Avalonia; -using Avalonia.Controls; -using Avalonia.Markup.Xaml; - -using AvaloniaCoreRTDemo.Interfaces; -using AvaloniaCoreRTDemo.Windows.ViewModels; - -namespace AvaloniaCoreRTDemo.Windows -{ - public partial class MainWindowMacOS : Window, IMainWindow - { - public MainWindowMacOS() - { - InitializeComponent(); -#if DEBUG - this.AttachDevTools(); -#endif - } - - private void InitializeComponent() - { - AvaloniaXamlLoader.Load(this); - this.DataContext = new MainViewModel(this); - } - - IThemeSwitch IMainWindow.ThemeSwitch => App.Current as IThemeSwitch; - } -} diff --git a/src/Windows/ViewModels/AboutViewModel.cs b/src/Windows/ViewModels/AboutViewModel.cs index b09161e..0cb018f 100644 --- a/src/Windows/ViewModels/AboutViewModel.cs +++ b/src/Windows/ViewModels/AboutViewModel.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Runtime.InteropServices; using Avalonia.Media.Imaging; @@ -7,25 +8,32 @@ using ReactiveUI; namespace AvaloniaCoreRTDemo.Windows.ViewModels { + internal record SystemDetail(string Key, string Value); + internal sealed class AboutViewModel : ReactiveObject { + private readonly IBitmap _computerImage; private readonly Boolean _darkTheme; public IBitmap ComputerImage => _computerImage; - public static String NCores => Environment.ProcessorCount.ToString(); - public static String OS => RuntimeInformation.OSDescription; - public static String OSArch => RuntimeInformation.OSArchitecture.ToString(); - public static String OSVersion => Environment.OSVersion.ToString(); - public static String ComputerName => Environment.MachineName; - public static String UserName => Environment.UserName; - public static String SystemPath => Environment.SystemDirectory; - public static String CurrentPath => Environment.CurrentDirectory; - public static String ProcessArch => RuntimeInformation.ProcessArchitecture.ToString(); - public static String RuntimeName => RuntimeInformation.FrameworkDescription; - public static String RuntimePath => RuntimeEnvironment.GetRuntimeDirectory(); - public static String RuntimeVersion => RuntimeEnvironment.GetSystemVersion(); - public static String FrameworkVersion => Environment.Version.ToString(); + + public IReadOnlyList SystemDetails { get; } = new[] + { + new SystemDetail("Number of Cores", Environment.ProcessorCount.ToString()), + new SystemDetail("OS", RuntimeInformation.OSDescription), + new SystemDetail("OS Arch", RuntimeInformation.OSArchitecture.ToString()), + new SystemDetail("OS Version", Environment.OSVersion.ToString()), + new SystemDetail("Computer", Environment.MachineName), + new SystemDetail("User", Environment.UserName), + new SystemDetail("System Path", Environment.SystemDirectory), + new SystemDetail("Current Path", Environment.CurrentDirectory), + new SystemDetail("Process Arch", RuntimeInformation.ProcessArchitecture.ToString()), + new SystemDetail("Runtime Name", RuntimeInformation.FrameworkDescription), + new SystemDetail("Runtime Path", RuntimeEnvironment.GetRuntimeDirectory()), + new SystemDetail("Runtime Version", RuntimeEnvironment.GetSystemVersion()), + new SystemDetail("Framework Version", Environment.Version.ToString()), + }; private String ComputerImageName { diff --git a/src/Windows/ViewModels/MainViewModel.cs b/src/Windows/ViewModels/MainViewModel.cs index a0acc74..3bd40b8 100644 --- a/src/Windows/ViewModels/MainViewModel.cs +++ b/src/Windows/ViewModels/MainViewModel.cs @@ -12,58 +12,25 @@ namespace AvaloniaCoreRTDemo.Windows.ViewModels { private readonly TWindow _window; - private Boolean _defaultLightEnable = true; - private Boolean _defaultDarkEnable = true; - private Boolean _fluentLightEnable = true; - private Boolean _fluentDarkEnable = true; - - public Boolean DefaultLightEnabled - { - get => this._defaultLightEnable; - set => this.RaiseAndSetIfChanged(ref this._defaultLightEnable, value); - } - - public Boolean DefaultDarkEnabled - { - get => this._defaultDarkEnable; - set => this.RaiseAndSetIfChanged(ref this._defaultDarkEnable, value); - } - - public Boolean FluentLightEnabled - { - get => this._fluentLightEnable; - set => this.RaiseAndSetIfChanged(ref this._fluentLightEnable, value); - } - - public Boolean FluentDarkEnabled - { - get => this._fluentDarkEnable; - set => this.RaiseAndSetIfChanged(ref this._fluentDarkEnable, value); - } - - public ReactiveCommand FileExitCommand { get; } - public MainViewModel(TWindow window) : base(window.ThemeSwitch) { this._window = window; - this.FileExitCommand = ReactiveCommand.Create(RunFileExit); this.ChangeTheme(window.ThemeSwitch.Current); } - public void DefaultLightMethod() => this.ChangeTheme(ApplicationTheme.DefaultLight); - public void DefaultDarkMethod() => this.ChangeTheme(ApplicationTheme.DefaultDark); - public void FluentLightMethod() => this.ChangeTheme(ApplicationTheme.FluentLight); - public void FluentDarkMethod() => this.ChangeTheme(ApplicationTheme.FluentDark); + public override void HelpAboutMethod() => base.RunHelpAbout(this._window); - private void RunFileExit() - => Environment.Exit(0); - + public override void DefaultLightMethod() => this.ChangeTheme(ApplicationTheme.SimpleLight); + public override void DefaultDarkMethod() => this.ChangeTheme(ApplicationTheme.SimpleDark); + public override void FluentLightMethod() => this.ChangeTheme(ApplicationTheme.FluentLight); + public override void FluentDarkMethod() => this.ChangeTheme(ApplicationTheme.FluentDark); + private void ChangeTheme(ApplicationTheme theme) { - this.DefaultLightEnabled = theme != ApplicationTheme.DefaultLight && theme != ApplicationTheme.FluentLight; - this.DefaultDarkEnabled = theme != ApplicationTheme.DefaultDark && theme != ApplicationTheme.FluentDark; + this.DefaultLightEnabled = theme != ApplicationTheme.SimpleLight; + this.DefaultDarkEnabled = theme != ApplicationTheme.SimpleDark; this.FluentLightEnabled = theme != ApplicationTheme.FluentLight; this.FluentDarkEnabled = theme != ApplicationTheme.FluentDark; this._window.ThemeSwitch?.ChangeTheme(theme); diff --git a/src/Windows/ViewModels/MainViewModelBase.cs b/src/Windows/ViewModels/MainViewModelBase.cs index c7faffd..f9d09da 100644 --- a/src/Windows/ViewModels/MainViewModelBase.cs +++ b/src/Windows/ViewModels/MainViewModelBase.cs @@ -1,5 +1,5 @@ using System; - +using System.Reactive; using Avalonia.Controls; using AvaloniaCoreRTDemo.Interfaces; @@ -12,6 +12,10 @@ namespace AvaloniaCoreRTDemo.Windows.ViewModels { private readonly IThemeSwitch _themeSwitch; private Boolean _aboutEnable = true; + private Boolean _defaultLightEnable = true; + private Boolean _defaultDarkEnable = true; + private Boolean _fluentLightEnable = true; + private Boolean _fluentDarkEnable = true; public Boolean AboutEnabled { @@ -20,10 +24,47 @@ namespace AvaloniaCoreRTDemo.Windows.ViewModels } public MainViewModelBase(IThemeSwitch window) - => this._themeSwitch = window; + { + this._themeSwitch = window; + this.FileExitCommand = ReactiveCommand.Create(RunFileExit); + } + public Boolean DefaultLightEnabled + { + get => this._defaultLightEnable; + set => this.RaiseAndSetIfChanged(ref this._defaultLightEnable, value); + } + + public Boolean DefaultDarkEnabled + { + get => this._defaultDarkEnable; + set => this.RaiseAndSetIfChanged(ref this._defaultDarkEnable, value); + } + + public Boolean FluentLightEnabled + { + get => this._fluentLightEnable; + set => this.RaiseAndSetIfChanged(ref this._fluentLightEnable, value); + } + + public Boolean FluentDarkEnabled + { + get => this._fluentDarkEnable; + set => this.RaiseAndSetIfChanged(ref this._fluentDarkEnable, value); + } + + public ReactiveCommand FileExitCommand { get; } + public abstract void HelpAboutMethod(); + public abstract void DefaultLightMethod(); + public abstract void DefaultDarkMethod(); + public abstract void FluentLightMethod(); + public abstract void FluentDarkMethod(); + + private void RunFileExit() + => Environment.Exit(0); + protected async void RunHelpAbout(Window currentWindow) { if (this.AboutEnabled) @@ -41,7 +82,7 @@ namespace AvaloniaCoreRTDemo.Windows.ViewModels private static Boolean IsDarkTheme(ApplicationTheme? theme) => theme switch { - ApplicationTheme.DefaultDark => true, + ApplicationTheme.SimpleDark => true, ApplicationTheme.FluentDark => true, _ => false, }; diff --git a/src/nuget.config b/src/nuget.config index c388b79..3d11832 100644 --- a/src/nuget.config +++ b/src/nuget.config @@ -1,8 +1,7 @@ - - + diff --git a/src/rd.xml b/src/rd.xml deleted file mode 100644 index ba932c4..0000000 --- a/src/rd.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test.command b/test.command index 3d4e26d..3010a21 100755 --- a/test.command +++ b/test.command @@ -5,9 +5,9 @@ if [ -d "$dir" ]; then fi rm -f src/packages.lock.json dotnet publish -r osx-x64 -c release /p:RestoreLockedMode=true -t:BundleApp /p:TrimLink=true --self-contained -rm -rf src/bin/x64/Release/net6.0/osx-x64/publish/Assets/ -strip src/bin/x64/Release/net6.0/osx-x64/publish/AvaloniaCoreRTDemo.app/Contents/MacOS/AvaloniaCoreRTDemo -rm -rf src/bin/x64/Release/net6.0/osx-x64/publish/AvaloniaCoreRTDemo.app/Contents/MacOS/Assets/ -rm src/bin/x64/Release/net6.0/osx-x64/publish/AvaloniaCoreRTDemo.app/Contents/MacOS/AvaloniaCoreRTDemo.runtimeconfig.json -rm src/bin/x64/Release/net6.0/osx-x64/publish/AvaloniaCoreRTDemo.app/Contents/MacOS/AvaloniaCoreRTDemo.pdb -rm src/bin/x64/Release/net6.0/osx-x64/publish/AvaloniaCoreRTDemo.app/Contents/MacOS/AvaloniaCoreRTDemo.deps.json \ No newline at end of file +rm -rf src/bin/x64/Release/net7.0/osx-x64/publish/Assets/ +strip src/bin/x64/Release/net7.0/osx-x64/publish/AvaloniaCoreRTDemo.app/Contents/MacOS/AvaloniaCoreRTDemo +rm -rf src/bin/x64/Release/net7.0/osx-x64/publish/AvaloniaCoreRTDemo.app/Contents/MacOS/Assets/ +rm src/bin/x64/Release/net7.0/osx-x64/publish/AvaloniaCoreRTDemo.app/Contents/MacOS/AvaloniaCoreRTDemo.runtimeconfig.json +rm src/bin/x64/Release/net7.0/osx-x64/publish/AvaloniaCoreRTDemo.app/Contents/MacOS/AvaloniaCoreRTDemo.pdb +rm src/bin/x64/Release/net7.0/osx-x64/publish/AvaloniaCoreRTDemo.app/Contents/MacOS/AvaloniaCoreRTDemo.deps.json \ No newline at end of file diff --git a/test.sh b/test.sh index 919b7aa..cefc25d 100644 --- a/test.sh +++ b/test.sh @@ -1,6 +1,6 @@ #!/bin/bash rm -f src/packages.lock.json dotnet publish -r linux-x64 -c release /p:RestoreLockedMode=true /p:TrimLink=true --self-contained -cd src/bin/x64/Release/net6.0/linux-x64/publish +cd src/bin/x64/Release/net7.0/linux-x64/publish cp AvaloniaCoreRTDemo AvaloniaCoreRTDemo.bin strip AvaloniaCoreRTDemo.bin